Name ANGLE_flexible_surface_compatibility Name Strings EGL_ANGLE_flexible_surface_compatibility Contributors John Bauman (jbauman 'at' google.com) Shannon Woods (shannonwoods 'at' google.com) Contact John Bauman (jbauman 'at' google.com) Status Draft Version Version 3, Dec 15, 2015 Number EGL Extension #XXX Extension Type EGL display extension Dependencies This extension is written against the language of EGL 1.5. Overview Some EGL implementations may allow any surface to be made current with any context from the same display, without restrictions due to bit depth. IP Status No known claims. New Types None. New Procedures and Functions None. New Tokens Accepted by the parameter of eglQuerySurface and by the parameter of eglCreateWindowSurface, eglCreatePlatformWindowSurface, eglCreatePbufferSurface, and eglCreatePbufferFromClientBuffer: EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 0x33A6 Changes to Chapter 2 of the EGL 1.5 Specification (EGL Operation) Replace the first paragraph of the first bulleted list item in section 2.2, page 4 (Rendering Contexts and Drawing Surfaces) "They support the same type of color buffer (RGB or luminance), or the surface has the EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE attribute set to EGL_TRUE." Replace the first paragraph of the second bulleted list item in section 2.2, page 4 (Rendering Contexts and Drawing Surfaces) "They have color buffers and ancillary buffers of the same depth, or the surface has the EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE attribute set to EGL_TRUE." Changes to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors) Modify the fourth paragraph of Section 3.5.1, page 32 (Creating On-Screen rendering Surfaces) " specifies a list of attributes for the window. The list has the same structure as described for eglChooseConfig. Attributes that can be specified in include EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, EGL_GL_COLORSPACE, EGL_RENDER_BUFFER, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT." Add the following between paragraphs 6 and 7 of Section 3.5.1, page 32 (Creating On-Screen Rendering Surfaces) "EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE specifies whether the surface can be made current with a context with a config of different bit depth. Its values can be EGL_TRUE, in which case that is supported, or EGL_FALSE, in which case that is not supported." Modify the fourth paragraph of Section 3.5.2, page 35 (Creating Off-Screen Rendering Surfaces) " specifies a list of attributes for the pbuffer. The list has the same structure as described for eglChooseConfig. Attributes that can be specified in include EGL_WIDTH, EGL_HEIGHT, EGL_LARGEST_PBUFFER, EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET, EGL_MIPMAP_TEXTURE, EGL_GL_COLORSPACE, EGL_VG_COLORSPACE, EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, and EGL_VG_ALPHA_FORMAT." Modify paragraph twelve of Section 3.5.2, page 36 "EGL_GL_COLORSPACE, EGL_VG_COLORSPACE, EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, and EGL_VG_ALPHA_FORMAT have the same meaning and default values as when used with eglCreatePlatformWindowSurface." Modify the fifth paragraph of Section 3.5.3, page 37 (Binding Off-Screen Rendering Surfaces To Client Buffers) " specifies a list of attributes for the pbuffer. The list has the same structure as described for eglChooseConfig. Attributes that can be specified in include EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET, EGL_- MIPMAP_TEXTURE, and EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE. The meaning of these attributes is as described above for eglCreatePbufferSurface. The EGL_VG_COLORSPACE and EGL_VG_ALPHA_FORMAT attributes of the surface are determined by the VGImageFormat of buffer." Add the following entry to Table 3.5, page 44 (Queryable surface attributes and types) Attribute Type Description -------------------------------------------------- ------- ------------------------ EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE boolean Surface can be made current with contexts of a different bit depth Issues None Revision History Version 3, Dec 15, 2015 (John Bauman) - Modify EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE value. Version 2, Dec 1, 2015 (John Bauman) - Add EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE to specify new behavior. Version 1, Nov 24, 2015 (John Bauman) - Initial Draft