X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fstate_trackers%2Fglx%2Fxlib%2Fxm_api.c;h=ab4f6753e116b47cf5ded90f6284131768583000;hb=9f2f5b3d7fd70663b98da5d302fcdfd5bc93db05;hp=3b35cbc890c9bef515d3541bd81b7805038fdc43;hpb=7e02303497237cde958c28608477d0c355a8038b;p=mesa.git diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index 3b35cbc890c..ab4f6753e11 100644 --- a/src/gallium/state_trackers/glx/xlib/xm_api.c +++ b/src/gallium/state_trackers/glx/xlib/xm_api.c @@ -853,7 +853,9 @@ xmesa_init( Display *display ) * \return an XMesaContext or NULL if error. */ PUBLIC -XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list ) +XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list, + GLuint major, GLuint minor, + GLuint profileMask, GLuint contextFlags) { XMesaDisplay xmdpy = xmesa_init_display(v->display); struct st_context_attribs attribs; @@ -874,6 +876,18 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list ) memset(&attribs, 0, sizeof(attribs)); attribs.profile = ST_PROFILE_DEFAULT; attribs.visual = v->stvis; + attribs.major = major; + attribs.minor = minor; + if (contextFlags & GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB) + attribs.flags |= ST_CONTEXT_FLAG_FORWARD_COMPATIBLE; + if (contextFlags & GLX_CONTEXT_DEBUG_BIT_ARB) + attribs.flags |= ST_CONTEXT_FLAG_DEBUG; + if (contextFlags & GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB) + attribs.flags |= ST_CONTEXT_FLAG_ROBUST_ACCESS; + if (profileMask & GLX_CONTEXT_CORE_PROFILE_BIT_ARB) + attribs.flags |= ST_CONTEXT_FLAG_CORE_PROFILE; + if (profileMask & GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB) + attribs.flags |= ST_CONTEXT_FLAG_COMPATIBLE_PROFILE; c->st = stapi->create_context(stapi, xmdpy->smapi, &attribs, (share_list) ? share_list->st : NULL);