18 #define VTK_JAVA_DEBUG
21 #if defined(__APPLE__)
22 #if defined(__GNUC__) && ((__GNUC__ > 4) || \
23 ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)))
24 #pragma GCC diagnostic push
26 #if defined(__GNUC__) && ((__GNUC__ > 4) || \
27 ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)))
28 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
32 #if defined(_WIN32) || defined(WIN32)
33 #define WIN32_JAWT_LOCK_HACK
36 #if defined(WIN32_JAWT_LOCK_HACK)
37 #define WJLH_MAX_COUNT (32)
38 #define WJLH_HASH_FUNC(E,C,H) {\
39 jclass cls = E->GetObjectClass(C);\
40 jmethodID mid = E->GetMethodID(cls, "hashCode", "()I");\
41 H = E->CallIntMethod(C, mid); }
42 # include "vtkWindows.h"
43 int WJLH_init_check = 0;
45 std::map<int,int> WJLH_lock_map;
48 extern "C" JNIEXPORT jint JNICALL
51 #if defined(WIN32_JAWT_LOCK_HACK)
53 WJLH_HASH_FUNC(env, canvas, hash);
54 WJLH_lock_map[hash] = 0;
58 JAWT_DrawingSurface* ds;
59 JAWT_DrawingSurfaceInfo* dsi;
67 awt.version = JAWT_VERSION_1_3;
68 if (JAWT_GetAWT(env, &awt) == JNI_FALSE)
70 #ifndef VTK_JAVA_DEBUG
71 printf(
"AWT Not found\n");
77 ds = awt.GetDrawingSurface(env, canvas);
80 #ifndef VTK_JAVA_DEBUG
81 printf(
"NULL drawing surface\n");
88 if((lock & JAWT_LOCK_ERROR) != 0)
90 #ifndef VTK_JAVA_DEBUG
91 printf(
"Error locking surface\n");
93 awt.FreeDrawingSurface(ds);
98 dsi = ds->GetDrawingSurfaceInfo(ds);
101 printf(
"Error getting surface info\n");
103 awt.FreeDrawingSurface(ds);
108 #if defined(_WIN32) || defined(WIN32)
110 JAWT_Win32DrawingSurfaceInfo* dsi_win;
111 dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;
117 #elif defined(__APPLE__)
118 JAWT_MacOSXDrawingSurfaceInfo* dsi_mac;
119 dsi_mac = (JAWT_MacOSXDrawingSurfaceInfo*)dsi->platformInfo;
123 JAWT_X11DrawingSurfaceInfo* dsi_x11;
124 dsi_x11 = (JAWT_X11DrawingSurfaceInfo*)dsi->platformInfo;
131 ds->FreeDrawingSurfaceInfo(dsi);
137 awt.FreeDrawingSurface(ds);
139 #if defined(WIN32_JAWT_LOCK_HACK)
140 if (WJLH_init_check == 0)
144 WJLH_lock_map[hash] = 1;
149 extern "C" JNIEXPORT jint JNICALL
152 #if defined(WIN32_JAWT_LOCK_HACK)
154 WJLH_HASH_FUNC(env, canvas, hash);
155 WJLH_lock_map[hash] = 0;
159 JAWT_DrawingSurface* ds;
160 JAWT_DrawingSurfaceInfo* dsi;
168 awt.version = JAWT_VERSION_1_3;
169 if (JAWT_GetAWT(env, &awt) == JNI_FALSE)
171 #ifndef VTK_JAVA_DEBUG
172 printf(
"AWT Not found\n");
178 ds = awt.GetDrawingSurface(env, canvas);
181 #ifndef VTK_JAVA_DEBUG
182 printf(
"NULL drawing surface\n");
189 if((lock & JAWT_LOCK_ERROR) != 0)
191 #ifndef VTK_JAVA_DEBUG
192 printf(
"Error locking surface\n");
194 awt.FreeDrawingSurface(ds);
199 dsi = ds->GetDrawingSurfaceInfo(ds);
202 printf(
"Error getting surface info\n");
204 awt.FreeDrawingSurface(ds);
209 #if defined(_WIN32) || defined(WIN32)
211 JAWT_Win32DrawingSurfaceInfo* dsi_win;
212 dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;
218 #elif defined(__APPLE__)
219 JAWT_MacOSXDrawingSurfaceInfo* dsi_mac;
220 dsi_mac = (JAWT_MacOSXDrawingSurfaceInfo*)dsi->platformInfo;
224 JAWT_X11DrawingSurfaceInfo* dsi_x11;
225 dsi_x11 = (JAWT_X11DrawingSurfaceInfo*)dsi->platformInfo;
232 ds->FreeDrawingSurfaceInfo(dsi);
238 awt.FreeDrawingSurface(ds);
240 #if defined(WIN32_JAWT_LOCK_HACK)
241 if (WJLH_init_check == 0)
245 WJLH_lock_map[hash] = 1;
257 extern "C" JNIEXPORT jint JNICALL
262 JAWT_DrawingSurface* ds;
266 awt.version = JAWT_VERSION_1_3;
267 if (JAWT_GetAWT(env, &awt) == JNI_FALSE)
269 #ifndef VTK_JAVA_DEBUG
270 printf(
"AWT Not found\n");
276 ds = awt.GetDrawingSurface(env, canvas);
279 #ifndef VTK_JAVA_DEBUG
280 printf(
"NULL drawing surface\n");
285 #if defined(WIN32_JAWT_LOCK_HACK)
287 WJLH_HASH_FUNC(env, canvas, hash);
288 if (WJLH_init_check && WJLH_lock_map[hash] > WJLH_MAX_COUNT)
290 env->MonitorEnter(canvas);
297 if((lock & JAWT_LOCK_ERROR) != 0)
299 #ifndef VTK_JAVA_DEBUG
300 printf(
"Error locking surface\n");
302 awt.FreeDrawingSurface(ds);
305 #if defined(WIN32_JAWT_LOCK_HACK)
315 extern "C" JNIEXPORT jint JNICALL
320 JAWT_DrawingSurface* ds;
323 awt.version = JAWT_VERSION_1_3;
324 if (JAWT_GetAWT(env, &awt) == JNI_FALSE)
326 #ifndef VTK_JAVA_DEBUG
327 printf(
"AWT Not found\n");
333 ds = awt.GetDrawingSurface(env, canvas);
336 #ifndef VTK_JAVA_DEBUG
337 printf(
"NULL drawing surface\n");
342 #if defined(WIN32_JAWT_LOCK_HACK)
344 WJLH_HASH_FUNC(env, canvas, hash);
345 if (WJLH_init_check && WJLH_lock_map[hash] > WJLH_MAX_COUNT)
347 env->MonitorExit(canvas);
351 if (WJLH_init_check) WJLH_lock_map[hash]++;
355 #if defined(WIN32_JAWT_LOCK_HACK)
360 awt.FreeDrawingSurface(ds);
366 #if defined(__APPLE__)
367 #if defined(__GNUC__) && ((__GNUC__ > 4) || \
368 ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)))
369 #pragma GCC diagnostic pop
JNIEXPORT jint JNICALL Java_vtk_vtkPanel_RenderCreate(JNIEnv *env, jobject canvas, jobject id0)
virtual void Finalize()=0
JNIEXPORT jint JNICALL Java_vtk_vtkPanel_Lock(JNIEnv *env, jobject canvas)
virtual void SetWindowId(void *)=0
virtual void SetParentId(void *)=0
virtual void SetDisplayId(void *)=0
JNIEXPORT jint JNICALL Java_vtk_rendering_awt_vtkInternalAwtComponent_RenderCreate(JNIEnv *env, jobject canvas, jobject id0)
create a window for renderers to draw into
VTKWRAPPINGJAVA_EXPORT void * vtkJavaGetPointerFromObject(JNIEnv *env, jobject obj)
JNIEXPORT jint JNICALL Java_vtk_vtkPanel_UnLock(JNIEnv *env, jobject canvas)