summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java
diff options
context:
space:
mode:
authorBilly Biggs <bbiggs>2005-11-16 17:08:48 +0000
committerBilly Biggs <bbiggs>2005-11-16 17:08:48 +0000
commit01fdd7e3f1adc64a8d8c4b18817b82b5b7754553 (patch)
tree4089f8501d6bacbad01b587fb541dc05d8534c63 /bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java
parent1e66a3774d23e73cdad888246db28ce41cd0dd65 (diff)
downloadeclipse.platform.swt-01fdd7e3f1adc64a8d8c4b18817b82b5b7754553.tar.gz
eclipse.platform.swt-01fdd7e3f1adc64a8d8c4b18817b82b5b7754553.tar.xz
eclipse.platform.swt-01fdd7e3f1adc64a8d8c4b18817b82b5b7754553.zip
110924 - Allow for providing a fallback cairo library for distributions without cairo
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java
index 41842061e3..363b22fa20 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java
@@ -20,10 +20,23 @@
* ***** END LICENSE BLOCK ***** */
package org.eclipse.swt.internal.cairo;
-import org.eclipse.swt.internal.Library;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.gtk.*;
public class Cairo {
static {
+ // Check if cairo is available on the system.
+ byte[] libcairo = Converter.wcsToMbcs(null, "libcairo.so.2", true);
+ int /*long*/ libcairo_handle = OS.dlopen(libcairo, 1);
+ if (libcairo_handle != 0) {
+ OS.dlclose(libcairo_handle);
+ } else {
+ try {
+ System.loadLibrary("cairo-swt");
+ } catch (UnsatisfiedLinkError e) {
+ // Ignore problems loading the fallback library.
+ }
+ }
Library.loadLibrary("swt-cairo");
}