47 |
return CLASSPATH_JAWT_VERSION; |
return CLASSPATH_JAWT_VERSION; |
48 |
} |
} |
49 |
|
|
50 |
|
/* Does not require locking: meant to be called after the drawing |
51 |
|
surface is locked. */ |
52 |
Display* |
Display* |
53 |
classpath_jawt_get_default_display (JNIEnv* env, jobject canvas) |
classpath_jawt_get_default_display (JNIEnv* env, jobject canvas) |
54 |
{ |
{ |
71 |
|
|
72 |
ptr = NSA_GET_PTR (env, peer); |
ptr = NSA_GET_PTR (env, peer); |
73 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
74 |
widget = GTK_WIDGET (ptr); |
widget = GTK_WIDGET (ptr); |
75 |
|
|
76 |
/* widget should be realized before Canvas.paint is called. */ |
/* widget should be realized before Canvas.paint is called. */ |
80 |
|
|
81 |
xdisplay = GDK_DISPLAY_XDISPLAY (display); |
xdisplay = GDK_DISPLAY_XDISPLAY (display); |
82 |
|
|
|
gdk_threads_leave (); |
|
|
|
|
83 |
return xdisplay; |
return xdisplay; |
84 |
} |
} |
85 |
|
|
86 |
|
/* Does not require locking: meant to be called after the drawing |
87 |
|
surface is locked. */ |
88 |
VisualID |
VisualID |
89 |
classpath_jawt_get_visualID (JNIEnv* env, jobject canvas) |
classpath_jawt_get_visualID (JNIEnv* env, jobject canvas) |
90 |
{ |
{ |
105 |
|
|
106 |
ptr = NSA_GET_PTR (env, peer); |
ptr = NSA_GET_PTR (env, peer); |
107 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
108 |
widget = GTK_WIDGET (ptr); |
widget = GTK_WIDGET (ptr); |
109 |
|
|
110 |
g_assert (GTK_WIDGET_REALIZED (widget)); |
g_assert (GTK_WIDGET_REALIZED (widget)); |
112 |
visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget)); |
visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget)); |
113 |
g_assert (visual != NULL); |
g_assert (visual != NULL); |
114 |
|
|
|
gdk_threads_leave (); |
|
|
|
|
115 |
return visual->visualid; |
return visual->visualid; |
116 |
} |
} |
117 |
|
|
118 |
|
/* Does not require locking: meant to be called after the drawing |
119 |
|
surface is locked. */ |
120 |
Drawable |
Drawable |
121 |
classpath_jawt_get_drawable (JNIEnv* env, jobject canvas) |
classpath_jawt_get_drawable (JNIEnv* env, jobject canvas) |
122 |
{ |
{ |
137 |
|
|
138 |
ptr = NSA_GET_PTR (env, peer); |
ptr = NSA_GET_PTR (env, peer); |
139 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
140 |
widget = GTK_WIDGET (ptr); |
widget = GTK_WIDGET (ptr); |
141 |
|
|
142 |
g_assert (GTK_WIDGET_REALIZED (widget)); |
g_assert (GTK_WIDGET_REALIZED (widget)); |
143 |
|
|
144 |
drawable = GDK_DRAWABLE_XID (widget->window); |
drawable = GDK_DRAWABLE_XID (widget->window); |
145 |
|
|
|
gdk_threads_leave (); |
|
|
|
|
146 |
return drawable; |
return drawable; |
147 |
} |
} |
148 |
|
|
149 |
jint |
jint |
|
classpath_jawt_object_lock (jobject lock) |
|
|
{ |
|
|
JNIEnv *env = cp_gtk_gdk_env(); |
|
|
(*env)->MonitorEnter (env, lock); |
|
|
return 0; |
|
|
} |
|
|
|
|
|
void |
|
|
classpath_jawt_object_unlock (jobject lock) |
|
|
{ |
|
|
JNIEnv *env = cp_gtk_gdk_env(); |
|
|
(*env)->MonitorExit (env, lock); |
|
|
} |
|
|
|
|
|
jint |
|
150 |
classpath_jawt_lock () |
classpath_jawt_lock () |
151 |
{ |
{ |
152 |
gdk_threads_enter (); |
gdk_threads_enter (); |
158 |
{ |
{ |
159 |
gdk_threads_leave (); |
gdk_threads_leave (); |
160 |
} |
} |
|
|
|
|
jobject |
|
|
classpath_jawt_create_lock () |
|
|
{ |
|
|
JNIEnv *env = cp_gtk_gdk_env (); |
|
|
jobject lock = (*env)->NewStringUTF (env, "jawt-lock"); |
|
|
NSA_SET_GLOBAL_REF (env, lock); |
|
|
return lock; |
|
|
} |
|
|
|
|
|
void |
|
|
classpath_jawt_destroy_lock (jobject lock) |
|
|
{ |
|
|
JNIEnv *env = cp_gtk_gdk_env (); |
|
|
NSA_DEL_GLOBAL_REF (env, lock); |
|
|
} |
|