Vertical sync on OS X.

Fixes issue 3996.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6946 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Soren Jorvang 2011-01-28 09:39:28 +00:00
parent f281eff9ba
commit 976420b9d5
3 changed files with 15 additions and 5 deletions

View File

@ -324,8 +324,9 @@ bool OpenGL_Create(SVideoInitialize &_VideoInitialize, int _iwidth, int _iheight
GLWin.panel = (wxPanel *)g_VideoInitialize.pWindowHandle;
GLWin.glCanvas = new wxGLCanvas(GLWin.panel, wxID_ANY, NULL,
wxPoint(0, 0), wxSize(_twidth, _theight));
GLWin.glCtxt = new wxGLContext(GLWin.glCanvas);
GLWin.glCanvas->Show(true);
if (GLWin.glCtxt == NULL) // XXX dirty hack
GLWin.glCtxt = new wxGLContext(GLWin.glCanvas);
#elif defined(__APPLE__)
NSOpenGLPixelFormatAttribute attr[2] = { NSOpenGLPFADoubleBuffer, 0 };
@ -570,7 +571,8 @@ void OpenGL_Shutdown()
{
#if defined(USE_WX) && USE_WX
GLWin.glCanvas->Hide();
delete GLWin.glCtxt;
// XXX GLWin.glCanvas->Destroy();
// XXX delete GLWin.glCtxt;
#elif defined(__APPLE__)
[GLWin.cocoaWin close];
[GLWin.cocoaCtx clearDrawable];

View File

@ -310,8 +310,14 @@ Renderer::Renderer()
s_backbuffer_height = (int)OpenGL_GetBackbufferHeight();
// Handle VSync on/off
#ifdef __APPLE__
int swapInterval = g_ActiveConfig.bVSync ? 1 : 0;
#if defined USE_WX && USE_WX
// TODO: FILL IN
NSOpenGLContext *ctx = GLWin.glCtxt->GetWXGLContext();
#else
NSOpenGLContext *ctx = GLWin.cocoaCtx;
#endif
[ctx setValues: &swapInterval forParameter: NSOpenGLCPSwapInterval];
#elif defined _WIN32
if (WGLEW_EXT_swap_control)
wglSwapIntervalEXT(g_ActiveConfig.bVSync ? 1 : 0);

View File

@ -121,8 +121,9 @@ bool OpenGL_Create(SVideoInitialize &_VideoInitialize, int _twidth, int _theight
GLWin.panel = (wxPanel *)g_VideoInitialize.pWindowHandle;
GLWin.glCanvas = new wxGLCanvas(GLWin.panel, wxID_ANY, NULL,
wxPoint(0, 0), wxSize(_twidth, _theight));
GLWin.glCtxt = new wxGLContext(GLWin.glCanvas);
GLWin.glCanvas->Show(true);
if (GLWin.glCtxt == NULL) // XXX dirty hack
GLWin.glCtxt = new wxGLContext(GLWin.glCanvas);
#elif defined(_WIN32)
// Create rendering window in Windows
@ -384,7 +385,8 @@ void OpenGL_Shutdown()
{
#if defined(USE_WX) && USE_WX
GLWin.glCanvas->Hide();
delete GLWin.glCtxt;
// XXX GLWin.glCanvas->Destroy();
// XXX delete GLWin.glCtxt;
#elif defined(_WIN32)
if (hRC) // Do We Have A Rendering Context?
{