blob: c1a40ec13e0adc6a3b15d867d8a011d719911a0e [file] [log] [blame]
Name
ARM_image_format
Name Strings
EGL_ARM_image_format
Contributors
Jan-Harald Fredriksen
Contact
Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com)
IP Status
No known IP claims.
Status
Complete
Version
Version 1 - February 18, 2020
Number
138
Dependencies
This extension is written against the wording of the EGL 1.4
specification.
This extension reuses tokens from EGL_EXT_pixel_format_float.
Overview
When an EGLImage is created from an existing image resource the
implementation will deduce the format of the image data from that
resource. In some cases, however, the implementation may not know how to
map the existing image resource to a known format. This extension extends
the list of attributes accepted by eglCreateImageKHR such that applications
can tell the implementation how to interpret the data.
New Procedures and Functions
None.
New Tokens
Accepted as an attribute name in the <attrib_list> argument of
eglCreateImageKHR:
EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
Accepted as attribute values for the EGL_COLOR_COMPONENT_TYPE_EXT attribute
of eglCreateImageKHR:
EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287
EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288
EGL_RED_SIZE 0x3024
EGL_GREEN_SIZE 0x3023
EGL_BLUE_SIZE 0x3022
EGL_ALPHA_SIZE 0x3021
Modifications to the EGL 1.4 Specification
Add the following rows to Table 3.xx: Legal attributes for
eglCreateImageKHR <attrib_list> parameter:
+------------------------------+------------------------------+-----------+---------------+
| Attribute | Description | Valid | Default Value |
| | | <target>s | |
+------------------------------+------------------------------+-----------+---------------+
| EGL_COLOR_COMPONENT_TYPE_EXT | Specifies the component | All | NA |
| | type the EGLImage source | | |
| | is interpreted as | | |
| EGL_RED_SIZE | Specifies the red component | All | NA |
| | size the EGLImage source | | |
| | is interpreted as | | |
| EGL_GREEN_SIZE | Specifies the green component| All | NA |
| | size the EGLImage source | | |
| | is interpreted as | | |
| EGL_BLUE_SIZE | Specifies the blue component | All | NA |
| | size the EGLImage source | | |
| | is interpreted as | | |
| EGL_ALPHA_SIZE | Specifies the alpha component| All | NA |
| | size the EGLImage source | | |
| | is interpreted as | | |
+------------------------------+------------------------------+-----------+---------------+
If <attrib_list> specifies values for EGL_COLOR_COMPONENT_TYPE_EXT,
EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE, or EGL_ALPHA_SIZE, the
implementation will treat these as hints for how to interpret the contents
of <buffer>.
EGL_COLOR_COMPONENT_TYPE_EXT indicates the component type of <buffer> and
must be either EGL_COLOR_COMPONENT_TYPE_FIXED_EXT for fixed-point,
EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT for floating-point,
EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM for unsigned integer, or
EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM for integer components.
Add to the list of error conditions for eglCreateImageKHR:
* If the implementation is unable to interpret the contents <buffer>
according to the component types and sizes in <attrib_list>, then a
EGL_BAD_MATCH error is generated.
Issues
1. Should there be a way to specify the component order?
Resolved. No, the component order is interpreted to be R, G, B, A,
with R mapping to component 0. If the application needs a different
component order it can use swizzle in the client API side or in the
shader.
Revision History
Version 1, 2020/02/18
- Internal revisions