Fix context creation on linux when driver support gl 4.3
This commit is contained in:
parent
cb922ed4db
commit
bd4602fb5d
@ -499,6 +499,36 @@ void IrrPrintXGrabError(int grabResult, const c8 * grabCommand )
|
|||||||
static GLXContext getMeAGLContext(Display *display, GLXFBConfig glxFBConfig)
|
static GLXContext getMeAGLContext(Display *display, GLXFBConfig glxFBConfig)
|
||||||
{
|
{
|
||||||
GLXContext Context;
|
GLXContext Context;
|
||||||
|
int compat43ctxdebug[] =
|
||||||
|
{
|
||||||
|
GLX_CONTEXT_MAJOR_VERSION_ARB, 4,
|
||||||
|
GLX_CONTEXT_MINOR_VERSION_ARB, 3,
|
||||||
|
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB,
|
||||||
|
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_DEBUG_BIT_ARB,
|
||||||
|
None
|
||||||
|
};
|
||||||
|
int compat43ctx[] =
|
||||||
|
{
|
||||||
|
GLX_CONTEXT_MAJOR_VERSION_ARB, 4,
|
||||||
|
GLX_CONTEXT_MINOR_VERSION_ARB, 3,
|
||||||
|
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB,
|
||||||
|
None
|
||||||
|
};
|
||||||
|
int core43ctxdebug[] =
|
||||||
|
{
|
||||||
|
GLX_CONTEXT_MAJOR_VERSION_ARB, 4,
|
||||||
|
GLX_CONTEXT_MINOR_VERSION_ARB, 3,
|
||||||
|
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
|
||||||
|
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_DEBUG_BIT_ARB,
|
||||||
|
None
|
||||||
|
};
|
||||||
|
int core43ctx[] =
|
||||||
|
{
|
||||||
|
GLX_CONTEXT_MAJOR_VERSION_ARB, 4,
|
||||||
|
GLX_CONTEXT_MINOR_VERSION_ARB, 3,
|
||||||
|
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
|
||||||
|
None
|
||||||
|
};
|
||||||
int compat33ctxdebug[] =
|
int compat33ctxdebug[] =
|
||||||
{
|
{
|
||||||
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
|
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
|
||||||
@ -554,6 +584,18 @@ static GLXContext getMeAGLContext(Display *display, GLXFBConfig glxFBConfig)
|
|||||||
glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)
|
glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)
|
||||||
glXGetProcAddressARB( (const GLubyte *) "glXCreateContextAttribsARB" );
|
glXGetProcAddressARB( (const GLubyte *) "glXCreateContextAttribsARB" );
|
||||||
|
|
||||||
|
// create compat 4.3 context (for proprietary drivers)
|
||||||
|
Context = glXCreateContextAttribsARB(display, glxFBConfig, 0, True, GLContextDebugBit ? compat43ctxdebug : compat43ctx);
|
||||||
|
if (!XErrorSignaled)
|
||||||
|
return Context;
|
||||||
|
|
||||||
|
XErrorSignaled = false;
|
||||||
|
// create core 4.3 context (for mesa)
|
||||||
|
Context = glXCreateContextAttribsARB(display, glxFBConfig, 0, True, GLContextDebugBit ? core43ctxdebug : core43ctx);
|
||||||
|
if (!XErrorSignaled)
|
||||||
|
return Context;
|
||||||
|
|
||||||
|
XErrorSignaled = false;
|
||||||
// create compat 3.3 context (for proprietary drivers)
|
// create compat 3.3 context (for proprietary drivers)
|
||||||
Context = glXCreateContextAttribsARB(display, glxFBConfig, 0, True, GLContextDebugBit ? compat33ctxdebug : compat33ctx);
|
Context = glXCreateContextAttribsARB(display, glxFBConfig, 0, True, GLContextDebugBit ? compat33ctxdebug : compat33ctx);
|
||||||
if (!XErrorSignaled)
|
if (!XErrorSignaled)
|
||||||
|
Loading…
Reference in New Issue
Block a user