mirror of
https://github.com/libretro/pcsx2.git
synced 2024-12-24 10:45:06 +00:00
gsdx linux: add vsync support for free driver
This commit is contained in:
parent
2b2412ca20
commit
4768f912b8
@ -24,7 +24,7 @@
|
||||
|
||||
#if defined(__unix__)
|
||||
GSWndOGL::GSWndOGL()
|
||||
: m_NativeWindow(0), m_NativeDisplay(NULL), m_context(0), m_swapinterval(NULL)
|
||||
: m_NativeWindow(0), m_NativeDisplay(NULL), m_context(0), m_swapinterval_ext(NULL), m_swapinterval_mesa(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
@ -147,7 +147,8 @@ bool GSWndOGL::Attach(void* handle, bool managed)
|
||||
|
||||
CheckContext();
|
||||
|
||||
m_swapinterval = (PFNGLXSWAPINTERVALEXTPROC)glXGetProcAddress((const GLubyte*) "glXSwapIntervalEXT");
|
||||
m_swapinterval_ext = (PFNGLXSWAPINTERVALEXTPROC) glXGetProcAddress((const GLubyte*) "glXSwapIntervalEXT");
|
||||
m_swapinterval_mesa = (PFNGLXSWAPINTERVALMESAPROC)glXGetProcAddress((const GLubyte*) "glXSwapIntervalMESA");
|
||||
|
||||
PopulateGlFunction();
|
||||
|
||||
@ -194,7 +195,8 @@ bool GSWndOGL::Create(const string& title, int w, int h)
|
||||
|
||||
CheckContext();
|
||||
|
||||
m_swapinterval = (PFNGLXSWAPINTERVALEXTPROC)glXGetProcAddress((const GLubyte*) "glXSwapIntervalEXT");
|
||||
m_swapinterval_ext = (PFNGLXSWAPINTERVALEXTPROC) glXGetProcAddress((const GLubyte*) "glXSwapIntervalEXT");
|
||||
m_swapinterval_mesa = (PFNGLXSWAPINTERVALMESAPROC)glXGetProcAddress((const GLubyte*) "glXSwapIntervalMESA");
|
||||
|
||||
PopulateGlFunction();
|
||||
|
||||
@ -262,7 +264,9 @@ void GSWndOGL::SetVSync(bool enable)
|
||||
// m_swapinterval uses an integer as parameter
|
||||
// 0 -> disable vsync
|
||||
// n -> wait n frame
|
||||
if (m_swapinterval) m_swapinterval(m_NativeDisplay, m_NativeWindow, (int)enable);
|
||||
if (m_swapinterval_ext) m_swapinterval_ext(m_NativeDisplay, m_NativeWindow, (int)enable);
|
||||
else if (m_swapinterval_mesa) m_swapinterval_mesa((int)enable);
|
||||
else fprintf(stderr, "Failed to set VSync\n");
|
||||
}
|
||||
|
||||
void GSWndOGL::Flip()
|
||||
|
@ -31,7 +31,8 @@ class GSWndOGL final : public GSWndGL
|
||||
Display* m_NativeDisplay;
|
||||
GLXContext m_context;
|
||||
|
||||
PFNGLXSWAPINTERVALEXTPROC m_swapinterval;
|
||||
PFNGLXSWAPINTERVALEXTPROC m_swapinterval_ext;
|
||||
PFNGLXSWAPINTERVALMESAPROC m_swapinterval_mesa;
|
||||
|
||||
void CreateContext(int major, int minor);
|
||||
void CheckContext();
|
||||
|
Loading…
Reference in New Issue
Block a user