blob: 55d94636d8ff650d64f98155fca240b290f962b3 [file] [log] [blame]
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 <attribute> parameter of eglQuerySurface and by the
<attrib_list> 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)
"<attrib_list> specifies a list of attributes for the window. The list has
the same structure as described for eglChooseConfig. Attributes that can
be specified in <attrib_list> 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)
"<attrib_list> specifies a list of attributes for the pbuffer. The list
has the same structure as described for eglChooseConfig. Attributes that
can be specified in <attrib_list> 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)
"<attrib_list> specifies a list of attributes for the pbuffer. The list
has the same structure as described for eglChooseConfig. Attributes that
can be specified in <attrib_list> 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