int ignore_x_errors(Display* display, XErrorEvent* event) { return 0; }
int ignore_x_io_errors(Display* display) { return 0; }
XSetErrorHandler(ignore_x_errors);
XSetIOErrorHandler(ignore_x_io_errors);
int context_attribs[] =
{
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
GLX_CONTEXT_MINOR_VERSION_ARB, 1,
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
0
};
GLXContext context = 0;
PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB =
(PFNGLXCREATECONTEXTATTRIBSARBPROC)glXGetProcAddressARB((const GLubyte*)"glXCreateContextAttribsARB");
if (glXCreateContextAttribsARB)
context = glXCreateContextAttribsARB(display, fbc[0], 0, 1, context_attribs);
if (!context)
context = glXCreateContext(display, vi, 0, 1);
XSetErrorHandler(0);
XSetIOErrorHandler(0);