michael@0: Name michael@0: michael@0: EXT_create_context_robustness michael@0: michael@0: Name Strings michael@0: michael@0: EGL_EXT_create_context_robustness michael@0: michael@0: Contributors michael@0: michael@0: Daniel Koch, TransGaming michael@0: Contributors to EGL_KHR_create_context michael@0: michael@0: Contact michael@0: michael@0: Greg Roth (groth 'at' nvidia.com) michael@0: michael@0: Status michael@0: michael@0: Complete. michael@0: michael@0: Version michael@0: michael@0: Version 3, 2011/10/31 michael@0: michael@0: Number michael@0: michael@0: EGL Extension #37 michael@0: michael@0: Dependencies michael@0: michael@0: Requires EGL 1.4 michael@0: michael@0: Written against the EGL 1.4 specification. michael@0: michael@0: An OpenGL implementation supporting GL_ARB_robustness, an OpenGL ES michael@0: implementation supporting GL_EXT_robustness, or an implementation michael@0: supporting equivalent functionality is required. michael@0: michael@0: Overview michael@0: michael@0: This extension allows creating an OpenGL or OpenGL ES context michael@0: supporting robust buffer access behavior and a specified graphics michael@0: reset notification behavior. michael@0: michael@0: New Procedures and Functions michael@0: michael@0: None michael@0: michael@0: New Tokens michael@0: michael@0: Accepted as an attribute name in the <*attrib_list> argument to michael@0: eglCreateContext: michael@0: michael@0: EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF michael@0: EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 michael@0: michael@0: Accepted as an attribute value for EGL_CONTEXT_RESET_NOTIFICATION_- michael@0: STRATEGY_EXT in the <*attrib_list> argument to eglCreateContext: michael@0: michael@0: EGL_NO_RESET_NOTIFICATION_EXT 0x31BE michael@0: EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF michael@0: michael@0: Additions to the EGL 1.4 Specification michael@0: michael@0: Replace section 3.7.1 "Creating Rendering Contexts" from the michael@0: fifth paragraph through the seventh paragraph: michael@0: michael@0: specifies a list of attributes for the context. The michael@0: list has the same structure as described for eglChooseConfig. If an michael@0: attribute is not specified in , then the default value michael@0: specified below is used instead. may be NULL or empty michael@0: (first attribute is EGL_NONE), in which case attributes assume their michael@0: default values as described below. Most attributes are only meaningful michael@0: for specific client APIs, and will generate an EGL_BAD_ATTRIBUTE michael@0: error when specified to create for another client API context. michael@0: michael@0: Context Versions michael@0: ---------------- michael@0: michael@0: EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL ES michael@0: context to create. This attribute may only be specified when creating michael@0: an OpenGL ES context (e.g. when the current rendering API is michael@0: EGL_OPENGL_ES_API). An attribute value of 1 specifies creation of an michael@0: OpenGL ES 1.x context. An attribute value of 2 specifies creation of an michael@0: Open GL ES 2.x context. The default value for EGL_CONTEXT_CLIENT_VERSION michael@0: is 1. michael@0: michael@0: Context Robust Access michael@0: ------------- michael@0: michael@0: EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT indicates whether should be enabled for the OpenGL ES context. Robust buffer michael@0: access is defined in the GL_EXT_robustness extension specification, michael@0: and the resulting context must support GL_EXT_robustness and robust michael@0: buffer access as described therein. The default value of michael@0: EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT is EGL_FALSE. michael@0: michael@0: Context Reset Notification michael@0: -------------------------- michael@0: michael@0: The attribute name EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_- michael@0: EXT specifies the of the rendering michael@0: context. This attribute is only meaningful for OpenGL ES contexts, michael@0: and specifying it for other types of contexts will generate an michael@0: EGL_BAD_ATTRIBUTE error. michael@0: michael@0: Reset notification behavior is defined in the GL_EXT_robustness michael@0: extension for OpenGL ES, and the resulting context must support michael@0: GL_EXT_robustness and the specified reset strategy. The attribute michael@0: value may be either EGL_NO_RESET_NOTIFICATION_EXT or EGL_LOSE_- michael@0: CONTEXT_ON_RESET_EXT, which respectively result in disabling michael@0: delivery of reset notifications or the loss of all context state michael@0: upon reset notification as described by the GL_EXT_robustness. The michael@0: default value for EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT michael@0: is EGL_NO_RESET_NOTIFICATION_EXT. michael@0: michael@0: Add to the eglCreateContext context creation errors: michael@0: michael@0: * If does not support a client API context compatible michael@0: with the requested context flags and context reset notification michael@0: behavior (for client API types where these attributes are michael@0: supported), then an EGL_BAD_CONFIG error is generated. michael@0: michael@0: * If the reset notification behavior of and the michael@0: newly created context are different then an EGL_BAD_MATCH error is michael@0: generated. michael@0: michael@0: michael@0: Errors michael@0: michael@0: EGL_BAD_CONFIG is generated if EGL_CONTEXT_OPENGL_ROBUST_ACCESS_- michael@0: EXT is set to EGL_TRUE and no GL context supporting the GL_EXT_- michael@0: robustness extension and robust access as described therein can be michael@0: created. michael@0: michael@0: EGL_BAD_CONFIG is generated if no GL context supporting the michael@0: GL_EXT_robustness extension and the specified reset notification michael@0: behavior (the value of attribute EGL_CONTEXT_RESET_NOTIFICATION_- michael@0: STRATEGY_EXT) can be created. michael@0: michael@0: BAD_MATCH is generated if the reset notification behavior of michael@0: does not match the reset notification behavior of michael@0: the context being created. michael@0: michael@0: New State michael@0: michael@0: None michael@0: michael@0: Conformance Tests michael@0: michael@0: TBD michael@0: michael@0: Sample Code michael@0: michael@0: TBD michael@0: michael@0: Issues michael@0: michael@0: None michael@0: michael@0: Revision History michael@0: michael@0: Rev. Date Author Changes michael@0: ---- ------------ --------- ---------------------------------------- michael@0: 3 31 Oct 2011 groth Reverted to attribute for robust access. Now it's a michael@0: companion to rather than subset of KHR_create_context michael@0: 2 11 Oct 2011 groth Merged ANGLE and NV extensions. michael@0: 1 15 July 2011 groth Initial version