summaryrefslogtreecommitdiffstats
path: root/src/jogl/native/macosx/MacOSXWindowSystemInterface.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/jogl/native/macosx/MacOSXWindowSystemInterface.m')
-rw-r--r--src/jogl/native/macosx/MacOSXWindowSystemInterface.m23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/jogl/native/macosx/MacOSXWindowSystemInterface.m b/src/jogl/native/macosx/MacOSXWindowSystemInterface.m
index 86d875502..aab70791c 100644
--- a/src/jogl/native/macosx/MacOSXWindowSystemInterface.m
+++ b/src/jogl/native/macosx/MacOSXWindowSystemInterface.m
@@ -590,7 +590,8 @@ Bool deleteContext(void* nsJContext) {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
[nsContext clearDrawable];
- [nsContext release]; // freezes for a few seconds if ctx is shared
+ // [nsContext release]; // FIXME: JAU: freezes for a few seconds if ctx is shared
+ // [nsContext dealloc];
[pool release];
return true;
}
@@ -624,15 +625,25 @@ void copyContext(void* destContext, void* srcContext, int mask) {
[dst copyAttributesFromContext: src withMask: mask];
}
-void* updateContextRegister(void* nsJContext, void* view) {
+void* updateContextRegister(void* nsJContext, void* nsJView) {
NSOpenGLContext *nsContext = (NSOpenGLContext*)nsJContext;
- NSView *nsView = (NSView*)view;
+ NSView *nsView = (NSView*)nsJView;
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
- ContextUpdater *contextUpdater = [[ContextUpdater alloc] init];
- [contextUpdater registerFor:nsContext with:nsView];
+ ContextUpdater *contextUpdater = [[ContextUpdater alloc] initWithContext: nsContext view: nsView];
[pool release];
- return NULL;
+ return contextUpdater;
+}
+
+Bool updateContextNeedsUpdate(void* updater) {
+ ContextUpdater *contextUpdater = (ContextUpdater *)updater;
+ BOOL res;
+
+ NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
+ res = [contextUpdater needsUpdate];
+ [pool release];
+
+ return ( res == TRUE ) ? true : false;
}
void updateContextUnregister(void* updater) {