From 8bf6ae724d4bbb71c45dccd8097879e4dd072f5d Mon Sep 17 00:00:00 2001 From: Silenio Quarti Date: Mon, 15 Aug 2005 20:22:56 +0000 Subject: 106759 - porting to cairo 0.9.2 --- ...org.eclipse.swt.internal.cairo.Cairo.properties | 30 +++++- .../Eclipse SWT PI/cairo/library/cairo.c | 102 +++++++++++++++++++-- .../Eclipse SWT PI/cairo/library/cairo_stats.c | 12 ++- .../Eclipse SWT PI/cairo/library/cairo_stats.h | 8 ++ .../org/eclipse/swt/internal/cairo/Cairo.java | 18 +++- .../gtk/org/eclipse/swt/graphics/GC.java | 60 ++++++++---- .../gtk/org/eclipse/swt/graphics/GCData.java | 2 - 7 files changed, 199 insertions(+), 33 deletions(-) diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.Cairo.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.Cairo.properties index 7fb8bbc94c..b81bf47ad9 100644 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.Cairo.properties +++ b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.Cairo.properties @@ -91,6 +91,21 @@ Cairo_cairo_font_extents_1= Cairo_cairo_font_extents_t_sizeof= +Cairo_cairo_font_options_create= + +Cairo_cairo_font_options_destroy= +Cairo_cairo_font_options_destroy_0=cast=cairo_font_options_t * + +Cairo_cairo_font_options_get_antialias= +Cairo_cairo_font_options_get_antialias_0=cast=cairo_font_options_t * + +Cairo_cairo_font_options_set_antialias= +Cairo_cairo_font_options_set_antialias_0=cast=cairo_font_options_t * +Cairo_cairo_font_options_set_antialias_1= + +Cairo_cairo_get_antialias= +Cairo_cairo_get_antialias_0=cast=(cairo_t *) + Cairo_cairo_get_current_point= Cairo_cairo_get_current_point_0=cast=(cairo_t *) Cairo_cairo_get_current_point_1= @@ -106,6 +121,10 @@ Cairo_cairo_get_font_matrix= Cairo_cairo_get_font_matrix_0=cast=(cairo_t *) Cairo_cairo_get_font_matrix_1=cast=cairo_matrix_t * +Cairo_cairo_get_font_options= +Cairo_cairo_get_font_options_0=cast=cairo_t * +Cairo_cairo_get_font_options_1=cast=cairo_font_options_t * + Cairo_cairo_get_line_cap= Cairo_cairo_get_line_cap_0=cast=(cairo_t *) @@ -384,6 +403,10 @@ Cairo_cairo_select_font_face_1= Cairo_cairo_select_font_face_2= Cairo_cairo_select_font_face_3= +Cairo_cairo_set_antialias= +Cairo_cairo_set_antialias_0=cast=(cairo_t *) +Cairo_cairo_set_antialias_1= + Cairo_cairo_set_dash= Cairo_cairo_set_dash_0=cast=(cairo_t *) Cairo_cairo_set_dash_1= @@ -402,6 +425,10 @@ Cairo_cairo_set_font_matrix= Cairo_cairo_set_font_matrix_0=cast=(cairo_t *) Cairo_cairo_set_font_matrix_1=cast=cairo_matrix_t * +Cairo_cairo_set_font_options= +Cairo_cairo_set_font_options_0=cast=cairo_t * +Cairo_cairo_set_font_options_1=cast=cairo_font_options_t * + Cairo_cairo_set_font_size= Cairo_cairo_set_font_size_0=cast=(cairo_t *) Cairo_cairo_set_font_size_1= @@ -556,8 +583,9 @@ Cairo_cairo_xlib_surface_create_4= Cairo_cairo_xlib_surface_create_for_bitmap= Cairo_cairo_xlib_surface_create_for_bitmap_0=cast=(Display *) Cairo_cairo_xlib_surface_create_for_bitmap_1=cast=Pixmap -Cairo_cairo_xlib_surface_create_for_bitmap_2= +Cairo_cairo_xlib_surface_create_for_bitmap_2=cast=(Screen * Cairo_cairo_xlib_surface_create_for_bitmap_3= +Cairo_cairo_xlib_surface_create_for_bitmap_4= Cairo_cairo_xlib_surface_set_size= Cairo_cairo_xlib_surface_set_size_0=cast=cairo_surface_t * diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.c b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.c index 34be0f1c18..f6e6dabdde 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.c @@ -254,6 +254,62 @@ JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1font_1extents_1t_1sizeof) } #endif +#ifndef NO_cairo_1font_1options_1create +JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1font_1options_1create) + (JNIEnv *env, jclass that) +{ + jint rc = 0; + Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1create_FUNC); + rc = (jint)cairo_font_options_create(); + Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1create_FUNC); + return rc; +} +#endif + +#ifndef NO_cairo_1font_1options_1destroy +JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1font_1options_1destroy) + (JNIEnv *env, jclass that, jint arg0) +{ + Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1destroy_FUNC); + cairo_font_options_destroy((cairo_font_options_t *)arg0); + Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1destroy_FUNC); +} +#endif + +#ifndef NO_cairo_1font_1options_1get_1antialias +JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1font_1options_1get_1antialias) + (JNIEnv *env, jclass that, jint arg0) +{ + jint rc = 0; + Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1get_1antialias_FUNC); + rc = (jint)cairo_font_options_get_antialias((cairo_font_options_t *)arg0); + Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1get_1antialias_FUNC); + return rc; +} +#endif + +#ifndef NO_cairo_1font_1options_1set_1antialias +JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1font_1options_1set_1antialias) + (JNIEnv *env, jclass that, jint arg0, jint arg1) +{ + Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1set_1antialias_FUNC); + cairo_font_options_set_antialias((cairo_font_options_t *)arg0, arg1); + Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1set_1antialias_FUNC); +} +#endif + +#ifndef NO_cairo_1get_1antialias +JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1antialias) + (JNIEnv *env, jclass that, jint arg0) +{ + jint rc = 0; + Cairo_NATIVE_ENTER(env, that, cairo_1get_1antialias_FUNC); + rc = (jint)cairo_get_antialias((cairo_t *)arg0); + Cairo_NATIVE_EXIT(env, that, cairo_1get_1antialias_FUNC); + return rc; +} +#endif + #ifndef NO_cairo_1get_1current_1point JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1get_1current_1point) (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2) @@ -309,6 +365,16 @@ fail: } #endif +#ifndef NO_cairo_1get_1font_1options +JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1get_1font_1options) + (JNIEnv *env, jclass that, jint arg0, jint arg1) +{ + Cairo_NATIVE_ENTER(env, that, cairo_1get_1font_1options_FUNC); + cairo_get_font_options((cairo_t *)arg0, (cairo_font_options_t *)arg1); + Cairo_NATIVE_EXIT(env, that, cairo_1get_1font_1options_FUNC); +} +#endif + #ifndef NO_cairo_1get_1line_1cap JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1line_1cap) (JNIEnv *env, jclass that, jint arg0) @@ -972,12 +1038,14 @@ JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1rectangle) #endif #ifndef NO_cairo_1reference -JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1reference) +JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1reference) (JNIEnv *env, jclass that, jint arg0) { + jint rc = 0; Cairo_NATIVE_ENTER(env, that, cairo_1reference_FUNC); - cairo_reference((cairo_t *)arg0); + rc = (jint)cairo_reference((cairo_t *)arg0); Cairo_NATIVE_EXIT(env, that, cairo_1reference_FUNC); + return rc; } #endif @@ -1075,6 +1143,16 @@ fail: } #endif +#ifndef NO_cairo_1set_1antialias +JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1antialias) + (JNIEnv *env, jclass that, jint arg0, jint arg1) +{ + Cairo_NATIVE_ENTER(env, that, cairo_1set_1antialias_FUNC); + cairo_set_antialias((cairo_t *)arg0, arg1); + Cairo_NATIVE_EXIT(env, that, cairo_1set_1antialias_FUNC); +} +#endif + #ifndef NO_cairo_1set_1dash JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1dash) (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jint arg2, jdouble arg3) @@ -1123,6 +1201,16 @@ fail: } #endif +#ifndef NO_cairo_1set_1font_1options +JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1font_1options) + (JNIEnv *env, jclass that, jint arg0, jint arg1) +{ + Cairo_NATIVE_ENTER(env, that, cairo_1set_1font_1options_FUNC); + cairo_set_font_options((cairo_t *)arg0, (cairo_font_options_t *)arg1); + Cairo_NATIVE_EXIT(env, that, cairo_1set_1font_1options_FUNC); +} +#endif + #ifndef NO_cairo_1set_1font_1size JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1font_1size) (JNIEnv *env, jclass that, jint arg0, jdouble arg1) @@ -1371,14 +1459,12 @@ JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1surface_1destroy) #endif #ifndef NO_cairo_1surface_1finish -JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1finish) +JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1surface_1finish) (JNIEnv *env, jclass that, jint arg0) { - jint rc = 0; Cairo_NATIVE_ENTER(env, that, cairo_1surface_1finish_FUNC); - rc = (jint)cairo_surface_finish((cairo_surface_t *)arg0); + cairo_surface_finish((cairo_surface_t *)arg0); Cairo_NATIVE_EXIT(env, that, cairo_1surface_1finish_FUNC); - return rc; } #endif @@ -1526,11 +1612,11 @@ JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1xlib_1surface_1create) #ifndef NO_cairo_1xlib_1surface_1create_1for_1bitmap JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1xlib_1surface_1create_1for_1bitmap) - (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3) + (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4) { jint rc = 0; Cairo_NATIVE_ENTER(env, that, cairo_1xlib_1surface_1create_1for_1bitmap_FUNC); - rc = (jint)cairo_xlib_surface_create_for_bitmap((Display *)arg0, (Pixmap)arg1, arg2, arg3); + rc = (jint)cairo_xlib_surface_create_for_bitmap((Display *)arg0, (Pixmap)arg1, (Screen *)arg2, arg3, arg4); Cairo_NATIVE_EXIT(env, that, cairo_1xlib_1surface_1create_1for_1bitmap_FUNC); return rc; } diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.c index f05964cbf6..478bf180b2 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.c @@ -24,8 +24,8 @@ #ifdef NATIVE_STATS -int Cairo_nativeFunctionCount = 130; -int Cairo_nativeFunctionCallCount[130]; +int Cairo_nativeFunctionCount = 138; +int Cairo_nativeFunctionCallCount[138]; char * Cairo_nativeFunctionNames[] = { "cairo_1append_1path", "cairo_1arc", @@ -46,10 +46,16 @@ char * Cairo_nativeFunctionNames[] = { "cairo_1fill_1preserve", "cairo_1font_1extents", "cairo_1font_1extents_1t_1sizeof", + "cairo_1font_1options_1create", + "cairo_1font_1options_1destroy", + "cairo_1font_1options_1get_1antialias", + "cairo_1font_1options_1set_1antialias", + "cairo_1get_1antialias", "cairo_1get_1current_1point", "cairo_1get_1fill_1rule", "cairo_1get_1font_1face", "cairo_1get_1font_1matrix", + "cairo_1get_1font_1options", "cairo_1get_1line_1cap", "cairo_1get_1line_1join", "cairo_1get_1line_1width", @@ -114,10 +120,12 @@ char * Cairo_nativeFunctionNames[] = { "cairo_1save", "cairo_1scale", "cairo_1select_1font_1face", + "cairo_1set_1antialias", "cairo_1set_1dash", "cairo_1set_1fill_1rule", "cairo_1set_1font_1face", "cairo_1set_1font_1matrix", + "cairo_1set_1font_1options", "cairo_1set_1font_1size", "cairo_1set_1line_1cap", "cairo_1set_1line_1join", diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.h index 3c06593163..853ca38601 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.h +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.h @@ -50,10 +50,16 @@ typedef enum { cairo_1fill_1preserve_FUNC, cairo_1font_1extents_FUNC, cairo_1font_1extents_1t_1sizeof_FUNC, + cairo_1font_1options_1create_FUNC, + cairo_1font_1options_1destroy_FUNC, + cairo_1font_1options_1get_1antialias_FUNC, + cairo_1font_1options_1set_1antialias_FUNC, + cairo_1get_1antialias_FUNC, cairo_1get_1current_1point_FUNC, cairo_1get_1fill_1rule_FUNC, cairo_1get_1font_1face_FUNC, cairo_1get_1font_1matrix_FUNC, + cairo_1get_1font_1options_FUNC, cairo_1get_1line_1cap_FUNC, cairo_1get_1line_1join_FUNC, cairo_1get_1line_1width_FUNC, @@ -118,10 +124,12 @@ typedef enum { cairo_1save_FUNC, cairo_1scale_FUNC, cairo_1select_1font_1face_FUNC, + cairo_1set_1antialias_FUNC, cairo_1set_1dash_FUNC, cairo_1set_1fill_1rule_FUNC, cairo_1set_1font_1face_FUNC, cairo_1set_1font_1matrix_FUNC, + cairo_1set_1font_1options_FUNC, cairo_1set_1font_1size_FUNC, cairo_1set_1line_1cap_FUNC, cairo_1set_1line_1join_FUNC, 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 50fedb76ff..41842061e3 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 @@ -28,6 +28,10 @@ public class Cairo { } /** Constants */ + public static final int CAIRO_ANTIALIAS_DEFAULT = 0; + public static final int CAIRO_ANTIALIAS_NONE = 1; + public static final int CAIRO_ANTIALIAS_GRAY = 2; + public static final int CAIRO_ANTIALIAS_SUBPIXEL = 3; public static final int CAIRO_FORMAT_ARGB32 = 0; public static final int CAIRO_FORMAT_RGB24 = 1; public static final int CAIRO_FORMAT_A8 = 2; @@ -88,7 +92,7 @@ public static final synchronized native int cairo_path_t_sizeof (); /** Natives */ public static final synchronized native int /*long*/ cairo_create (int /*long*/ target); -public static final synchronized native void cairo_reference (int /*long*/ cr); +public static final synchronized native int /*long*/ cairo_reference (int /*long*/ cr); public static final synchronized native void cairo_destroy (int /*long*/ cr); public static final synchronized native void cairo_save (int /*long*/ cr); public static final synchronized native void cairo_restore (int /*long*/ cr); @@ -98,6 +102,7 @@ public static final synchronized native void cairo_set_source_rgba(int /*long*/ public static final synchronized native void cairo_set_source(int /*long*/ cr, int /*long*/ source); public static final synchronized native void cairo_set_source_surface(int /*long*/ cr, int /*long*/ surface, double x, double y); public static final synchronized native void cairo_set_tolerance (int /*long*/ cr, double tolerance); +public static final synchronized native void cairo_set_antialias (int /*long*/ cr, int antialias); public static final synchronized native void cairo_set_fill_rule (int /*long*/ cr, int fill_rule); public static final synchronized native void cairo_set_line_width (int /*long*/ cr, double width); public static final synchronized native void cairo_set_line_cap (int /*long*/ cr, int line_cap); @@ -143,6 +148,12 @@ public static final synchronized native void cairo_fill_extents (int /*long*/ cr public static final synchronized native void cairo_clip (int /*long*/ cr); public static final synchronized native void cairo_clip_preserve (int /*long*/ cr); public static final synchronized native void cairo_reset_clip (int /*long*/ cr); +public static final synchronized native int /*long*/ cairo_font_options_create (); +public static final synchronized native void cairo_font_options_destroy (int /*long*/ options); +public static final synchronized native void cairo_font_options_set_antialias (int /*long*/ options, int antialias); +public static final synchronized native int cairo_font_options_get_antialias (int /*long*/ options); +public static final synchronized native void cairo_set_font_options (int /*long*/ cr, int /*long*/ options); +public static final synchronized native void cairo_get_font_options (int /*long*/ cr, int /*long*/ options); public static final synchronized native void cairo_select_font_face (int /*long*/ cr, byte[] family, int slant, int weight); public static final synchronized native void cairo_set_font_size (int /*long*/ cr, double size); public static final synchronized native void cairo_set_font_matrix (int /*long*/ cr, double[] matrix); @@ -160,6 +171,7 @@ public static final synchronized native int cairo_get_operator (int /*long*/ cr) public static final synchronized native int /*long*/ cairo_get_source (int /*long*/ cr); public static final synchronized native double cairo_get_tolerance (int /*long*/ cr); public static final synchronized native void cairo_get_current_point (int /*long*/ cr, double[] x, double[] y); +public static final synchronized native int cairo_get_antialias (int /*long*/ cr); public static final synchronized native int cairo_get_fill_rule (int /*long*/ cr); public static final synchronized native double cairo_get_line_width (int /*long*/ cr); public static final synchronized native int cairo_get_line_cap (int /*long*/ cr); @@ -180,7 +192,7 @@ public static final synchronized native int cairo_image_surface_get_height (int public static final synchronized native int /*long*/ cairo_surface_create_similar (int /*long*/ other, int format, int width, int height); public static final synchronized native void cairo_surface_reference (int /*long*/ surface); public static final synchronized native void cairo_surface_destroy (int /*long*/ surface); -public static final synchronized native int cairo_surface_finish (int /*long*/ surface); +public static final synchronized native void cairo_surface_finish (int /*long*/ surface); public static final synchronized native int cairo_surface_set_user_data (int /*long*/ surface, int /*long*/ key, int /*long*/ user_data, int /*long*/ destroy); public static final synchronized native int /*long*/ cairo_surface_get_user_data (int /*long*/ surface, int /*long*/ key); public static final synchronized native void cairo_surface_set_device_offset (int /*long*/ surface, double x_offset, double y_offset); @@ -210,7 +222,7 @@ public static final synchronized native void cairo_matrix_multiply (double[] res public static final synchronized native void cairo_matrix_transform_distance (double[] matrix, double[] dx, double[] dy); public static final synchronized native void cairo_matrix_transform_point (double[] matrix, double[] x, double[] y); public static final synchronized native int /*long*/ cairo_xlib_surface_create (int /*long*/ dpy, int /*long*/ drawable, int /*long*/ visual, int width, int height); -public static final synchronized native int /*long*/ cairo_xlib_surface_create_for_bitmap (int /*long*/ dpy, int /*long*/ pixmap, int width, int height); +public static final synchronized native int /*long*/ cairo_xlib_surface_create_for_bitmap (int /*long*/ dpy, int /*long*/ pixmap, int /*long*/ screen, int width, int height); public static final synchronized native void cairo_xlib_surface_set_size (int /*long*/ surface, int width, int height); public static final native void memmove(cairo_path_t dest, int /*long*/ src, int /*long*/ size); public static final native void memmove(cairo_path_data_t dest, int /*long*/ src, int /*long*/ size); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java index 81ef943df4..1d681e0162 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java @@ -1776,8 +1776,15 @@ public int getAlpha() { */ public int getAntialias() { if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED); - if (data.cairo != 0) return SWT.ON; - return data.antialias; + if (data.cairo == 0) return SWT.DEFAULT; + int antialias = Cairo.cairo_get_antialias(data.cairo); + switch (antialias) { + case Cairo.CAIRO_ANTIALIAS_DEFAULT: return SWT.DEFAULT; + case Cairo.CAIRO_ANTIALIAS_NONE: return SWT.OFF; + case Cairo.CAIRO_ANTIALIAS_GRAY: + case Cairo.CAIRO_ANTIALIAS_SUBPIXEL: return SWT.ON; + } + return SWT.DEFAULT; } /** @@ -2177,7 +2184,18 @@ public int getStyle () { */ public int getTextAntialias() { if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED); - return data.textAntialias; + if (data.cairo == 0) return SWT.DEFAULT; + int /*long*/ options = Cairo.cairo_font_options_create(); + Cairo.cairo_get_font_options(data.cairo, options); + int antialias = Cairo.cairo_font_options_get_antialias(options); + Cairo.cairo_font_options_destroy(options); + switch (antialias) { + case Cairo.CAIRO_ANTIALIAS_DEFAULT: return SWT.DEFAULT; + case Cairo.CAIRO_ANTIALIAS_NONE: return SWT.OFF; + case Cairo.CAIRO_ANTIALIAS_GRAY: + case Cairo.CAIRO_ANTIALIAS_SUBPIXEL: return SWT.ON; + } + return SWT.DEFAULT; } /** @@ -2439,7 +2457,7 @@ public void setAdvanced(boolean advanced) { if (cairo != 0) Cairo.cairo_destroy(cairo); data.cairo = 0; data.matrix = data.inverseMatrix = null; - data.antialias = data.textAntialias = data.interpolation = SWT.DEFAULT; + data.interpolation = SWT.DEFAULT; data.backgroundPattern = data.foregroundPattern = null; setClipping(0); } @@ -2496,16 +2514,18 @@ public void setAlpha(int alpha) { public void setAntialias(int antialias) { if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED); if (data.cairo == 0 && antialias == SWT.DEFAULT) return; + int mode = 0; switch (antialias) { - case SWT.DEFAULT: break; - case SWT.OFF: break; - case SWT.ON: - initCairo(); + case SWT.DEFAULT: mode = Cairo.CAIRO_ANTIALIAS_DEFAULT; break; + case SWT.OFF: mode = Cairo.CAIRO_ANTIALIAS_NONE; break; + case SWT.ON: mode = Cairo.CAIRO_ANTIALIAS_GRAY; break; default: SWT.error(SWT.ERROR_INVALID_ARGUMENT); } - data.antialias = antialias; + initCairo(); + int /*long*/ cairo = data.cairo; + Cairo.cairo_set_antialias(cairo, mode); } /** @@ -3212,14 +3232,20 @@ void setString(String string, int flags) { public void setTextAntialias(int antialias) { if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED); if (data.cairo == 0 && antialias == SWT.DEFAULT) return; - switch (antialias) { - case SWT.DEFAULT: break; - case SWT.OFF: break; - case SWT.ON: break; - default: - SWT.error(SWT.ERROR_INVALID_ARGUMENT); - } - data.textAntialias = antialias; + int mode = 0; + switch (antialias) { + case SWT.DEFAULT: mode = Cairo.CAIRO_ANTIALIAS_DEFAULT; break; + case SWT.OFF: mode = Cairo.CAIRO_ANTIALIAS_NONE; break; + case SWT.ON: mode = Cairo.CAIRO_ANTIALIAS_GRAY; + break; + default: + SWT.error(SWT.ERROR_INVALID_ARGUMENT); + } + initCairo(); + int /*long*/ options = Cairo.cairo_font_options_create(); + Cairo.cairo_font_options_set_antialias(options, mode); + Cairo.cairo_set_font_options(data.cairo, options); + Cairo.cairo_font_options_destroy(options); } /** diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GCData.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GCData.java index 542756f087..3663468726 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GCData.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GCData.java @@ -42,8 +42,6 @@ public final class GCData { public int[] dashes; public boolean xorMode; public int alpha = 0xFF; - public int antialias = SWT.DEFAULT; - public int textAntialias = SWT.DEFAULT; public int interpolation = SWT.DEFAULT; public int /*long*/ cairo; -- cgit