diff options
author | Sven de Marothy <sven@physto.se> | 2006-06-03 22:41:40 +0000 |
---|---|---|
committer | Sven de Marothy <sven@physto.se> | 2006-06-03 22:41:40 +0000 |
commit | f103d1dbbc989779e4398518fd3da436c919fc76 (patch) | |
tree | 81e61c1b0570e31eb2c2a5ca77c5fc909f6447b3 /native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c | |
parent | 2b48e7eda66f88d6f6a57e11c8f438837e23b391 (diff) | |
download | classpath-f103d1dbbc989779e4398518fd3da436c919fc76.tar.gz |
2006-06-02 Sven de Marothy <sven@physto.se>
* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
New files.
* gnu/java/awt/peer/gtk/ComponentGraphics.java
(drawImage): Overloads for VolatileImage drawing.
(drawVolatile): New method.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
(drawVolatile): New method.
* gnu/java/awt/peer/gtk/GtkVolatileImage.java
Unstub implementation.
* include/Makefile.am
* native/jni/gtk-peer/Makefile.am
Add new files.
* native/jni/gtk-peer/gtkpeer.h
New prototype.
Diffstat (limited to 'native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c')
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c index c17c223a7..016313330 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c @@ -94,8 +94,6 @@ void cp_gtk_grab_current_drawable(GtkWidget *widget, GdkDrawable **draw, *draw = *win; gdk_window_get_internal_paint_info (*win, draw, 0, 0); - /* g_object_ref (*draw); */ - /* FIXME: Unref this. */ } /** @@ -211,3 +209,38 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative gdk_threads_leave(); } +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_ComponentGraphics_drawVolatile +(JNIEnv *env, jobject obj __attribute__ ((unused)), jobject peer, + jobject img, jint x, jint y, jint w, jint h) +{ + GdkPixmap *pixmap; + GtkWidget *widget = NULL; + void *ptr = NULL; + GdkGC *gc; + + gdk_threads_enter(); + + ptr = NSA_GET_PTR (env, peer); + g_assert (ptr != NULL); + + widget = GTK_WIDGET (ptr); + g_assert (widget != NULL); + + while(widget->window != NULL) + widget = widget->window; + pixmap = cp_gtk_get_pixmap( env, img ); + + + gc = gdk_gc_new( widget ); + gdk_draw_drawable(widget, + gc, + pixmap, + 0, 0, + x, y, + w, h); + + schedule_flush (); + + gdk_threads_leave(); +} |