2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
18 XB_FMT_DXT5_YCoCg
= 0x8,
19 XB_FMT_DXT_MASK
= 0xF,
21 XB_FMT_A8R8G8B8
= 0x10, // texture.xbt byte order (matches BGRA8)
26 XB_FMT_OPAQUE
= 0x10000,
31 KD_TEX_FMT_UNKNOWN
= 0x0000,
33 // Legacy XB_FMT formats family
34 KD_TEX_FMT_LEGACY
= 0x0000,
37 KD_TEX_FMT_SDR
= 0x1000,
38 KD_TEX_FMT_SDR_R8
= 0x1000, // 8bpp, single channel
39 KD_TEX_FMT_SDR_RG8
= 0x1100, // 16bpp, dual channel
40 KD_TEX_FMT_SDR_R5G6B5
= 0x1200, // 16bpp, 5/6 bit per color channel
41 KD_TEX_FMT_SDR_RGB5_A1
= 0x1300, // 16bpp, 5 bit per color channel, pt-alpha
42 KD_TEX_FMT_SDR_RGBA4
= 0x1400, // 16bpp, 4 bit per channel
43 KD_TEX_FMT_SDR_RGB8
= 0x1500, // 24bpp, 8 bit per channel, no alpha (unsuitable for GPUs!)
44 KD_TEX_FMT_SDR_RGBA8
= 0x1600, // 32bpp, 8 bit per channel, RGBA order
45 KD_TEX_FMT_SDR_BGRA8
= 0x1700, // 32bpp, 8 bit per channel, BGRA order
48 KD_TEX_FMT_HDR
= 0x2000,
49 KD_TEX_FMT_HDR_R16f
= 0x2100, // 16bpp, single channel float
50 KD_TEX_FMT_HDR_RG16f
= 0x2200, // 32bpp, dual channel float
51 KD_TEX_FMT_HDR_R11F_G11F_B10F
= 0x2300, // 32bpp, 6e5/5e5 per color channel
52 KD_TEX_FMT_HDR_RGB9_E5
= 0x2400, // 32bpp, 9 bit color, shared 5 bit exponent
53 KD_TEX_FMT_HDR_RGB10_A2
= 0x2500, // 32bpp, 10 bit color, 2 bit alpha
54 KD_TEX_FMT_HDR_RGBA16f
= 0x2600, // 64bpp, four channel float
57 KD_TEX_FMT_YUV
= 0x3000,
58 KD_TEX_FMT_YUV_YUYV8
= 0x3000, // 16bpp, 4:2:2 packed
60 // S3TC texture family
61 KD_TEX_FMT_S3TC
= 0x4000,
62 KD_TEX_FMT_S3TC_RGB8
= 0x4000, // 4bpp, RGB (BC1)
63 KD_TEX_FMT_S3TC_RGB8_A1
= 0x4100, // 4bpp, RGB, pt-alpha (BC1)
64 KD_TEX_FMT_S3TC_RGB8_A4
= 0x4200, // 8bpp, RGB, 4 bit alpha (BC2)
65 KD_TEX_FMT_S3TC_RGBA8
= 0x4300, // 8bpp, RGBA (BC3)
67 // RGTC (LATC) texture family
68 KD_TEX_FMT_RGTC
= 0x5000,
69 KD_TEX_FMT_RGTC_R11
= 0x5000, // 4bpp, single channel (BC4)
70 KD_TEX_FMT_RGTC_RG11
= 0x5100, // 8bpp, dual channel (BC5)
72 // BPTC texture family
73 KD_TEX_FMT_BPTC
= 0x6000,
74 KD_TEX_FMT_BPTC_RGB16F
= 0x6000, // 8bpp, HDR (BC6H float)
75 KD_TEX_FMT_BPTC_RGBA8
= 0x6100, // 8bpp, LDR (BC7 unorm)
77 // ETC1 texture family
78 KD_TEX_FMT_ETC1
= 0x7000,
79 KD_TEX_FMT_ETC1_RGB8
= 0x7000, // 4bpp, RGB
81 // ETC2 texture family
82 KD_TEX_FMT_ETC2
= 0x8000,
83 KD_TEX_FMT_ETC2_R11
= 0x8100, // 4bpp, single channel (EAC)
84 KD_TEX_FMT_ETC2_RG11
= 0x8200, // 8bpp, dual channel (EAC)
85 KD_TEX_FMT_ETC2_RGB8
= 0x8300, // 4bpp, RGB
86 KD_TEX_FMT_ETC2_RGB8_A1
= 0x8400, // 4bpp, RGB, pt-alpha
87 KD_TEX_FMT_ETC2_RGBA8
= 0x8500, // 8bpp, RGB, alpha EAC
89 // ASTC LDR texture family
90 // Bitrate varies from 8bpp (4x4 tile) to 0.89bpp (12x12 tile).
91 KD_TEX_FMT_ASTC_LDR
= 0x9000,
92 KD_TEX_FMT_ASTC_LDR_4x4
= 0x9000,
93 KD_TEX_FMT_ASTC_LDR_5x4
= 0x9100,
94 KD_TEX_FMT_ASTC_LDR_5x5
= 0x9200,
95 KD_TEX_FMT_ASTC_LDR_6x5
= 0x9300,
96 KD_TEX_FMT_ASTC_LDR_6x6
= 0x9400,
97 KD_TEX_FMT_ASTC_LDR_8x5
= 0x9500,
98 KD_TEX_FMT_ASTC_LDR_8x6
= 0x9600,
99 KD_TEX_FMT_ASTC_LDR_8x8
= 0x9700,
100 KD_TEX_FMT_ASTC_LDR_10x5
= 0x9800,
101 KD_TEX_FMT_ASTC_LDR_10x6
= 0x9900,
102 KD_TEX_FMT_ASTC_LDR_10x8
= 0x9A00,
103 KD_TEX_FMT_ASTC_LDR_10x10
= 0x9B00,
104 KD_TEX_FMT_ASTC_LDR_12x10
= 0x9C00,
105 KD_TEX_FMT_ASTC_LDR_12x12
= 0x9D00,
107 // ASTC HDR texture family
108 // Bitrate varies from 8bpp (4x4 tile) to 0.89bpp (12x12 tile).
109 KD_TEX_FMT_ASTC_HDR
= 0xA000,
110 KD_TEX_FMT_ASTC_HDR_4x4
= 0xA000,
111 KD_TEX_FMT_ASTC_HDR_5x4
= 0xA100,
112 KD_TEX_FMT_ASTC_HDR_5x5
= 0xA200,
113 KD_TEX_FMT_ASTC_HDR_6x5
= 0xA300,
114 KD_TEX_FMT_ASTC_HDR_6x6
= 0xA400,
115 KD_TEX_FMT_ASTC_HDR_8x5
= 0xA500,
116 KD_TEX_FMT_ASTC_HDR_8x6
= 0xA600,
117 KD_TEX_FMT_ASTC_HDR_8x8
= 0xA700,
118 KD_TEX_FMT_ASTC_HDR_10x5
= 0xA800,
119 KD_TEX_FMT_ASTC_HDR_10x6
= 0xA900,
120 KD_TEX_FMT_ASTC_HDR_10x8
= 0xAA00,
121 KD_TEX_FMT_ASTC_HDR_10x10
= 0xAB00,
122 KD_TEX_FMT_ASTC_HDR_12x10
= 0xAC00,
123 KD_TEX_FMT_ASTC_HDR_12x12
= 0xAD00,
125 KD_TEX_FMT_TYPE_MASK
= 0xF000,
127 KD_TEX_FMT_MASK
= 0xFFFF,
133 KD_TEX_ALPHA_STRAIGHT
= 0x00000, // Straight (unmultiplied) alpha
134 KD_TEX_ALPHA_OPAQUE
= 0x10000, // No alpha
135 KD_TEX_ALPHA_PREMULTIPLIED
= 0x20000, // Premultiplied alpha
137 KD_TEX_ALPHA_MASK
= 0xF0000,
140 // Texture component swizzle or effect
143 KD_TEX_SWIZ_RGBA
= 0x000000, // No swizzling
144 KD_TEX_SWIZ_RGB1
= 0x100000, // Normal swizzle, ignoring alpha
145 KD_TEX_SWIZ_RRR1
= 0x200000, // Luminance
146 KD_TEX_SWIZ_111R
= 0x300000, // Alpha
147 KD_TEX_SWIZ_RRRG
= 0x400000, // Luminance-Alpha
148 KD_TEX_SWIZ_RRRR
= 0x500000, // Intensity
149 KD_TEX_SWIZ_GGG1
= 0x600000, // Luminance (ETC1/BC1)
150 KD_TEX_SWIZ_111G
= 0x700000, // Alpha (ETC1/BC1)
151 KD_TEX_SWIZ_GGGA
= 0x800000, // Luminance-Alpha (BC2/BC3)
152 KD_TEX_SWIZ_GGGG
= 0x900000, // Intensity (ETC1/BC1)
154 KD_TEX_SWIZ_SDF
= 0xa00000, // Red channel contains a SDF
155 KD_TEX_SWIZ_RGB_SDF
= 0xb00000, // RGB8 texture with a SDF packed in the alpha channel
156 KD_TEX_SWIZ_MSDF
= 0xc00000, // Encoded MSDF in the color channels, Alpha is ignored
158 KD_TEX_SWIZ_MASK
= 0xF00000,
164 KD_TEX_COL_REC709
= 0x0000000, // REC709/sRGB color space
165 KD_TEX_COL_REC2020
= 0x1000000, // REC2020 color space
167 KD_TEX_COL_MASK
= 0xF000000,
173 KD_TEX_TRANSFER_SRGB
= 0x00000000,
174 KD_TEX_TRANSFER_REC709
= 0x10000000,
175 KD_TEX_TRANSFER_HLG
= 0x20000000,
176 KD_TEX_TRANSFER_LINEAR
= 0x30000000,
177 KD_TEX_TRANSFER_SQUARED
= 0x40000000,
178 KD_TEX_TRANSFER_PQ
= 0x50000000,
180 KD_TEX_TRANSFER_MASK
= 0xF0000000,