aboutsummaryrefslogtreecommitdiffstats
path: root/CNativeCode
diff options
context:
space:
mode:
Diffstat (limited to 'CNativeCode')
-rw-r--r--CNativeCode/OpenGL_X11.c11
-rw-r--r--CNativeCode/OpenGL_X11_jawt.c10
2 files changed, 13 insertions, 8 deletions
diff --git a/CNativeCode/OpenGL_X11.c b/CNativeCode/OpenGL_X11.c
index 6d0dec5..30276f7 100644
--- a/CNativeCode/OpenGL_X11.c
+++ b/CNativeCode/OpenGL_X11.c
@@ -514,7 +514,10 @@ Java_gl4java_GLContext_gljMakeCurrentNative( JNIEnv *env, jobject obj,
return JNI_FALSE;
}
- ctx = disp__glXGetCurrentContext();
+ /** JAU NVidia 2314 Bug workaround ..
+ ctx = disp__glXGetCurrentContext();
+ */
+
if(ctx==(GLXContext)((PointerHolder)glContext))
return JNI_TRUE;
@@ -638,7 +641,8 @@ Java_gl4java_GLContext_gljDestroyNative( JNIEnv *env, jobject obj,
else jownwind =(*env)->GetBooleanField(env, obj, fownwind);
}
- disp__glXWaitGL();
+ if(gc!=0)
+ disp__glXWaitGL();
if(ret==JNI_TRUE)
{
@@ -649,8 +653,7 @@ Java_gl4java_GLContext_gljDestroyNative( JNIEnv *env, jobject obj,
fprintf(stderr, "GL4Java: gljDestroy failed, GL context is 0\n");
fflush(stderr);
}
- }
- disp__glXMakeCurrent( disp, None, NULL );
+ } else disp__glXMakeCurrent( disp, None, NULL );
if(ret==JNI_TRUE)
{
diff --git a/CNativeCode/OpenGL_X11_jawt.c b/CNativeCode/OpenGL_X11_jawt.c
index 28f3f44..d7bd481 100644
--- a/CNativeCode/OpenGL_X11_jawt.c
+++ b/CNativeCode/OpenGL_X11_jawt.c
@@ -713,7 +713,9 @@ Java_gl4java_GLContext_gljMakeCurrentNative( JNIEnv *env, jobject obj,
return ret;
}
- ctx = disp__glXGetCurrentContext();
+ /** JAU NVidia 2314 Bug workaround ..
+ ctx = disp__glXGetCurrentContext();
+ */
if(ret==JNI_TRUE && ctx!=(GLXContext)((PointerHolder)glContext) )
{
@@ -866,7 +868,8 @@ Java_gl4java_GLContext_gljDestroyNative( JNIEnv *env, jobject obj,
win = GET_USED_WINDOW(pData);
disp = GET_USED_DISPLAY(pData);
- disp__glXWaitGL();
+ if(gc!=0)
+ disp__glXWaitGL();
if(ret==JNI_TRUE)
{
@@ -877,8 +880,7 @@ Java_gl4java_GLContext_gljDestroyNative( JNIEnv *env, jobject obj,
fprintf(stderr, "GL4Java: gljDestroy failed, GL context is 0\n");
fflush(stderr);
}
- }
- disp__glXMakeCurrent( disp, None, NULL );
+ } else disp__glXMakeCurrent( disp, None, NULL );
if(ret==JNI_TRUE)
{