Fetch swapInterval function pointer after binding a context
This fixes vsync on windows
This commit is contained in:
parent
21bb722c93
commit
8af3f751db
|
@ -110,7 +110,6 @@ bool cInterfaceGLX::Create(void *&window_handle)
|
|||
PanicAlert("Unable to create GLX context.");
|
||||
return false;
|
||||
}
|
||||
glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)GLInterface->GetFuncAddress("glXSwapIntervalSGI");
|
||||
|
||||
GLWin.x = _tx;
|
||||
GLWin.y = _ty;
|
||||
|
@ -131,7 +130,14 @@ bool cInterfaceGLX::MakeCurrent()
|
|||
XMoveResizeWindow(GLWin.evdpy, GLWin.win, GLWin.x, GLWin.y,
|
||||
GLWin.width, GLWin.height);
|
||||
#endif
|
||||
return glXMakeCurrent(GLWin.dpy, GLWin.win, GLWin.ctx);
|
||||
|
||||
bool success = glXMakeCurrent(GLWin.dpy, GLWin.win, GLWin.ctx);
|
||||
if (success)
|
||||
{
|
||||
// load this function based on the current bound context
|
||||
glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)GLInterface->GetFuncAddress("glXSwapIntervalSGI");
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
bool cInterfaceGLX::ClearCurrent()
|
||||
|
|
|
@ -128,9 +128,6 @@ bool cInterfaceWGL::Create(void *&window_handle)
|
|||
return false;
|
||||
}
|
||||
|
||||
// Grab the swap interval function pointer
|
||||
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)GLInterface->GetFuncAddress("wglSwapIntervalEXT");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -141,7 +138,13 @@ bool cInterfaceWGL::MakeCurrent()
|
|||
|
||||
bool cInterfaceWGL::ClearCurrent()
|
||||
{
|
||||
return wglMakeCurrent(hDC, NULL) ? true : false;
|
||||
bool success = wglMakeCurrent(hDC, NULL) ? true : false;
|
||||
if (success)
|
||||
{
|
||||
// Grab the swap interval function pointer
|
||||
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)GLInterface->GetFuncAddress("wglSwapIntervalEXT");
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
// Update window width, size and etc. Called from Render.cpp
|
||||
|
|
Loading…
Reference in New Issue