| Name |
| |
| WGL_ARB_create_context_robustness |
| |
| Name Strings |
| |
| WGL_ARB_create_context_robustness |
| |
| Contact |
| |
| Jon Leech (jon 'at' alumni.caltech.edu) |
| |
| Notice |
| |
| Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Status |
| |
| Complete. Approved by the ARB on June 9, 2010. |
| Approved by the Khronos Board of Promoters on July 23, 2010. |
| |
| Version |
| |
| Version 3, 2010/07/22 |
| |
| Number |
| |
| ARB Extension #102 |
| |
| Dependencies |
| |
| WGL_ARB_extensions_string is required. |
| |
| WGL_ARB_create_context is required. |
| |
| An OpenGL implementation supporting GL_ARB_robustness is required. |
| |
| Overview |
| |
| This extension allows creating an OpenGL context supporting robust |
| buffer access behavior and a specified graphics reset notification |
| behavior. |
| |
| IP Status |
| |
| No known IP claims. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted as a bit in the attribute value for WGL_CONTEXT_FLAGS_ARB |
| in the <*attrib_list> argument to wglCreateContextAttribsARB: |
| |
| WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 |
| |
| Accepted as an attribute name in the <*attrib_list> argument to |
| wglCreateContextAttribsARB: |
| |
| WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 |
| |
| Accepted as an attribute value for |
| WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB in the <*attrib_list> |
| argument to wglCreateContextAttribsARB: |
| |
| WGL_NO_RESET_NOTIFICATION_ARB 0x8261 |
| WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 |
| |
| Additions to the OpenGL / GLX / GLX Protocol Specificaitons |
| |
| None. This specification is written for WGL. |
| |
| Additions to the WGL specification |
| |
| This extension modifies language specified in the |
| WGL_ARB_create_context and WGL_ARB_create_context_profile |
| extensions. |
| |
| In the description of wglCreateContextAttribsARB, insert a new |
| paragraph before the paragraph "The default value of |
| WGL_CONTEXT_FLAGS_ARB is 0.": |
| |
| "If the WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB bit is set in |
| WGL_CONTEXT_FLAGS_ARB, then a context supporting <robust buffer |
| access> will be created. Robust buffer access is defined in the |
| GL_ARB_robustness extension specification, and the resulting context |
| must also support either the GL_ARB_robustness extension, or a |
| version of OpenGL incorporating equivalent functionality." |
| |
| Add a new paragraph to the description of |
| wglCreateContextAttribsARB: |
| |
| "The attribute name WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB |
| specifies the <reset notification behavior> of the rendering |
| context. Reset notification behavior is defined in the |
| GL_ARB_robustness extension specification, and the resulting context |
| must also support either the GL_ARB_robustness extension, or a |
| version of OpenGL incorporating equivalent functionality. The |
| attribute value may be either WGL_NO_RESET_NOTIFICATION_ARB or |
| WGL_LOSE_CONTEXT_ON_RESET_ARB, which respectively result in reset |
| notification behavior of GL_NO_RESET_NOTIFICATION_ARB and |
| GL_LOSE_CONTEXT_ON_RESET_ARB, as described by GL_ARB_robustness. The |
| default value for WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB is |
| WGL_NO_RESET_NOTIFICATION_ARB." |
| |
| Add "robust buffer access flag" and "reset notification behavior" to |
| the list of possible context creation errors resulting in a |
| ERROR_INVALID_PIXEL_FORMAT error in this sentence: |
| |
| "* If the pixel format associated with <hDC> does not support OpenGL |
| contexts providing the requested API major and minor version, |
| forward-compatible flag, and/or debug context flag, then |
| ERROR_INVALID_PIXEL_FORMAT is generated." |
| |
| Add a new context creation error to wglCreateContextAttribsARB: |
| |
| "* If the reset notification behavior of <hShareContext> and the |
| newly created context are different, then |
| ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated." |
| |
| Add to the description of wglShareLists: |
| |
| "If the reset notification behavior of <hglrc1> and <hglrc2> are |
| different, then wglShareLists will return FALSE, and GetLastError |
| will return ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB." |
| |
| Dependencies on WGL_ARB_extensions_string |
| |
| Because there is no way to extend WGL, these calls are defined in |
| the ICD and can be called by obtaining the address with |
| wglGetProcAddress. Because this extension is a WGL extension, it is |
| not included in the GL_EXTENSIONS string. Its existence can be |
| determined with the WGL_ARB_extensions_string extension. |
| |
| Errors |
| |
| ERROR_INVALID_PIXEL_FORMAT is generated if |
| WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB is set in attribute |
| WGL_CONTEXT_FLAGS_ARB, and no GL context supporting the |
| GL_ARB_robustness extension with robust buffer access enabled |
| exists. |
| |
| ERROR_INVALID_PIXEL_FORMAT is generated if no GL context supporting |
| the GL_ARB_robustness extension with the specified reset |
| notification behavior (the value of attribute |
| WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB) can be created. |
| |
| ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by |
| wglCreateContextAttribsARB if the reset notification behavior of |
| <hShareContext> does not match the reset notification behavior of |
| the context being created. |
| |
| ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by wglShareLists |
| if the reset notification behavior of <hglrc1> and <hglrc2> are |
| different. |
| |
| New State |
| |
| None |
| |
| New Implementation Dependent State |
| |
| None |
| |
| Conformance Tests |
| |
| TBD |
| |
| Sample Code |
| |
| TBD |
| |
| Issues |
| |
| 1) Should there be a discovery mechanism for GL contexts supported by |
| the implementation? |
| |
| UNRESOLVED. As we add more and more versions, profiles, and context |
| flags, the number of possible types of contexts is growing rapidly. |
| Some discovery mechanism may be useful, but simply enumerating all |
| the possible contexts is probably impractica. |
| |
| 2) How can applications query if a context supports robust buffer |
| access? |
| |
| UNRESOLVED. See the matching issue in GL_ARB_robustness. |
| |
| Revision History |
| |
| Version 3, 2010/07/22 - Assign enums for new tokens (shared with GLX and |
| GL robustness extensions). |
| |
| Version 2, 2010/07/21 - Move reset notification behavior from a GL |
| toggle to a context creation parameter. Disallow sharing contexts |
| with different reset notification behaviors. Rename extension, since |
| it's no longer only about robust buffer access. |
| |
| Version 1, 2010/06/06 - Initial version. |