зеркало из https://github.com/AvaloniaUI/angle.git
118 строки
3.2 KiB
Plaintext
118 строки
3.2 KiB
Plaintext
Name
|
|
|
|
ANGLE_yuv_internal_format
|
|
|
|
Name Strings
|
|
|
|
GL_ANGLE_yuv_internal_format
|
|
|
|
Contributors
|
|
|
|
Mohan Maiya, Samsung
|
|
Jamie Madill, Google
|
|
|
|
Contacts
|
|
|
|
Mohan Maiya, Samsung (m.maiya 'at' samsung 'dot' com)
|
|
|
|
Notice
|
|
|
|
Copyright (c) 2021 The Khronos Group Inc. Copyright terms at
|
|
http://www.khronos.org/registry/speccopyright.html
|
|
|
|
Status
|
|
|
|
Draft.
|
|
|
|
Version
|
|
|
|
Version 5, June 23, 2021
|
|
|
|
Number
|
|
|
|
OpenGL ES Extension ###
|
|
|
|
Dependencies
|
|
|
|
OpenGL ES 3.0 is required.
|
|
|
|
Overview
|
|
|
|
This extension introduces a few sized internal YUV texture formats
|
|
that can be used to create immutable textures using the TexStorage2D API.
|
|
The only valid texture target supported is TEXTURE_2D, an INVALID_ENUM
|
|
error is generated otherwise. There is no mipmap support and only NEAREST
|
|
minification and magnification filters are supported.
|
|
|
|
Support for the extension only requires the support of the commonly used 8-bit
|
|
2-plane YUV format listed in the "New Tokens" section, refer to [fn1] for details
|
|
about the formats and layout. It is up to the implementation to extend support
|
|
for the other YUV formats.
|
|
|
|
[fn1] : https://www.fourcc.org/yuv.php
|
|
|
|
New Types
|
|
|
|
None.
|
|
|
|
New Procedures and Functions
|
|
|
|
None.
|
|
|
|
New Tokens
|
|
|
|
List of non-standard YUV internal formats
|
|
|
|
// 8-bit YUV formats
|
|
G8_B8R8_2PLANE_420_UNORM_ANGLE 0x96B1
|
|
G8_B8_R8_3PLANE_420_UNORM_ANGLE 0x96B2
|
|
|
|
// 10-bit YUV formats
|
|
G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B3
|
|
G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B4
|
|
|
|
// 12-bit YUV formats
|
|
G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_ANGLE 0x96B5
|
|
G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_ANGLE 0x96B6
|
|
|
|
// 16-bit YUV formats
|
|
G16_B16R16_2PLANE_420_UNORM_ANGLE 0x96B7
|
|
G16_B16_R16_3PLANE_420_UNORM_ANGLE 0x96B8
|
|
|
|
|
|
Issues
|
|
|
|
1. How was the new format list chosen?
|
|
|
|
Commonly used planar YUV formats across various platforms were surveyed,
|
|
including new platforms that support HDR content. A subset of those were
|
|
chosen to be required. It is up to the implementations to extend support
|
|
for the rest of the formats.
|
|
|
|
2. What is the colorspace of image data of a texture created with the new formats?
|
|
|
|
The texture or sampler parameter APIs can be expanded to indicate the colorspace
|
|
in a layered extension and is outside the scope of this extension. The colorspace
|
|
for textures with the above YUV formats is assumed to be ITU-R BT.601 with YUV
|
|
values in limited range. Refer to ITU-R BT.601 spec for further details.
|
|
|
|
Revision History
|
|
|
|
#5 - (June 23, 2021) Mohan Maiya
|
|
Renamed format enums from *_ANGLEX to *_ANGLE
|
|
|
|
#4 - (June 23, 2021) Mohan Maiya
|
|
Removed references to GL_OES_EGL_image_external
|
|
and restricted the spec to simply introducing new
|
|
sized internal YUV formats. Also updated enum values
|
|
|
|
#3 - (June 8, 2021) Mohan Maiya
|
|
Clarification regarding default colorspace
|
|
|
|
#2 - (May 10, 2021) Mohan Maiya
|
|
Update overview section to specify support for
|
|
immutable textures
|
|
|
|
#1 - (April 10, 2021) Mohan Maiya
|
|
Original draft
|