| Name |
| |
| ARB_create_context |
| ARB_create_context_profile |
| |
| Name Strings |
| |
| GLX_ARB_create_context |
| GLX_ARB_create_context_profile |
| |
| Contact |
| |
| Jon Leech (jon 'at' alumni.caltech.edu) |
| |
| Notice |
| |
| Copyright (c) 2009-2013 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Specification Update Policy |
| |
| Khronos-approved extension specifications are updated in response to |
| issues and bugs prioritized by the Khronos OpenGL Working Group. For |
| extensions which have been promoted to a core Specification, fixes will |
| first appear in the latest version of that core Specification, and will |
| eventually be backported to the extension document. This policy is |
| described in more detail at |
| https://www.khronos.org/registry/OpenGL/docs/update_policy.php |
| |
| IP Status |
| |
| No known IP claims. |
| |
| Status |
| |
| Complete. Approved by the ARB on July 28, 2009. |
| Approved by the Khronos Board of Promoters on August 28, 2009. |
| Version 8 update approved by the ARB on September 24, 2009. |
| |
| Version |
| |
| Version 10, 2012/03/28 |
| |
| Number |
| |
| ARB Extension #56 (GLX_ARB_create_context) |
| ARB Extension #75 (GLX_ARB_create_context_profile) |
| |
| Dependencies |
| |
| GLX 1.4 is required. |
| |
| Some of the capabilities of these extensions are only available with |
| contexts supporting OpenGL 3.0 or later. |
| |
| The presence of an OpenGL 3.2 or later implementation determines |
| whether or not GLX_ARB_create_context_profile is required. |
| |
| Overview |
| |
| With the advent of new versions of OpenGL which deprecate features |
| and/or break backward compatibility with older versions, there is a |
| need and desire to indicate at context creation which interface will |
| be used. These extensions add a new context creation routine with |
| attributes specifying the GL version and context properties |
| requested for the context, and additionally add an attribute |
| specifying the GL profile requested for a context of OpenGL 3.2 or |
| later. It also allows making an OpenGL 3.0 or later context current |
| without providing a default framebuffer. |
| |
| New Procedures and Functions |
| |
| GLXContext glXCreateContextAttribsARB( |
| Display *dpy, GLXFBConfig config, |
| GLXContext share_context, Bool direct, |
| const int *attrib_list); |
| |
| New Tokens |
| |
| Accepted as an attribute name in <*attrib_list>: |
| |
| GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 |
| GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 |
| GLX_CONTEXT_FLAGS_ARB 0x2094 |
| GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 |
| |
| Accepted as bits in the attribute value for GLX_CONTEXT_FLAGS_ARB in |
| <*attrib_list>: |
| |
| GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 |
| GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 |
| |
| Accepted as bits in the attribute value for |
| GLX_CONTEXT_PROFILE_MASK_ARB in <*attrib_list>: |
| |
| GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 |
| GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 |
| |
| Additions to the OpenGL / WGL Specifications |
| |
| None. This specification is written for GLX. |
| |
| Additions to the GLX 1.4 Specification |
| |
| Replace the initial six paragraphs of section 3.3.7 "Rendering |
| Contexts", describing glXCreateNewContext, with: |
| |
| "To create an OpenGL rendering context, call |
| |
| GLXContext glXCreateContextAttribsARB( |
| Display *dpy, |
| GLXFBConfig config, |
| GLXContext share_context, |
| Bool direct, |
| const int *attrib_list); |
| |
| If glXCreateContextAttribsARB succeeds, it initializes the context |
| to the initial state defined by the OpenGL specification, and |
| returns a handle to it. This handle can be used to render to any GLX |
| surface (window, pixmap, or pbuffer) compatible with <config>, |
| subject to constraints imposed by the OpenGL API version of the |
| context. |
| |
| If <share_context> is not NULL, then all shareable data (excluding |
| OpenGL texture objects named 0) will be shared by <share_context>, |
| all other contexts <share_context> already shares with, and the |
| newly created context. An arbitrary number of GLXContexts can share |
| data in this fashion. The server context state for all sharing |
| contexts must exist in a single address space. |
| |
| Direct rendering is requested if <direct> is True, and indirect |
| rendering if <direct> is False. If <direct> is True, the |
| implementation may nonetheless create an indirect rendering context |
| if any of the following conditions hold: |
| |
| * The implementation does not support direct rendering. |
| * <display> is not a local X server. |
| * Implementation-dependent limits on the number of direct |
| rendering contexts that can be supported simultaneously are |
| exceeded. |
| |
| Use glXIsDirect (see below) to determine whether or not a request |
| for a direct rendering context succeeded. |
| |
| <attrib_list> specifies a list of attributes for the context. The |
| list consists of a sequence of <name,value> pairs terminated by the |
| value None (0). If an attribute is not specified in <attrib_list>, |
| then the default value specified below is used instead. |
| |
| <attrib_list> may be NULL or empty (first attribute is None), in |
| which case all attributes assume their default values as described |
| below. |
| |
| The attribute names GLX_CONTEXT_MAJOR_VERSION_ARB and |
| GLX_CONTEXT_MINOR_VERSION_ARB request an OpenGL context supporting |
| the specified version of the API. If successful, the context |
| returned must be backwards compatible with the context requested. |
| Backwards compatibility is determined as follows: |
| |
| If a version less than or equal to 3.0 is requested, the context |
| returned may implement any of the following versions: |
| |
| * Any version no less than that requested and no greater than 3.0. |
| * Version 3.1, if the GL_ARB_compatibility extension is also |
| implemented. |
| * The compatibility profile of version 3.2 or greater. |
| |
| If version 3.1 is requested, the context returned may implement |
| any of the following versions: |
| |
| * Version 3.1. The GL_ARB_compatibility extension may or may not |
| be implemented, as determined by the implementation. |
| * The core profile of version 3.2 or greater. |
| |
| If version 3.2 or greater is requested, the context returned may |
| implement any of the following versions: |
| |
| * The requested profile of the requested version. |
| * The requested profile of any later version, so long as no |
| features have been removed from that later version and profile. |
| |
| Querying the GL_VERSION string with glGetString (or the |
| GL_MAJOR_VERSION and GL_MINOR_VERSION values with glGetIntegerv, in |
| a 3.0 or later context) will return the actual version supported by |
| a context. |
| |
| The default values for GLX_CONTEXT_MAJOR_VERSION_ARB and |
| GLX_CONTEXT_MINOR_VERSION_ARB are 1 and 0 respectively. In this |
| case, implementations will typically return the most recent version |
| of OpenGL they support which is backwards compatible with OpenGL 1.0 |
| (e.g. 3.0, 3.1 + GL_ARB_compatibility, or 3.2 compatibility profile) |
| |
| The attribute name GLX_CONTEXT_PROFILE_MASK_ARB requests an OpenGL |
| context supporting a specific <profile> of the API. If the |
| GLX_CONTEXT_CORE_PROFILE_BIT_ARB bit is set in the attribute value, |
| then a context implementing the <core> profile of OpenGL is |
| returned. If the GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB bit is |
| set, then a context implementing the <compatibility> profile is |
| returned. If the requested OpenGL version is less than 3.2, |
| GLX_CONTEXT_PROFILE_MASK_ARB is ignored and the functionality of the |
| context is determined solely by the requested version. |
| |
| Querying the value of GL_CONTEXT_PROFILE_MASK with glGetIntegerv |
| will return the profile mask used to create the context. This query |
| is only supported in an OpenGL 3.2 or later context. |
| |
| The default value for GLX_CONTEXT_PROFILE_MASK_ARB is |
| GLX_CONTEXT_CORE_PROFILE_BIT_ARB. All OpenGL 3.2 implementations are |
| required to implement the core profile, but implementation of the |
| compatibility profile is optional. |
| |
| If the core profile is requested, then the context returned cannot |
| implement functionality defined only by the compatibility profile. |
| |
| The attribute name GLX_CONTEXT_FLAGS_ARB specifies a set of flag |
| bits affecting the rendering context. |
| |
| If the GLX_CONTEXT_DEBUG_BIT_ARB flag bit is set in |
| GLX_CONTEXT_FLAGS_ARB, then a <debug context> will be created. Debug |
| contexts are intended for use during application development, and |
| provide additional runtime checking, validation, and logging |
| functionality while possibly incurring performance penalties. The |
| additional functionality provided by debug contexts may vary |
| according to the implementation(fn). In some cases a debug context |
| may be identical to a non-debug context. |
| [fn: The ARB Ecosystem TSG is still defining the expected and |
| required features of debug contexts.] |
| |
| If the GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB is set in |
| GLX_CONTEXT_FLAGS_ARB, then a <forward-compatible> context will be |
| created. Forward-compatible contexts are defined only for OpenGL |
| versions 3.0 and later. They must not support functionality marked |
| as <deprecated> by that version of the API, while a |
| non-forward-compatible context must support all functionality in |
| that version, deprecated or not. |
| |
| The default value of GLX_CONTEXT_FLAGS_ARB is 0. |
| |
| The attribute name GLX_RENDER_TYPE specifies the type of rendering |
| to be supported by the context. RGBA rendering is supported if the |
| attribute value is GLX_RGBA_TYPE, and color index rendering is |
| supported if the attribute value is GLX_COLOR_INDEX_TYPE. The |
| default value of GLX_RENDER_TYPE is GLX_RGBA_TYPE. OpenGL contexts |
| supporting version 3.0 or later of the API do not support color |
| index rendering, even if a color index <config> is available. |
| |
| On failure glXCreateContextAttribsARB returns NULL and generates an |
| X error with extended error information. Conditions that cause |
| failure include: |
| |
| * If the server context state for <share_context> exists in an |
| address space that cannot be shared with the newly created |
| context, if <share_context> was created on a different screen |
| than the one referenced by <config>, or if the contexts are |
| otherwise incompatible (for example, one context being |
| associated with a hardware device driver and the other with a |
| software renderer), BadMatch is generated. |
| |
| * If the server does not have enough resources to allocate the new |
| context, BadAlloc is generated. |
| |
| * If <share_context> is neither zero nor a valid GLX rendering |
| context, GLXBadContext is generated. |
| |
| * If <config> is not a valid GLXFBConfig, GLXBadFBConfig is |
| generated. |
| |
| * If attribute GLX_RENDER_TYPE does not describe a valid rendering |
| type, BadValue is generated. |
| |
| * If attributes GLX_CONTEXT_MAJOR_VERSION_ARB and |
| GLX_CONTEXT_MINOR_VERSION_ARB, when considered together with |
| attributes GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB and |
| GLX_RENDER_TYPE, specify an OpenGL version and feature set that |
| are not defined, BadMatch is generated. |
| |
| The defined versions of OpenGL at the time of writing are OpenGL |
| 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 2.0, 2.1, 3.0, 3.1, and 3.2. |
| Feature deprecation was introduced with OpenGL 3.0, so |
| forward-compatible contexts may only be requested for OpenGL 3.0 |
| and above. Thus, examples of invalid combinations of attributes |
| include: |
| |
| - Major version < 1 or > 3 |
| - Major version == 1 and minor version < 0 or > 5 |
| - Major version == 2 and minor version < 0 or > 1 |
| - Major version == 3 and minor version > 2 |
| - Forward-compatible flag set and major version < 3 |
| - Color index rendering and major version >= 3 |
| |
| Because the purpose of forward-compatible contexts is to allow |
| application development on a specific OpenGL version with the |
| knowledge that the app will run on a future version, context |
| creation will fail if GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB is |
| set and the context version returned cannot implement exactly |
| the requested version. |
| |
| * If attribute GLX_CONTEXT_PROFILE_MASK_ARB has no bits set; has |
| any bits set other than GLX_CONTEXT_CORE_PROFILE_BIT_ARB and |
| GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; has more than one of |
| these bits set; or if the implementation does not support the |
| requested profile, then GLXBadProfileARB is generated. |
| |
| * If <config> does not support compatible OpenGL contexts |
| providing the requested API major and minor version, |
| forward-compatible flag, and debug context flag, GLXBadFBConfig |
| is generated. |
| |
| * If an attribute or attribute value in <attrib_list> |
| is not recognized (including unrecognized bits in bitmask |
| attributes), BadValue is generated. |
| |
| 3.3.7.1 Legacy Context Creation |
| ------------------------------- |
| |
| To create an OpenGL rendering context of version 2.1 or below, call |
| |
| GLXContext glXCreateNewContext( |
| Display *dpy, |
| GLXFBConfig config, |
| int render_type, |
| GLXContext share_list, |
| Bool direct); |
| |
| Calling glXCreateNewContext is equivalent to the command sequence |
| |
| int attrib_list[] = { |
| GLX_RENDER_TYPE, render_type, |
| None |
| }; |
| |
| glXCreateContextAttribs(dpy, config, share_list, direct, attrib_list); |
| |
| The legacy context creation routines can only return OpenGL 3.1 |
| contexts if the GL_ARB_compatibility extension is supported, and can |
| only return OpenGL 3.2 or greater contexts implementing the |
| compatibility profile. This ensures compatibility for existing |
| applications. However, 3.0-aware applications are encouraged to use |
| wglCreateContextAttribsARB instead of the legacy routines. |
| |
| To determine if an OpenGL rendering context is direct, call..." |
| |
| |
| In the description of glXMakeContextCurrent, replace the text |
| |
| "If either <draw> or <read> are not a valid GLX drawable, a |
| GLXBadDrawable error is generated." |
| |
| with |
| |
| "If either <draw> or <read> are not a valid GLX drawable, a |
| GLXBadDrawable error is generated, unless <draw> and <read> are both |
| None and the OpenGL version supported by <ctx> is 3.0 or greater. In |
| this case the context is made current without a default framebuffer, |
| as defined in chapter 4 of the OpenGL 3.0 Specification." |
| |
| Replace the text |
| |
| "To release the current context without assigning a new one, set |
| <ctx> to NULL and set <draw> and <read> to None. If <ctx> is NULL |
| and <draw> and <read> are not None, or if <draw> or <read> are set |
| to None and <ctx> is not NULL, then a BadMatch error will be |
| generated." |
| |
| with |
| |
| "To release the current context without assigning a new one, set |
| <ctx> to NULL and set <draw> and <read> to None. A BadMatch |
| error will be generated under any of the following conditions: |
| |
| * <ctx> is NULL, and either or both of <draw> and <read> are not |
| None. |
| * <ctx> is not NULL, and exactly one of <draw> or <read> is None. |
| * <ctx> is not NULL, both <draw> or <read> are None, and the |
| OpenGL version supported by <ctx> is less than 3.0." |
| |
| After the sentence |
| |
| "The first time <ctx> is made current, the viewport and scissor |
| dimensions are set to the size of the draw drawable (as though |
| glViewport(0,0,w,h) and glScissor(0,0,w,h) were called, where <w> |
| and <h> are the width and height of the drawable, respectively)." |
| |
| insert |
| |
| "If the first time <ctx> is made current, it is without a default |
| framebuffer (e.g. both <draw> and <read> are None), then the |
| viewport and scissor regions are set as though glViewport(0,0,0,0) |
| and glScissor(0,0,0,0) were called." |
| |
| GLX Errors |
| |
| GLXBadProfileARB |
| |
| The requested context profile is invalid or not supported. |
| |
| BEC is the base error code for the extension, as returned by |
| XQueryExtension. |
| |
| Encoding: |
| |
| 1 0 Error |
| 1 BEC + 13 Error code (GLXBadProfileARB) |
| 2 CARD16 sequence number |
| 4 CARD32 bad profile bitmask |
| 2 CARD16 minor opcode |
| 1 CARD8 major opcode |
| 21 unused |
| |
| GLX Protocol |
| |
| Three new GLX protocol commands are added. |
| |
| Send Extended Client Information To The Server (glXSetClientInfoARB |
| and glXSetClientInfo2ARB) |
| ---------------------------------------------- |
| |
| This request is sent to the server during initialization, describing |
| the GLX version, GLX extensions, GL version(s), and GL extensions |
| supported by the client. The client needs to send only names of GL |
| extensions that require server support, but must send all GLX |
| extension names. |
| |
| When the server receives a GetString request, it uses this |
| information to compute the version and extensions that can be |
| supported on the connection. The GLX client library should append |
| any client-side only extensions to the extension string returned by |
| the GetString request. When the server receives a |
| glXCreateContextAttribsARB request, it uses this information to |
| determine whether the requested context version, attributes, and |
| flags can be supported on the connection. |
| |
| glXSetClientInfo2ARB supersedes glXSetClientInfoARB, which in turn |
| supersedes the glXClientInfo request. The client should only send |
| glXSetClientInfo2ARB if both GLX_ARB_create_context and |
| GLX_ARB_create_context_profile are present in the server's extension |
| string. If only GLX_ARB_create_context is present, the client |
| should send glXSetClientInfoARB, and if neither are present |
| glXClientInfo should be sent. If none of these requests are ever |
| sent to the server, the server assumes the client supports OpenGL |
| major version 1 and minor version 0, GLX major version 1, and minor |
| version 0, and doesn't support any OpenGL or GLX extensions. |
| |
| glXSetClientInfo2ARB Encoding: |
| |
| 1 CARD8 opcode (X assigned) |
| 1 35 GLX opcode (glXSetClientInfoARB) |
| 2 6+(n0*3)+((n1+p1)/4)+((n2+p2)/4) request length |
| 4 CARD32 client GLX major version |
| 4 CARD32 client GLX minor version |
| 4 n0 number of context versions |
| 4 n1 number of bytes in extension_string |
| 4 n2 number of bytes in glx_extension_string |
| n0*3*4 LISTofCARD32 context versions |
| n1 STRING8 client GL extension string |
| p1 unused, p1 = pad(n1) |
| n2 STRING8 client GLX extension string |
| p2 unused, p2 = pad(n2) |
| |
| glXSetClientInfoARB Encoding: |
| |
| 1 CARD8 opcode (X assigned) |
| 1 33 GLX opcode (glXSetClientInfoARB) |
| 2 6+(n0*2)+((n1+p1)/4)+((n2+p2)/4) request length |
| 4 CARD32 client GLX major version |
| 4 CARD32 client GLX minor version |
| 4 n0 number of context versions |
| 4 n1 number of bytes in extension_string |
| 4 n2 number of bytes in glx_extension_string |
| n0*2*4 LISTofCARD32 context versions |
| n1 STRING8 client GL extension string |
| p1 unused, p1 = pad(n1) |
| n2 STRING8 client GLX extension string |
| p2 unused, p2 = pad(n2) |
| |
| "Context versions" is a list of (major version, minor version, |
| [profile mask]) tuple; each tuple describes a GL version supported |
| by the client. The profile mask member is only sent when using |
| glXSetClientInfo2ARB and is ignored for versions less than 3.2. |
| Only the highest supported version below 3.0 should be sent, since |
| OpenGL 2.1 is backwards compatible with all earlier versions. For |
| example, a context versions array containing |
| |
| { 2, 1, 0x0, 3, 0, 0x0, 3, 1, 0x0, 3, 2, 0x3 } |
| |
| Means that the client supports all GL versions between 1.0 and 2.1, |
| as well as versions 3.0, 3.1, and 3.2. Version 3.2 core and |
| compatibility profiles are supported. A BadValue error will be |
| generated if the client sends a 3.2 or greater version tuple with a |
| profile mask of 0, or with a profile mask that does not include the |
| core profile. |
| |
| If glXSetClientInfo2ARB or glXSetClientInfoARB are not sent by the |
| client prior to context creation the server will behave as if no |
| contexts above version 2.1 are supported, and assume the client |
| supports all GLX extensions. If the client sends |
| glXSetClientInfoARB and the server supports |
| GLX_ARB_create_context_profile, the server will behave as if no |
| contexts above version 3.1 are supported. |
| |
| |
| Context Creation with Attributes (glXCreateContextAttribsARB) |
| -------------------------------- |
| |
| This request is sent to create a context with specified attributes |
| |
| 1 CARD8 opcode (X assigned) |
| 1 34 GLX opcode (glXCreateContextAttribsARB) |
| 2 7+n request length |
| 4 GLX_CONTEXT context |
| 4 FBCONFIGID fbconfig |
| 4 CARD32 screen |
| 4 GLX_CONTEXT share_context |
| 1 BOOL isdirect |
| 1 CARD8 reserved1 |
| 2 CARD16 reserved2 |
| 4 CARD32 num_attribs |
| 4*n LISTofATTRIBUTE_PAIR attribute, value pairs |
| |
| Errors |
| |
| GLX errors for glXCreateContextAttribsARB and glXSetClientInfo2ARB |
| as described in the body of the specification. |
| |
| glXMakeContextCurrent error behavior is relaxed to allow making an |
| OpenGL 3.0 or later context current without a default read or draw |
| framebuffer. |
| |
| Dependencies on GLX_ARB_create_context |
| |
| If GLX_ARB_create_context_profile is supported, then |
| GLX_ARB_create_context must also be supported. |
| |
| Dependencies on OpenGL 3.2 and later OpenGL versions |
| |
| If GLX_ARB_create_context is supported, and if the OpenGL |
| implementation supports OpenGL 3.2 or later, then |
| GLX_ARB_create_context_profile must also be supported. If the OpenGL |
| implementation does not support OpenGL 3.2 or later, then |
| GLX_ARB_create_context_profile may or may not be supported. |
| |
| If GLX_ARB_create_context_profile is not supported, then the |
| GLX_CONTEXT_PROFILE_MASK_ARB attribute, the |
| GLX_CONTEXT_CORE_PROFILE_BIT_ARB and |
| GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB bits in that attribute, |
| and the ERROR_INVALID_PROFILE_ARB error are not defined, and |
| specifying the attribute in <attribList> attribute will generate |
| BadValue. |
| |
| New State |
| |
| None |
| |
| New Implementation Dependent State |
| |
| None |
| |
| Conformance Tests |
| |
| TBD |
| |
| Sample Code |
| |
| TBD |
| |
| Issues |
| |
| All non-window-system dependent issues described in the |
| WGL_ARB_create_context extension specification apply equally to |
| GLX_ARB_create_context. |
| |
| 1) Why was the context creation parameter <render_type> folded into the |
| attribute list, while the parameters <direct> and <share_context> |
| remains explicit? |
| |
| For <direct>, because different paths to the server may be taken for |
| creating direct contexts, and parsing the attribute list in the |
| client should not be required. For <share_context>, because putting |
| a GLXContext, which is implemented as a struct pointer, into a list |
| of 'int's does not work on LP64 architectures. |
| |
| 2) What is the behavior when creating an indirect rendering context |
| with attributes, flags, or a GLXFBConfig that require extensions not |
| supported by the client GLX implementation? |
| |
| Context creation will succeed, but using such features may be |
| impossible, since there may be no entry points defined in the client |
| library to control them. |
| |
| 3) Does client support for profiles need to be sent to the server |
| along with client support for versions? |
| |
| Yes. glXSetClientInfo2ARB extends glXSetClientInfoARB to support |
| sending supported profile masks for each supported version. |
| |
| Revision History |
| |
| Version 1, 2008/08/20 - Fork from WGL_ARB_create_context |
| |
| Version 2, 2008/08/21 - Add viewport/scissor setting behavior when |
| no default framebuffer is made current. |
| |
| Version 3, 2008/10/08 - Restore <direct> as an explicit parameter |
| instead of an attribute. Allow creating indirect contexts requiring |
| extensions not supported by the client. Add GLX protocol. Use |
| existing GLX_RENDER_TYPE token. Rename some parameters following |
| existing conventions. Update Errors section. |
| |
| Version 4, 2008/10/13 - Move "undefined behavior when successfully |
| creating a context requiring extensions not supported by the client" |
| language from the spec into the issues list. Remove unused |
| GLX_DIRECT_RENDERER_ARB token. Expand description of |
| glXSetClientInfoARB protocol negotiation. |
| |
| Version 5, 2008/10/22 - Mark as complete and assign extension number |
| for the registry. |
| |
| Version 6, 2008/10/24 - Renumber to ARB extension #55 - misplaced |
| into vendor extension numbering scheme at first. |
| |
| Version 7, 2009/07/27 - Add profiled context creation functionality |
| (GLX_CONTEXT_PROFILE_MASK_ARB and the associated bit tokens). |
| Clarify that if the core profile is requested, the returned context |
| cannot restore functionality from the compatibility profile (issue |
| 17 in WGL_ARB_create_context). Specify the interdependencies between |
| the two GLX extensions defined here and OpenGL 3.2, including the |
| requirement that GLX_ARB_create_context_profile be supported if an |
| OpenGL 3.2 or later implementation is supported. Add issue 3 on |
| sending profile support to the server. |
| |
| Version 8, 2009/08/30 - Add glXSetClientInfo2ARB to support sending |
| profile masks with the versions as well. Specify which error is |
| generated in the case profile tokens are used with a server that |
| doesn't support them. Replace ERROR_INVALID_PROFILE_ARB with |
| GLXBadProfileARB and define its encoding. |
| |
| Version 9, 2009/11/19 - Clarify that BEC in the BadProfile protocol |
| represents the base error code for the GLX extension. |
| |
| Version 10, 2012/03/28 - Clarify error conditions when |
| glXMakeContextCurrent is called with a valid context and exactly one |
| None drawable. |