From 58932fcdbf115e2165a44c34729a08e5268d3245 Mon Sep 17 00:00:00 2001 From: kappaOne Date: Fri, 15 Mar 2013 01:17:24 +0000 Subject: [PATCH] tweak how glViewport is set when using Display.setParent/AWTGLCanvas --- .../macosx/org_lwjgl_opengl_MacOSXContextImplementation.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m b/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m index 2b2f02b7..c1c0a9eb 100644 --- a/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m +++ b/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m @@ -157,6 +157,11 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_MacOSXContextImplementation_setView MacOSXPeerInfo *peer_info = (MacOSXPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle); if (peer_info->isWindowed) { + if (peer_info->isCALayer && [context_info->context view] != peer_info->window_info->view) { + // mark glViewport to be set manually when setting a new context view + peer_info->glLayer->setViewport = YES; + } + [context_info->context setView: peer_info->window_info->view]; } else { @@ -164,7 +169,6 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_MacOSXContextImplementation_setView } if (peer_info->isCALayer) { - peer_info->glLayer->setViewport = YES; // if using a CALayer, attach it to AWT Canvas and create a shared opengl context with current context [peer_info->glLayer performSelectorOnMainThread:@selector(attachLayer) withObject:nil waitUntilDone:NO]; }