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