Fix memory leak, set OGL parameters.

This commit is contained in:
Steve Checkoway
2006-01-14 22:56:23 +00:00
parent b7e7d31e1b
commit ca85424ec5
@@ -108,6 +108,14 @@ void *LowLevelWindow_Cocoa::GetProcAddress( CString s )
return symbol ? NSAddressOfSymbol( symbol ) : NULL; return symbol ? NSAddressOfSymbol( symbol ) : NULL;
} }
static void SetOGLParameters( NSOpenGLContext *context )
{
long val = 64;
[context setValues:&val forParameter:NSOpenGLContextParameter(280)];
[context setValues:&val forParameter:NSOpenGLContextParameter(284)];
}
CString LowLevelWindow_Cocoa::TryVideoMode( const VideoModeParams& p, bool& newDeviceOut ) CString LowLevelWindow_Cocoa::TryVideoMode( const VideoModeParams& p, bool& newDeviceOut )
{ {
#define X(x) p.x == mCurrentParams.x #define X(x) p.x == mCurrentParams.x
@@ -150,9 +158,11 @@ CString LowLevelWindow_Cocoa::TryVideoMode( const VideoModeParams& p, bool& newD
[pixelFormat release]; [pixelFormat release];
if( nextView == nil ) if( nextView == nil )
return "Failed to create windowed OGL context."; return "Failed to create windowed OGL context.";
SetOGLParameters( [mView openGLContext] );
newDeviceOut = true; newDeviceOut = true;
mView = nextView; mView = nextView;
[mWindow setContentView:mView]; [mWindow setContentView:mView];
[mView release];
// We need to recreate the full screen context as well. // We need to recreate the full screen context as well.
[mFullScreenContext clearDrawable]; [mFullScreenContext clearDrawable];
@@ -219,6 +229,7 @@ CString LowLevelWindow_Cocoa::TryVideoMode( const VideoModeParams& p, bool& newD
return "Failed to create full screen openGL context."; return "Failed to create full screen openGL context.";
} }
} }
SetOGLParameters( mFullScreenContext );
} }
[mFullScreenContext setFullScreen]; [mFullScreenContext setFullScreen];
[mFullScreenContext update]; [mFullScreenContext update];