diff options
author | Brian Paul <[email protected]> | 2011-05-19 19:40:32 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2011-05-19 21:18:33 -0600 |
commit | 38f89c7008b5ed9a70439f4e6590f00a4e220b10 (patch) | |
tree | f68ed44c12ca9f84267f869473711018587abf5e | |
parent | 1929d52fd907b4e42e31ad459dd50a1de53df26c (diff) |
st/glx: define/set new ST_CONTEXT_FLAG_bits
-rw-r--r-- | src/gallium/include/state_tracker/st_api.h | 24 | ||||
-rw-r--r-- | src/gallium/state_trackers/glx/xlib/xm_api.c | 12 |
2 files changed, 25 insertions, 11 deletions
diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h index d4973a10cc7..04fc7c6c5de 100644 --- a/src/gallium/include/state_tracker/st_api.h +++ b/src/gallium/include/state_tracker/st_api.h @@ -70,6 +70,15 @@ enum st_profile_type #define ST_PROFILE_OPENGL_ES2_MASK (1 << ST_PROFILE_OPENGL_ES2) /** + * New context flags for GL 3.0 and beyond. + */ +#define ST_CONTEXT_FLAG_CORE_PROFILE (1 << 0) +#define ST_CONTEXT_FLAG_COMPATIBLE_PROFILE (1 << 1) +#define ST_CONTEXT_FLAG_FORWARD_COMPATIBLE (1 << 2) +#define ST_CONTEXT_FLAG_DEBUG (1 << 3) +#define ST_CONTEXT_FLAG_ROBUST_ACCESS (1 << 4) + +/** * Used in st_context_iface->teximage. */ enum st_texture_type { @@ -207,21 +216,14 @@ struct st_context_attribs * The profile and minimal version to support. * * The valid profiles and versions are rendering API dependent. The latest - * version satisfying the request should be returned, unless - * forward_compatiible is true. + * version satisfying the request should be returned, unless the + * ST_CONTEXT_FLAG_FORWARD_COMPATIBLE bit is set. */ enum st_profile_type profile; int major, minor; - /** - * Enable debugging. - */ - boolean debug; - - /** - * Return the exact version and disallow the use of deprecated features. - */ - boolean forward_compatible; + /** Mask of ST_CONTEXT_FLAG_x bits */ + unsigned flags; /** * The visual of the framebuffers the context will be bound to. diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index dfdc723a705..ab4f6753e11 100644 --- a/src/gallium/state_trackers/glx/xlib/xm_api.c +++ b/src/gallium/state_trackers/glx/xlib/xm_api.c @@ -876,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); |