Kaydet (Commit) 93185f72 authored tarafından Michael Meeks's avatar Michael Meeks

Get Double-buffered context creation working on linux.

Change-Id: I3db1d6792fcd51577f047b82029124ec825ea319
üst ef414f70
...@@ -706,9 +706,7 @@ bool GLWindow::HasGLXExtension( const char* name ) const ...@@ -706,9 +706,7 @@ bool GLWindow::HasGLXExtension( const char* name ) const
bool OpenGLContext::ImplInit() bool OpenGLContext::ImplInit()
{ {
if (!m_aGLWin.dpy) if (!m_aGLWin.dpy)
{
return false; return false;
}
OpenGLZone aZone; OpenGLZone aZone;
...@@ -722,11 +720,10 @@ bool OpenGLContext::ImplInit() ...@@ -722,11 +720,10 @@ bool OpenGLContext::ImplInit()
if (!g_vShareList.empty()) if (!g_vShareList.empty())
pSharedCtx = g_vShareList.front(); pSharedCtx = g_vShareList.front();
#ifdef DBG_UTIL
if (glXCreateContextAttribsARB && !mbRequestLegacyContext) if (glXCreateContextAttribsARB && !mbRequestLegacyContext)
{ {
int best_fbc = -1; int best_fbc = -1;
GLXFBConfig* pFBC = getFBConfig(m_aGLWin.dpy, m_aGLWin.win, best_fbc, mbUseDoubleBufferedRendering, true); GLXFBConfig* pFBC = getFBConfig(m_aGLWin.dpy, m_aGLWin.win, best_fbc, mbUseDoubleBufferedRendering, false);
if (!pFBC) if (!pFBC)
return false; return false;
...@@ -734,24 +731,28 @@ bool OpenGLContext::ImplInit() ...@@ -734,24 +731,28 @@ bool OpenGLContext::ImplInit()
{ {
int pContextAttribs[] = int pContextAttribs[] =
{ {
#if 0 // defined(DBG_UTIL)
GLX_CONTEXT_MAJOR_VERSION_ARB, 3, GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
GLX_CONTEXT_MINOR_VERSION_ARB, 2, GLX_CONTEXT_MINOR_VERSION_ARB, 2,
#endif
None None
}; };
m_aGLWin.ctx = glXCreateContextAttribsARB(m_aGLWin.dpy, pFBC[best_fbc], pSharedCtx, /* direct, not via X */ GL_TRUE, pContextAttribs); m_aGLWin.ctx = glXCreateContextAttribsARB(m_aGLWin.dpy, pFBC[best_fbc], pSharedCtx, /* direct, not via X */ GL_TRUE, pContextAttribs);
SAL_INFO_IF(m_aGLWin.ctx, "vcl.opengl", "created a 3.2 core context"); SAL_INFO_IF(m_aGLWin.ctx, "vcl.opengl", "created a 3.2 core context");
} }
else else
SAL_WARN("vcl.opengl", "unable to find correct FBC"); SAL_WARN("vcl.opengl", "unable to find correct FBC");
} }
#endif
if (!m_aGLWin.ctx) if (!m_aGLWin.ctx)
{ {
if (!m_aGLWin.vi) if (!m_aGLWin.vi)
return false; return false;
SAL_WARN("vcl.opengl", "attempting to create a non-double-buffered "
"visual matching the context");
m_aGLWin.ctx = glXCreateContext(m_aGLWin.dpy, m_aGLWin.ctx = glXCreateContext(m_aGLWin.dpy,
m_aGLWin.vi, m_aGLWin.vi,
pSharedCtx, pSharedCtx,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment