JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__II (JNIEnv *env, jobject obj, jint width, jint height) { struct graphics2d *gr; gdk_threads_enter (); gr = (struct graphics2d *) malloc (sizeof (struct graphics2d)); g_assert (gr != NULL); memset (gr, 0, sizeof(struct graphics2d)); check_for_debug (gr); if (gr->debug) printf ("constructing offscreen drawable of size (%d,%d)\n", width, height); gr->drawable = (GdkDrawable *) gdk_pixmap_new (NULL, width, height, gdk_rgb_get_visual ()->depth); g_assert (gr->drawable != NULL); gr->cr = cairo_create(); g_assert (gr->cr != NULL); if (x_server_has_render_extension ()) init_graphics2d_as_renderable (gr); else init_graphics2d_as_pixbuf (gr); gdk_threads_leave (); if (gr->debug) printf ("constructed offscreen drawable of size (%d,%d)\n", width, height); NSA_SET_G2D_PTR (env, obj, gr); }
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2 (JNIEnv *env, jobject obj, jobject peer) { struct graphics2d *gr = NULL; GtkWidget *widget = NULL; void *ptr = NULL; gdk_threads_enter(); if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ptr = NSA_GET_PTR (env, peer); g_assert (ptr != NULL); gr = (struct graphics2d *) malloc (sizeof (struct graphics2d)); g_assert (gr != NULL); memset (gr, 0, sizeof(struct graphics2d)); check_for_debug (gr); gr->cr = cairo_create(); g_assert (gr->cr != NULL); widget = GTK_WIDGET (ptr); g_assert (widget != NULL); grab_current_drawable (widget, &(gr->drawable), &(gr->win)); g_assert (gr->drawable != NULL); if (x_server_has_render_extension ()) init_graphics2d_as_renderable (gr); else init_graphics2d_as_pixbuf (gr); NSA_SET_G2D_PTR (env, obj, gr); gdk_threads_leave(); }