/[classpath]/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
ViewVC logotype

Diff of /classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.18 by mkoch, Fri Oct 29 08:34:12 2004 UTC revision 1.19 by mkoch, Sun Dec 26 13:35:47 2004 UTC
# Line 175  x_server_has_render_extension (void) Line 175  x_server_has_render_extension (void)
175    return (int) XRenderQueryExtension (GDK_DISPLAY (), &ev, &err);    return (int) XRenderQueryExtension (GDK_DISPLAY (), &ev, &err);
176  }  }
177    
   
178  static void  static void
179  init_graphics2d_as_pixbuf (struct graphics2d *gr)  init_graphics2d_as_pixbuf (struct graphics2d *gr)
180  {  {
# Line 196  init_graphics2d_as_pixbuf (struct graphi Line 195  init_graphics2d_as_pixbuf (struct graphi
195    g_assert (gdk_pixbuf_get_bits_per_sample (gr->drawbuf) == bits_per_sample);    g_assert (gdk_pixbuf_get_bits_per_sample (gr->drawbuf) == bits_per_sample);
196    g_assert (gdk_pixbuf_get_n_channels (gr->drawbuf) == total_channels);    g_assert (gdk_pixbuf_get_n_channels (gr->drawbuf) == total_channels);
197        
198    gr->surface = cairo_surface_create_for_image (gdk_pixbuf_get_pixels (gr->drawbuf),    gr->surface = cairo_surface_create_for_image ((char *) gdk_pixbuf_get_pixels (gr->drawbuf),
199                                                  CAIRO_FORMAT_ARGB32,                                                  CAIRO_FORMAT_ARGB32,
200                                                  gdk_pixbuf_get_width (gr->drawbuf),                                                  gdk_pixbuf_get_width (gr->drawbuf),
201                                                  gdk_pixbuf_get_height (gr->drawbuf),                                                  gdk_pixbuf_get_height (gr->drawbuf),
202                                                  gdk_pixbuf_get_rowstride (gr->drawbuf));                                                        gdk_pixbuf_get_rowstride (gr->drawbuf));      
203    g_assert (gr->surface != NULL);    g_assert (gr->surface != NULL);
204    g_assert (gr->cr != NULL);    g_assert (gr->cr != NULL);
205      gr->mode = MODE_DRAWABLE_NO_RENDER;
206    cairo_set_target_surface (gr->cr, gr->surface);    cairo_set_target_surface (gr->cr, gr->surface);
207  }  }
208    
# Line 232  init_graphics2d_as_renderable (struct gr Line 232  init_graphics2d_as_renderable (struct gr
232                                             DefaultColormap (dpy, DefaultScreen (dpy)));                                             DefaultColormap (dpy, DefaultScreen (dpy)));
233    g_assert (gr->surface != NULL);    g_assert (gr->surface != NULL);
234    g_assert (gr->cr != NULL);    g_assert (gr->cr != NULL);
235      gr->mode = MODE_DRAWABLE_WITH_RENDER;
236    cairo_set_target_surface (gr->cr, gr->surface);    cairo_set_target_surface (gr->cr, gr->surface);
237  }  }
238    
239  static void  static void
240  begin_drawing_operation (struct graphics2d * gr)  begin_drawing_operation (JNIEnv *env, struct graphics2d * gr)
241  {    {  
242    g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS);    g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS);
243    if (gr->drawbuf)  
244      switch (gr->mode)
245      {      {
246        case MODE_DRAWABLE_WITH_RENDER:
247          break;
248    
249        gint drawable_width, drawable_height;      case MODE_DRAWABLE_NO_RENDER:
250        gint pixbuf_width, pixbuf_height;        {
251        gint width, height;          
252                  gint drawable_width, drawable_height;
253        gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);          gint pixbuf_width, pixbuf_height;
254        pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);          gint width, height;
255        pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);          
256        width = min (drawable_width, pixbuf_width);          gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);
257        height = min (drawable_height, pixbuf_height);          pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);
258            pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);
259        gdk_pixbuf_get_from_drawable (gr->drawbuf, /* destination pixbuf */          width = min (drawable_width, pixbuf_width);
260                                      gr->drawable,          height = min (drawable_height, pixbuf_height);
261                                      NULL, /* colormap */          
262                                      0, 0, 0, 0,          gdk_pixbuf_get_from_drawable (gr->drawbuf, /* destination pixbuf */
263                                      width, height);                                        gr->drawable,
264                                                NULL, /* colormap */
265        if (gr->debug) printf ("copied (%d, %d) pixels from GDK drawable to pixbuf\n",                                        0, 0, 0, 0,
266                               width, height);                                              width, height);
267            
268            if (gr->debug) printf ("copied (%d, %d) pixels from GDK drawable to pixbuf\n",
269                                   width, height);      
270          }
271          break;
272    
273        case MODE_JAVA_ARRAY:
274          gr->javabuf = (*env)->GetIntArrayElements (env, gr->jarray, &gr->isCopy);
275          gr->surface = cairo_surface_create_for_image ((char *) gr->javabuf,
276                                                        CAIRO_FORMAT_ARGB32,
277                                                        gr->width,
278                                                        gr->height,
279                                                        gr->width * 4);
280          g_assert(gr->surface != NULL);
281          g_assert(gr->cr != NULL);
282          cairo_set_target_surface (gr->cr, gr->surface);
283          break;
284      }      }
285  }  }
286    
287  static void  static void
288  end_drawing_operation (struct graphics2d * gr)  end_drawing_operation (JNIEnv *env, struct graphics2d * gr)
289  {  {
290    g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS);    g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS);
   if (gr->drawbuf)  
     {  
       gint drawable_width, drawable_height;  
       gint pixbuf_width, pixbuf_height;  
       gint width, height;  
         
       gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);  
       pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);  
       pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);  
       width = min (drawable_width, pixbuf_width);  
       height = min (drawable_height, pixbuf_height);  
   
       gdk_draw_pixbuf (gr->drawable, NULL, gr->drawbuf,  
                        0, 0, 0, 0,  
                        width, height,  
                        GDK_RGB_DITHER_NORMAL, 0, 0);  
291    
292        if (gr->debug) printf ("copied (%d, %d) pixels from pixbuf to GDK drawable\n",    switch (gr->mode)
293                               width, height);      {
294        case MODE_DRAWABLE_WITH_RENDER:
295          break;
296    
297        case MODE_DRAWABLE_NO_RENDER:
298          {
299    
300            gint drawable_width, drawable_height;
301            gint pixbuf_width, pixbuf_height;
302            gint width, height;
303            
304            gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);
305            pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);
306            pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);
307            width = min (drawable_width, pixbuf_width);
308            height = min (drawable_height, pixbuf_height);
309            
310            gdk_draw_pixbuf (gr->drawable, NULL, gr->drawbuf,
311                             0, 0, 0, 0,
312                             width, height,
313                             GDK_RGB_DITHER_NORMAL, 0, 0);
314            
315            if (gr->debug) printf ("copied (%d, %d) pixels from pixbuf to GDK drawable\n",
316                                   width, height);
317          }
318          break;
319          
320        case MODE_JAVA_ARRAY:
321          /*
322           * FIXME: Perhaps this should use the isCopy flag to try to avoid
323           * tearing down the cairo surface.
324           */
325          cairo_surface_destroy (gr->surface);
326          gr->surface = NULL;
327          (*env)->ReleaseIntArrayElements (env, gr->jarray, gr->javabuf, JNI_COMMIT);
328      }      }
329  }  }
330    
# Line 317  check_for_debug (struct graphics2d *gr) Line 356  check_for_debug (struct graphics2d *gr)
356  }  }
357    
358  static void  static void
359  realize_cb (GtkWidget *widget, jobject peer)  realize_cb (GtkWidget *widget __attribute__ ((unused)), jobject peer)
360  {  {
361    gdk_threads_leave ();    gdk_threads_leave ();
362    
# Line 342  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 381  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
381    
382    if (g_old->debug) printf ("copying state from existing graphics2d\n");    if (g_old->debug) printf ("copying state from existing graphics2d\n");
383    
   g->drawable = g_old->drawable;  
384    g->debug = g_old->debug;    g->debug = g_old->debug;
385      g->mode = g_old->mode;
386    
387    g_object_ref (g->drawable);    if (g_old->mode == MODE_JAVA_ARRAY)
388        {
389          g->width = g_old->width;
390          g->height = g_old->height;
391          g->jarray = (*env)->NewGlobalRef(env, g_old->jarray);
392        }
393      else
394        {
395          g->drawable = g_old->drawable;
396    
397          g_object_ref (g->drawable);
398        
399    g->cr = cairo_create();        g->cr = cairo_create();
400    g_assert (g->cr != NULL);        g_assert (g->cr != NULL);
401    
402    if (x_server_has_render_extension ())        if (x_server_has_render_extension ())
403      init_graphics2d_as_renderable (g);          init_graphics2d_as_renderable (g);
404    else        else
405      init_graphics2d_as_pixbuf (g);          init_graphics2d_as_pixbuf (g);
406        }
407    
408    cairo_surface_set_filter (g->surface, CAIRO_FILTER_FAST);    cairo_surface_set_filter (g->surface, CAIRO_FILTER_FAST);
409    
# Line 363  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 413  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
413    
414    
415  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
416    Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState___3III
417    (JNIEnv *env, jobject obj, jintArray jarr, jint width, jint height)
418    {
419      struct graphics2d *gr;
420    
421      gdk_threads_enter();
422      gr = (struct graphics2d *) malloc (sizeof (struct graphics2d));
423      g_assert (gr != NULL);
424      memset (gr, 0, sizeof(struct graphics2d));
425    
426      check_for_debug (gr);  
427    
428      if (gr->debug) printf ("constructing java-backed image of size (%d,%d)\n",
429                             width, height);
430      
431      gr->cr = cairo_create();
432      g_assert (gr->cr != NULL);
433    
434      gr->width = width;
435      gr->height = height;
436      gr->jarray = (*env)->NewGlobalRef(env, jarr);
437      gr->mode = MODE_JAVA_ARRAY;
438    
439      if (gr->debug) printf ("constructed java-backed image of size (%d,%d)\n",
440                             width, height);
441    
442      NSA_SET_G2D_PTR (env, obj, gr);
443      gdk_threads_leave();  
444    }
445    
446    JNIEXPORT void JNICALL
447  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__II  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__II
448    (JNIEnv *env, jobject obj, jint width, jint height)    (JNIEnv *env, jobject obj, jint width, jint height)
449  {  {
# Line 414  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 495  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
495    
496    if (src->debug) printf ("copying from offscreen drawable\n");    if (src->debug) printf ("copying from offscreen drawable\n");
497    
498    begin_drawing_operation(dst);    begin_drawing_operation(env, dst);
499    
500    /* gdk_flush(); */    /* gdk_flush(); */
501    
# Line 439  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 520  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
520    
521    gdk_flush();    gdk_flush();
522    
523    end_drawing_operation(dst);    end_drawing_operation(env, dst);
524    
525    if (src->debug) printf ("copied %d x %d pixels from offscreen drawable\n", width, height);    if (src->debug) printf ("copied %d x %d pixels from offscreen drawable\n", width, height);
526    gdk_threads_leave();    gdk_threads_leave();
# Line 531  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 612  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
612    if (gr->pattern_pixels)    if (gr->pattern_pixels)
613      free (gr->pattern_pixels);      free (gr->pattern_pixels);
614    
615      if (gr->mode == MODE_JAVA_ARRAY)
616        (*env)->DeleteGlobalRef(env, gr->jarray);
617    
618    if (gr->debug) printf ("disposed of graphics2d\n");    if (gr->debug) printf ("disposed of graphics2d\n");
619    
620    free (gr);    free (gr);
# Line 734  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 818  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
818    g_assert (native_matrix != NULL);    g_assert (native_matrix != NULL);
819    g_assert ((*env)->GetArrayLength (env, java_matrix) == 6);    g_assert ((*env)->GetArrayLength (env, java_matrix) == 6);
820    
821    begin_drawing_operation (gr);    begin_drawing_operation (env, gr);
822        
823   {   {
824     cairo_matrix_t *mat = NULL;     cairo_matrix_t *mat = NULL;
# Line 748  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 832  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
832                              native_matrix[4], native_matrix[5]);                              native_matrix[4], native_matrix[5]);
833     cairo_surface_set_matrix (surf, mat);     cairo_surface_set_matrix (surf, mat);
834     cairo_surface_set_filter (surf, cairo_surface_get_filter(gr->surface));     cairo_surface_set_filter (surf, cairo_surface_get_filter(gr->surface));
   
835     cairo_show_surface (gr->cr, surf, w, h);     cairo_show_surface (gr->cr, surf, w, h);
836     cairo_matrix_destroy (mat);     cairo_matrix_destroy (mat);
837     cairo_surface_destroy (surf);     cairo_surface_destroy (surf);
838   }   }
839        
840   end_drawing_operation (gr);   end_drawing_operation (env, gr);
841    
842   (*env)->ReleaseIntArrayElements (env, java_pixels, native_pixels, 0);   (*env)->ReleaseIntArrayElements (env, java_pixels, native_pixels, 0);
843   (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0);   (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0);
# Line 762  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 845  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
845    gdk_threads_leave();    gdk_threads_leave();
846  }  }
847    
 JNIEXPORT jintArray JNICALL  
 Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getImagePixels  
    (JNIEnv *env, jobject obj)  
 {  
   struct graphics2d *gr = NULL;  
   jintArray java_pixels;  
   jint* native_pixels;  
   GdkPixbuf *buf = NULL;  
   gint width, height;  
   gint bits_per_sample = 8;  
   gboolean has_alpha = TRUE;  
   gint total_channels = 4;  
   jint i;  
   
   gdk_threads_enter();  
   if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return NULL; }  
   
   gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);  
   g_assert (gr != NULL);  
     
   if (gr->debug) printf ("getImagePixels\n");  
     
   gdk_drawable_get_size (gr->drawable, &width, &height);  
       
   buf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, has_alpha,  
                         bits_per_sample,  
                         width, height);  
   g_assert (buf != NULL);  
   g_assert (gdk_pixbuf_get_bits_per_sample (buf) == bits_per_sample);  
   g_assert (gdk_pixbuf_get_n_channels (buf) == total_channels);  
     
         
   /* copy pixels from drawable to pixbuf */  
     
   gdk_pixbuf_get_from_drawable (buf, gr->drawable,  
                                 NULL,  
                                 0, 0, 0, 0,  
                                 width, height);  
                                                                                                         
   native_pixels= gdk_pixbuf_get_pixels (buf);  
   
 #ifndef WORDS_BIGENDIAN  
   /* convert pixels from 0xBBGGRRAA to 0xAARRGGBB */  
   for (i=0; i<width * height; i++)  
     {  
       native_pixels[i] = SWAPU32 ((unsigned)native_pixels[i]);  
     }  
 #endif  
   
    java_pixels = (*env) -> NewIntArray (env, width * height);    
     
    (*env)->SetIntArrayRegion(env, java_pixels,  
                             (jsize)0, (jsize) width*height,  
                             (jint*) native_pixels);  
     
    gdk_threads_leave();  
    return java_pixels;  
 }  
   
848  /* passthrough methods to cairo */  /* passthrough methods to cairo */
849    
850  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
# Line 952  ensure_metrics_cairo() Line 976  ensure_metrics_cairo()
976    
977  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
978  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_releasePeerGraphicsResource  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_releasePeerGraphicsResource
979     (JNIEnv *env, jclass clazz, jobject java_font)     (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font)
980  {  {
981    struct peerfont *pfont = NULL;    struct peerfont *pfont = NULL;
982    
# Line 971  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 995  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
995    
996  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
997  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics
998     (JNIEnv *env, jclass clazz, jobject java_font, jstring str, jdoubleArray java_metrics)     (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font, jstring str, jdoubleArray java_metrics)
999  {  {
1000    struct peerfont *pfont = NULL;    struct peerfont *pfont = NULL;
1001    const char *cstr = NULL;    const char *cstr = NULL;
# Line 989  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1013  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1013    
1014    cstr = (*env)->GetStringUTFChars (env, str, NULL);    cstr = (*env)->GetStringUTFChars (env, str, NULL);
1015    g_assert(cstr != NULL);    g_assert(cstr != NULL);
1016    cairo_text_extents (metrics_cairo, cstr, &extents);    cairo_text_extents (metrics_cairo, (unsigned char *) cstr, &extents);
1017    
1018    native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);    native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
1019    g_assert (native_metrics != NULL);    g_assert (native_metrics != NULL);
# Line 1008  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1032  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1032    
1033  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
1034  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics  Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics
1035     (JNIEnv *env, jclass clazz, jobject java_font, jdoubleArray java_metrics)     (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font, jdoubleArray java_metrics)
1036  {  {
1037    struct peerfont *pfont = NULL;    struct peerfont *pfont = NULL;
1038    jdouble *native_metrics = NULL;    jdouble *native_metrics = NULL;
# Line 1042  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1066  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1066  }  }
1067    
1068  static void  static void
1069  paint_glyph_run(struct graphics2d *gr,  paint_glyph_run(JNIEnv *env,
1070                    struct graphics2d *gr,
1071                  cairo_glyph_t **glyphs,                  cairo_glyph_t **glyphs,
1072                  gint *n_glyphs,                  gint *n_glyphs,
1073                  PangoLayoutRun *run)                  PangoLayoutRun *run)
# Line 1090  paint_glyph_run(struct graphics2d *gr, Line 1115  paint_glyph_run(struct graphics2d *gr,
1115          }          }
1116    
1117        if (gr->debug) printf("\n");        if (gr->debug) printf("\n");
1118        begin_drawing_operation (gr);        begin_drawing_operation (env, gr);
1119        cairo_show_glyphs (gr->cr, *glyphs, run->glyphs->num_glyphs);        cairo_show_glyphs (gr->cr, *glyphs, run->glyphs->num_glyphs);
1120        end_drawing_operation (gr);              end_drawing_operation (env, gr);      
1121      }      }
1122  }  }
1123    
# Line 1138  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1163  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1163    
1164    install_font_peer (gr->cr, pfont, gr->debug);    install_font_peer (gr->cr, pfont, gr->debug);
1165    cairo_move_to (gr->cr, x, y);    cairo_move_to (gr->cr, x, y);
1166    cairo_show_text (gr->cr, cstr);    cairo_show_text (gr->cr, (unsigned char *) cstr);
1167        
1168    /*    /*
1169            
# Line 1206  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1231  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1231    /* nb. PangoLayoutRun is a typedef for PangoGlyphItem. */    /* nb. PangoLayoutRun is a typedef for PangoGlyphItem. */
1232    run = (PangoLayoutRun *) gv->glyphitems;    run = (PangoLayoutRun *) gv->glyphitems;
1233    if (run != NULL)    if (run != NULL)
1234      paint_glyph_run (gr, &glyphs, &n_glyphs, run);      paint_glyph_run (env, gr, &glyphs, &n_glyphs, run);
1235    
1236    if (glyphs != NULL)    if (glyphs != NULL)
1237      g_free (glyphs);      g_free (glyphs);
# Line 1259  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1284  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1284      {      {
1285        run = pango_layout_iter_get_run (i);        run = pango_layout_iter_get_run (i);
1286        if (run != NULL)        if (run != NULL)
1287          paint_glyph_run (gr, &glyphs, &n_glyphs, run);          paint_glyph_run (env, gr, &glyphs, &n_glyphs, run);
1288      }      }
1289    while (pango_layout_iter_next_run (i));    while (pango_layout_iter_next_run (i));
1290        
# Line 1671  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1696  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1696    gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);    gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
1697    g_assert (gr != NULL);    g_assert (gr != NULL);
1698    if (gr->debug) printf ("cairo_stroke\n");    if (gr->debug) printf ("cairo_stroke\n");
1699    begin_drawing_operation (gr);    begin_drawing_operation (env, gr);
1700    cairo_stroke (gr->cr);    cairo_stroke (gr->cr);
1701    end_drawing_operation (gr);    end_drawing_operation (env, gr);
1702    gdk_threads_leave();    gdk_threads_leave();
1703  }  }
1704    
# Line 1689  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1714  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1714    gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);    gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
1715    g_assert (gr != NULL);    g_assert (gr != NULL);
1716    if (gr->debug) printf ("cairo_fill\n");    if (gr->debug) printf ("cairo_fill\n");
1717    begin_drawing_operation (gr);    begin_drawing_operation (env, gr);
1718    cairo_fill (gr->cr);    cairo_fill (gr->cr);
1719    end_drawing_operation (gr);    end_drawing_operation (env, gr);
1720    gdk_threads_leave();    gdk_threads_leave();
1721  }  }
1722    
# Line 1707  Java_gnu_java_awt_peer_gtk_GdkGraphics2D Line 1732  Java_gnu_java_awt_peer_gtk_GdkGraphics2D
1732    gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);    gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
1733    if (gr == NULL) { gdk_threads_leave (); return; }    if (gr == NULL) { gdk_threads_leave (); return; }
1734    if (gr->debug) printf ("cairo_clip\n");    if (gr->debug) printf ("cairo_clip\n");
1735    begin_drawing_operation (gr);    begin_drawing_operation (env, gr);
1736    cairo_init_clip (gr->cr);    cairo_init_clip (gr->cr);
1737    cairo_clip (gr->cr);    cairo_clip (gr->cr);
1738    end_drawing_operation (gr);    end_drawing_operation (env, gr);
1739    gdk_threads_leave();    gdk_threads_leave();
1740  }  }
1741    

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26