1Name 2 3 ANGLE_flexible_surface_compatibility 4 5Name Strings 6 7 EGL_ANGLE_flexible_surface_compatibility 8 9Contributors 10 11 John Bauman (jbauman 'at' google.com) 12 Shannon Woods (shannonwoods 'at' google.com) 13 14Contact 15 16 John Bauman (jbauman 'at' google.com) 17 18Status 19 20 Draft 21 22Version 23 24 Version 3, Dec 15, 2015 25 26Number 27 28 EGL Extension #XXX 29 30Extension Type 31 32 EGL display extension 33 34Dependencies 35 36 This extension is written against the language of EGL 1.5. 37 38Overview 39 40 Some EGL implementations may allow any surface to be made current with any 41 context from the same display, without restrictions due to bit depth. 42 43IP Status 44 45 No known claims. 46 47New Types 48 49 None. 50 51New Procedures and Functions 52 53 None. 54 55New Tokens 56 57 Accepted by the <attribute> parameter of eglQuerySurface and by the 58 <attrib_list> parameter of eglCreateWindowSurface, 59 eglCreatePlatformWindowSurface, eglCreatePbufferSurface, and 60 eglCreatePbufferFromClientBuffer: 61 62 EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 0x33A6 63 64Changes to Chapter 2 of the EGL 1.5 Specification (EGL Operation) 65 66 Replace the first paragraph of the first bulleted list item in section 67 2.2, page 4 68 (Rendering Contexts and Drawing Surfaces) 69 70 "They support the same type of color buffer (RGB or luminance), or the 71 surface has the EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 72 attribute set to EGL_TRUE." 73 74 Replace the first paragraph of the second bulleted list item in section 75 2.2, page 4 76 (Rendering Contexts and Drawing Surfaces) 77 78 "They have color buffers and ancillary buffers of the same depth, or the 79 surface has the EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 80 attribute set to EGL_TRUE." 81 82Changes to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors) 83 84 Modify the fourth paragraph of Section 3.5.1, page 32 85 (Creating On-Screen rendering Surfaces) 86 87 "<attrib_list> specifies a list of attributes for the window. The list has 88 the same structure as described for eglChooseConfig. Attributes that can 89 be specified in <attrib_list> include 90 EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, EGL_GL_COLORSPACE, 91 EGL_RENDER_BUFFER, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT." 92 93 Add the following between paragraphs 6 and 7 of Section 3.5.1, page 32 94 (Creating On-Screen Rendering Surfaces) 95 96 "EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE specifies whether the 97 surface can be made current with a context with a config of different bit 98 depth. Its values can be EGL_TRUE, in which case that is supported, or 99 EGL_FALSE, in which case that is not supported." 100 101 Modify the fourth paragraph of Section 3.5.2, page 35 102 (Creating Off-Screen Rendering Surfaces) 103 104 "<attrib_list> specifies a list of attributes for the pbuffer. The list 105 has the same structure as described for eglChooseConfig. Attributes that 106 can be specified in <attrib_list> include EGL_WIDTH, EGL_HEIGHT, 107 EGL_LARGEST_PBUFFER, EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET, 108 EGL_MIPMAP_TEXTURE, EGL_GL_COLORSPACE, EGL_VG_COLORSPACE, 109 EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, and 110 EGL_VG_ALPHA_FORMAT." 111 112 Modify paragraph twelve of Section 3.5.2, page 36 113 114 "EGL_GL_COLORSPACE, EGL_VG_COLORSPACE, 115 EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, and 116 EGL_VG_ALPHA_FORMAT have the same meaning and default values as when used 117 with eglCreatePlatformWindowSurface." 118 119 Modify the fifth paragraph of Section 3.5.3, page 37 120 (Binding Off-Screen Rendering Surfaces To Client Buffers) 121 122 "<attrib_list> specifies a list of attributes for the pbuffer. The list 123 has the same structure as described for eglChooseConfig. Attributes that 124 can be specified in <attrib_list> include EGL_TEXTURE_FORMAT, 125 EGL_TEXTURE_TARGET, EGL_- MIPMAP_TEXTURE, and 126 EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE. The meaning of these 127 attributes is as described above for eglCreatePbufferSurface. The 128 EGL_VG_COLORSPACE and EGL_VG_ALPHA_FORMAT attributes of the surface are 129 determined by the VGImageFormat of buffer." 130 131 Add the following entry to Table 3.5, page 44 (Queryable surface 132 attributes and types) 133 134 Attribute Type Description 135 -------------------------------------------------- ------- ------------------------ 136 EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE boolean Surface can be made 137 current with contexts 138 of a different bit depth 139 140Issues 141 142 None 143 144Revision History 145 146 Version 3, Dec 15, 2015 (John Bauman) 147 - Modify EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE value. 148 149 Version 2, Dec 1, 2015 (John Bauman) 150 - Add EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE to specify 151 new behavior. 152 153 Version 1, Nov 24, 2015 (John Bauman) 154 - Initial Draft 155