MTLPixelFormat.bgr10_xr_srgb
A 32-bit extended-range pixel format with sRGB conversion and three fixed-point components of 10-bit blue, 10-bit green, and 10-bit red.
Declaration
case bgr10_xr_srgbDiscussion
Pixel components are stored in blue, green, and red order, from least significant bit to most significant bit. Bits 30 and 31 are padding, and their value is 0.
[Image]
The blue, green, and red components are gamma encoded, and their values range from -0.5271 to 1.66894, before gamma expansion.
In order to determine a component’s value as a shader float:
When reading a pixel, first apply the linear encoding
(xr10_value - 384) / 510.0fand then the sRGB transform.When writing a pixel, first apply the sRGB transform and then the linear encoding
shader_float = (xr10_value - 384) / 510.0f.
To display wide color values on devices with wide color displays, you set this pixel format on the colorPixelFormat property of an MTKView or the pixelFormat property of a CAMetalLayer. Also provide an extended sRGB color space.