diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2012-01-02 17:44:31 -0800 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-01-03 10:24:10 +0000 |
commit | f433fe015e903424d25673ebfe5dcb115381d753 (patch) | |
tree | a9e4ea319df624d074765348625ca5d8d79684a1 /src/glx/create_context.c | |
parent | b518dfb513742984f27577d25566f93afd86d4fc (diff) |
glx: Hack around versions of XCB that lack GLX_ARB_create_context support
A lot of tests in 'make check' will fail under these circumstances,
but at least the build should work.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/glx/create_context.c')
-rw-r--r-- | src/glx/create_context.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/glx/create_context.c b/src/glx/create_context.c index 41f08057a8..11f9340a2e 100644 --- a/src/glx/create_context.c +++ b/src/glx/create_context.c @@ -94,6 +94,7 @@ glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, * the protocol error and handle it. Part of handling the error is freeing * the possibly non-NULL value returned by this function. */ +#ifdef XCB_GLX_CREATE_CONTEXT_ATTRIBS_ARB cookie = xcb_glx_create_context_attribs_arb_checked(c, gc->xid, @@ -105,6 +106,19 @@ glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, (const uint32_t *) attrib_list); err = xcb_request_check(c, cookie); +#else + /* This is a hugely ugly hack to make things compile on systems that lack + * the proper XCB version. + */ + memset(&cookie, 0, sizeof(cookie)); + + err = calloc(1, sizeof(*err)); + err->error_code = BadRequest; + err->sequence = dpy->request; + err->resource_id = gc->xid; + err->minor_code = gc->majorOpcode; + err->major_code = 34; +#endif if (err != NULL) { gc->vtable->destroy(gc); gc = NULL; |