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); } 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)