Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
michael@0 | 1 | Name |
michael@0 | 2 | |
michael@0 | 3 | EXT_create_context_robustness |
michael@0 | 4 | |
michael@0 | 5 | Name Strings |
michael@0 | 6 | |
michael@0 | 7 | EGL_EXT_create_context_robustness |
michael@0 | 8 | |
michael@0 | 9 | Contributors |
michael@0 | 10 | |
michael@0 | 11 | Daniel Koch, TransGaming |
michael@0 | 12 | Contributors to EGL_KHR_create_context |
michael@0 | 13 | |
michael@0 | 14 | Contact |
michael@0 | 15 | |
michael@0 | 16 | Greg Roth (groth 'at' nvidia.com) |
michael@0 | 17 | |
michael@0 | 18 | Status |
michael@0 | 19 | |
michael@0 | 20 | Complete. |
michael@0 | 21 | |
michael@0 | 22 | Version |
michael@0 | 23 | |
michael@0 | 24 | Version 3, 2011/10/31 |
michael@0 | 25 | |
michael@0 | 26 | Number |
michael@0 | 27 | |
michael@0 | 28 | EGL Extension #37 |
michael@0 | 29 | |
michael@0 | 30 | Dependencies |
michael@0 | 31 | |
michael@0 | 32 | Requires EGL 1.4 |
michael@0 | 33 | |
michael@0 | 34 | Written against the EGL 1.4 specification. |
michael@0 | 35 | |
michael@0 | 36 | An OpenGL implementation supporting GL_ARB_robustness, an OpenGL ES |
michael@0 | 37 | implementation supporting GL_EXT_robustness, or an implementation |
michael@0 | 38 | supporting equivalent functionality is required. |
michael@0 | 39 | |
michael@0 | 40 | Overview |
michael@0 | 41 | |
michael@0 | 42 | This extension allows creating an OpenGL or OpenGL ES context |
michael@0 | 43 | supporting robust buffer access behavior and a specified graphics |
michael@0 | 44 | reset notification behavior. |
michael@0 | 45 | |
michael@0 | 46 | New Procedures and Functions |
michael@0 | 47 | |
michael@0 | 48 | None |
michael@0 | 49 | |
michael@0 | 50 | New Tokens |
michael@0 | 51 | |
michael@0 | 52 | Accepted as an attribute name in the <*attrib_list> argument to |
michael@0 | 53 | eglCreateContext: |
michael@0 | 54 | |
michael@0 | 55 | EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF |
michael@0 | 56 | EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 |
michael@0 | 57 | |
michael@0 | 58 | Accepted as an attribute value for EGL_CONTEXT_RESET_NOTIFICATION_- |
michael@0 | 59 | STRATEGY_EXT in the <*attrib_list> argument to eglCreateContext: |
michael@0 | 60 | |
michael@0 | 61 | EGL_NO_RESET_NOTIFICATION_EXT 0x31BE |
michael@0 | 62 | EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF |
michael@0 | 63 | |
michael@0 | 64 | Additions to the EGL 1.4 Specification |
michael@0 | 65 | |
michael@0 | 66 | Replace section 3.7.1 "Creating Rendering Contexts" from the |
michael@0 | 67 | fifth paragraph through the seventh paragraph: |
michael@0 | 68 | |
michael@0 | 69 | <attrib_list> specifies a list of attributes for the context. The |
michael@0 | 70 | list has the same structure as described for eglChooseConfig. If an |
michael@0 | 71 | attribute is not specified in <attrib_list>, then the default value |
michael@0 | 72 | specified below is used instead. <attrib_list> may be NULL or empty |
michael@0 | 73 | (first attribute is EGL_NONE), in which case attributes assume their |
michael@0 | 74 | default values as described below. Most attributes are only meaningful |
michael@0 | 75 | for specific client APIs, and will generate an EGL_BAD_ATTRIBUTE |
michael@0 | 76 | error when specified to create for another client API context. |
michael@0 | 77 | |
michael@0 | 78 | Context Versions |
michael@0 | 79 | ---------------- |
michael@0 | 80 | |
michael@0 | 81 | EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL ES |
michael@0 | 82 | context to create. This attribute may only be specified when creating |
michael@0 | 83 | an OpenGL ES context (e.g. when the current rendering API is |
michael@0 | 84 | EGL_OPENGL_ES_API). An attribute value of 1 specifies creation of an |
michael@0 | 85 | OpenGL ES 1.x context. An attribute value of 2 specifies creation of an |
michael@0 | 86 | Open GL ES 2.x context. The default value for EGL_CONTEXT_CLIENT_VERSION |
michael@0 | 87 | is 1. |
michael@0 | 88 | |
michael@0 | 89 | Context Robust Access |
michael@0 | 90 | ------------- |
michael@0 | 91 | |
michael@0 | 92 | EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT indicates whether <robust buffer |
michael@0 | 93 | access> should be enabled for the OpenGL ES context. Robust buffer |
michael@0 | 94 | access is defined in the GL_EXT_robustness extension specification, |
michael@0 | 95 | and the resulting context must support GL_EXT_robustness and robust |
michael@0 | 96 | buffer access as described therein. The default value of |
michael@0 | 97 | EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT is EGL_FALSE. |
michael@0 | 98 | |
michael@0 | 99 | Context Reset Notification |
michael@0 | 100 | -------------------------- |
michael@0 | 101 | |
michael@0 | 102 | The attribute name EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_- |
michael@0 | 103 | EXT specifies the <reset notification behavior> of the rendering |
michael@0 | 104 | context. This attribute is only meaningful for OpenGL ES contexts, |
michael@0 | 105 | and specifying it for other types of contexts will generate an |
michael@0 | 106 | EGL_BAD_ATTRIBUTE error. |
michael@0 | 107 | |
michael@0 | 108 | Reset notification behavior is defined in the GL_EXT_robustness |
michael@0 | 109 | extension for OpenGL ES, and the resulting context must support |
michael@0 | 110 | GL_EXT_robustness and the specified reset strategy. The attribute |
michael@0 | 111 | value may be either EGL_NO_RESET_NOTIFICATION_EXT or EGL_LOSE_- |
michael@0 | 112 | CONTEXT_ON_RESET_EXT, which respectively result in disabling |
michael@0 | 113 | delivery of reset notifications or the loss of all context state |
michael@0 | 114 | upon reset notification as described by the GL_EXT_robustness. The |
michael@0 | 115 | default value for EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT |
michael@0 | 116 | is EGL_NO_RESET_NOTIFICATION_EXT. |
michael@0 | 117 | |
michael@0 | 118 | Add to the eglCreateContext context creation errors: |
michael@0 | 119 | |
michael@0 | 120 | * If <config> does not support a client API context compatible |
michael@0 | 121 | with the requested context flags and context reset notification |
michael@0 | 122 | behavior (for client API types where these attributes are |
michael@0 | 123 | supported), then an EGL_BAD_CONFIG error is generated. |
michael@0 | 124 | |
michael@0 | 125 | * If the reset notification behavior of <share_context> and the |
michael@0 | 126 | newly created context are different then an EGL_BAD_MATCH error is |
michael@0 | 127 | generated. |
michael@0 | 128 | |
michael@0 | 129 | |
michael@0 | 130 | Errors |
michael@0 | 131 | |
michael@0 | 132 | EGL_BAD_CONFIG is generated if EGL_CONTEXT_OPENGL_ROBUST_ACCESS_- |
michael@0 | 133 | EXT is set to EGL_TRUE and no GL context supporting the GL_EXT_- |
michael@0 | 134 | robustness extension and robust access as described therein can be |
michael@0 | 135 | created. |
michael@0 | 136 | |
michael@0 | 137 | EGL_BAD_CONFIG is generated if no GL context supporting the |
michael@0 | 138 | GL_EXT_robustness extension and the specified reset notification |
michael@0 | 139 | behavior (the value of attribute EGL_CONTEXT_RESET_NOTIFICATION_- |
michael@0 | 140 | STRATEGY_EXT) can be created. |
michael@0 | 141 | |
michael@0 | 142 | BAD_MATCH is generated if the reset notification behavior of |
michael@0 | 143 | <share_context> does not match the reset notification behavior of |
michael@0 | 144 | the context being created. |
michael@0 | 145 | |
michael@0 | 146 | New State |
michael@0 | 147 | |
michael@0 | 148 | None |
michael@0 | 149 | |
michael@0 | 150 | Conformance Tests |
michael@0 | 151 | |
michael@0 | 152 | TBD |
michael@0 | 153 | |
michael@0 | 154 | Sample Code |
michael@0 | 155 | |
michael@0 | 156 | TBD |
michael@0 | 157 | |
michael@0 | 158 | Issues |
michael@0 | 159 | |
michael@0 | 160 | None |
michael@0 | 161 | |
michael@0 | 162 | Revision History |
michael@0 | 163 | |
michael@0 | 164 | Rev. Date Author Changes |
michael@0 | 165 | ---- ------------ --------- ---------------------------------------- |
michael@0 | 166 | 3 31 Oct 2011 groth Reverted to attribute for robust access. Now it's a |
michael@0 | 167 | companion to rather than subset of KHR_create_context |
michael@0 | 168 | 2 11 Oct 2011 groth Merged ANGLE and NV extensions. |
michael@0 | 169 | 1 15 July 2011 groth Initial version |