[WASAPI] fix stream types and frequencies enumeration
[xbmc.git] / xbmc / guilib / TextureFormats.h
blob5b7d87c5fb7ed8384ac79d5baa84ebe74bda253a
1 /*
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.
7 */
9 #pragma once
11 // clang-format off
12 enum XB_FMT
14 XB_FMT_UNKNOWN = 0x0,
15 XB_FMT_DXT1 = 0x1,
16 XB_FMT_DXT3 = 0x2,
17 XB_FMT_DXT5 = 0x4,
18 XB_FMT_DXT5_YCoCg = 0x8,
19 XB_FMT_DXT_MASK = 0xF,
21 XB_FMT_A8R8G8B8 = 0x10, // texture.xbt byte order (matches BGRA8)
22 XB_FMT_A8 = 0x20,
23 XB_FMT_RGBA8 = 0x40,
24 XB_FMT_RGB8 = 0x80,
25 XB_FMT_MASK = 0xFFFF,
26 XB_FMT_OPAQUE = 0x10000,
29 enum KD_TEX_FMT
31 KD_TEX_FMT_UNKNOWN = 0x0000,
33 // Legacy XB_FMT formats family
34 KD_TEX_FMT_LEGACY = 0x0000,
36 // SDR texture family
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
47 // HDR texture family
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
56 // YUV texture family
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,
130 // Alpha handling
131 enum KD_TEX_ALPHA
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
141 enum KD_TEX_SWIZ
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,
161 // Color space
162 enum KD_TEX_COL
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,
170 // Transfer function
171 enum KD_TEX_TRANSFER
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,
183 // clang-format on