/usr/include/gli/gl.hpp is in libgli-dev 0.8.2.0+ds1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 | /// @brief Include to translate GLI enums to OpenGL enums
/// @file gli/gl.hpp
#pragma once
#include "format.hpp"
#include "target.hpp"
#include <array>
namespace gli
{
/// Translation class to convert GLI enums into OpenGL values
class gl
{
public:
enum internal_format
{
INTERNAL_RGB_UNORM= 0x1907, //GL_RGB
INTERNAL_BGR_UNORM = 0x80E0, //GL_BGR
INTERNAL_RGBA_UNORM = 0x1908, //GL_RGBA
INTERNAL_BGRA_UNORM = 0x80E1, //GL_BGRA
INTERNAL_BGRA8_UNORM = 0x93A1, //GL_BGRA8_EXT
// unorm formats
INTERNAL_R8_UNORM = 0x8229, //GL_R8
INTERNAL_RG8_UNORM = 0x822B, //GL_RG8
INTERNAL_RGB8_UNORM = 0x8051, //GL_RGB8
INTERNAL_RGBA8_UNORM = 0x8058, //GL_RGBA8
INTERNAL_R16_UNORM = 0x822A, //GL_R16
INTERNAL_RG16_UNORM = 0x822C, //GL_RG16
INTERNAL_RGB16_UNORM = 0x8054, //GL_RGB16
INTERNAL_RGBA16_UNORM = 0x805B, //GL_RGBA16
INTERNAL_RGB10A2_UNORM = 0x8059, //GL_RGB10_A2
INTERNAL_RGB10A2_SNORM_EXT = 0xFFFC,
// snorm formats
INTERNAL_R8_SNORM = 0x8F94, //GL_R8_SNORM
INTERNAL_RG8_SNORM = 0x8F95, //GL_RG8_SNORM
INTERNAL_RGB8_SNORM = 0x8F96, //GL_RGB8_SNORM
INTERNAL_RGBA8_SNORM = 0x8F97, //GL_RGBA8_SNORM
INTERNAL_R16_SNORM = 0x8F98, //GL_R16_SNORM
INTERNAL_RG16_SNORM= 0x8F99, //GL_RG16_SNORM
INTERNAL_RGB16_SNORM= 0x8F9A, //GL_RGB16_SNORM
INTERNAL_RGBA16_SNORM = 0x8F9B, //GL_RGBA16_SNORM
// unsigned integer formats
INTERNAL_R8U = 0x8232, //GL_R8UI
INTERNAL_RG8U = 0x8238, //GL_RG8UI
INTERNAL_RGB8U = 0x8D7D, //GL_RGB8UI
INTERNAL_RGBA8U = 0x8D7C, //GL_RGBA8UI
INTERNAL_R16U = 0x8234, //GL_R16UI
INTERNAL_RG16U = 0x823A, //GL_RG16UI
INTERNAL_RGB16U = 0x8D77, //GL_RGB16UI
INTERNAL_RGBA16U = 0x8D76, //GL_RGBA16UI
INTERNAL_R32U = 0x8236, //GL_R32UI
INTERNAL_RG32U = 0x823C, //GL_RG32UI
INTERNAL_RGB32U = 0x8D71, //GL_RGB32UI
INTERNAL_RGBA32U = 0x8D70, //GL_RGBA32UI
INTERNAL_RGB10A2U = 0x906F, //GL_RGB10_A2UI
INTERNAL_RGB10A2I_EXT = 0xFFFB,
// signed integer formats
INTERNAL_R8I = 0x8231, //GL_R8I
INTERNAL_RG8I = 0x8237, //GL_RG8I
INTERNAL_RGB8I = 0x8D8F, //GL_RGB8I
INTERNAL_RGBA8I = 0x8D8E, //GL_RGBA8I
INTERNAL_R16I = 0x8233, //GL_R16I
INTERNAL_RG16I = 0x8239, //GL_RG16I
INTERNAL_RGB16I = 0x8D89, //GL_RGB16I
INTERNAL_RGBA16I = 0x8D88, //GL_RGBA16I
INTERNAL_R32I = 0x8235, //GL_R32I
INTERNAL_RG32I = 0x823B, //GL_RG32I
INTERNAL_RGB32I = 0x8D83, //GL_RGB32I
INTERNAL_RGBA32I = 0x8D82, //GL_RGBA32I
// Floating formats
INTERNAL_R16F = 0x822D, //GL_R16F
INTERNAL_RG16F = 0x822F, //GL_RG16F
INTERNAL_RGB16F = 0x881B, //GL_RGB16F
INTERNAL_RGBA16F = 0x881A, //GL_RGBA16F
INTERNAL_R32F = 0x822E, //GL_R32F
INTERNAL_RG32F = 0x8230, //GL_RG32F
INTERNAL_RGB32F = 0x8815, //GL_RGB32F
INTERNAL_RGBA32F = 0x8814, //GL_RGBA32F
INTERNAL_R64F_EXT = 0xFFFA, //GL_R64F
INTERNAL_RG64F_EXT = 0xFFF9, //GL_RG64F
INTERNAL_RGB64F_EXT = 0xFFF8, //GL_RGB64F
INTERNAL_RGBA64F_EXT = 0xFFF7, //GL_RGBA64F
// sRGB formats
INTERNAL_SR8 = 0x8FBD, //GL_SR8_EXT
INTERNAL_SRG8 = 0x8FBE, //GL_SRG8_EXT
INTERNAL_SRGB8 = 0x8C41, //GL_SRGB8
INTERNAL_SRGB8_ALPHA8 = 0x8C43, //GL_SRGB8_ALPHA8
// Packed formats
INTERNAL_RGB9E5 = 0x8C3D, //GL_RGB9_E5
INTERNAL_RG11B10F = 0x8C3A, //GL_R11F_G11F_B10F
INTERNAL_RG3B2 = 0x2A10, //GL_R3_G3_B2
INTERNAL_R5G6B5 = 0x8D62, //GL_RGB565
INTERNAL_RGB5A1 = 0x8057, //GL_RGB5_A1
INTERNAL_RGBA4 = 0x8056, //GL_RGBA4
INTERNAL_RG4_EXT = 0xFFFE,
// Luminance Alpha formats
INTERNAL_LA4 = 0x8043, //GL_LUMINANCE4_ALPHA4
INTERNAL_L8 = 0x8040, //GL_LUMINANCE8
INTERNAL_A8 = 0x803C, //GL_ALPHA8
INTERNAL_LA8 = 0x8045, //GL_LUMINANCE8_ALPHA8
INTERNAL_L16 = 0x8042, //GL_LUMINANCE16
INTERNAL_A16 = 0x803E, //GL_ALPHA16
INTERNAL_LA16 = 0x8048, //GL_LUMINANCE16_ALPHA16
// Depth formats
INTERNAL_D16 = 0x81A5, //GL_DEPTH_COMPONENT16
INTERNAL_D24 = 0x81A6, //GL_DEPTH_COMPONENT24
INTERNAL_D16S8_EXT = 0xFFF6,
INTERNAL_D24S8 = 0x88F0, //GL_DEPTH24_STENCIL8
INTERNAL_D32 = 0x81A7, //GL_DEPTH_COMPONENT32
INTERNAL_D32F = 0x8CAC, //GL_DEPTH_COMPONENT32F
INTERNAL_D32FS8X24 = 0x8CAD, //GL_DEPTH32F_STENCIL8
INTERNAL_S8_EXT = 0x8D48, //GL_STENCIL_INDEX8
// Compressed formats
INTERNAL_RGB_DXT1 = 0x83F0, //GL_COMPRESSED_RGB_S3TC_DXT1_EXT
INTERNAL_RGBA_DXT1 = 0x83F1, //GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
INTERNAL_RGBA_DXT3 = 0x83F2, //GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
INTERNAL_RGBA_DXT5 = 0x83F3, //GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
INTERNAL_R_ATI1N_UNORM = 0x8DBB, //GL_COMPRESSED_RED_RGTC1
INTERNAL_R_ATI1N_SNORM = 0x8DBC, //GL_COMPRESSED_SIGNED_RED_RGTC1
INTERNAL_RG_ATI2N_UNORM = 0x8DBD, //GL_COMPRESSED_RG_RGTC2
INTERNAL_RG_ATI2N_SNORM = 0x8DBE, //GL_COMPRESSED_SIGNED_RG_RGTC2
INTERNAL_RGB_BP_UNSIGNED_FLOAT = 0x8E8F, //GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
INTERNAL_RGB_BP_SIGNED_FLOAT = 0x8E8E, //GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
INTERNAL_RGB_BP_UNORM = 0x8E8C, //GL_COMPRESSED_RGBA_BPTC_UNORM
INTERNAL_RGB_PVRTC_4BPPV1 = 0x8C00, //GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
INTERNAL_RGB_PVRTC_2BPPV1 = 0x8C01, //GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
INTERNAL_RGBA_PVRTC_4BPPV1 = 0x8C02, //GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
INTERNAL_RGBA_PVRTC_2BPPV1 = 0x8C03, //GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
INTERNAL_RGBA_PVRTC_4BPPV2 = 0x9137, //GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG
INTERNAL_RGBA_PVRTC_2BPPV2 = 0x9138, //GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG
INTERNAL_ATC_RGB = 0x8C92, //GL_ATC_RGB_AMD
INTERNAL_ATC_RGBA_EXPLICIT_ALPHA = 0x8C93, //GL_ATC_RGBA_EXPLICIT_ALPHA_AMD
INTERNAL_ATC_RGBA_INTERPOLATED_ALPHA = 0x87EE, //GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD
INTERNAL_RGB_ETC = 0x8D64, //GL_COMPRESSED_RGB8_ETC1
INTERNAL_RGB_ETC2 = 0x9274, //GL_COMPRESSED_RGB8_ETC2
INTERNAL_RGBA_PUNCHTHROUGH_ETC2 = 0x9276, //GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
INTERNAL_RGBA_ETC2 = 0x9278, //GL_COMPRESSED_RGBA8_ETC2_EAC
INTERNAL_R11_EAC = 0x9270, //GL_COMPRESSED_R11_EAC
INTERNAL_SIGNED_R11_EAC = 0x9271, //GL_COMPRESSED_SIGNED_R11_EAC
INTERNAL_RG11_EAC = 0x9272, //GL_COMPRESSED_RG11_EAC
INTERNAL_SIGNED_RG11_EAC = 0x9273, //GL_COMPRESSED_SIGNED_RG11_EAC
INTERNAL_RGBA_ASTC_4x4 = 0x93B0, //GL_COMPRESSED_RGBA_ASTC_4x4_KHR
INTERNAL_RGBA_ASTC_5x4 = 0x93B1, //GL_COMPRESSED_RGBA_ASTC_5x4_KHR
INTERNAL_RGBA_ASTC_5x5 = 0x93B2, //GL_COMPRESSED_RGBA_ASTC_5x5_KHR
INTERNAL_RGBA_ASTC_6x5 = 0x93B3, //GL_COMPRESSED_RGBA_ASTC_6x5_KHR
INTERNAL_RGBA_ASTC_6x6 = 0x93B4, //GL_COMPRESSED_RGBA_ASTC_6x6_KHR
INTERNAL_RGBA_ASTC_8x5 = 0x93B5, //GL_COMPRESSED_RGBA_ASTC_8x5_KHR
INTERNAL_RGBA_ASTC_8x6 = 0x93B6, //GL_COMPRESSED_RGBA_ASTC_8x6_KHR
INTERNAL_RGBA_ASTC_8x8 = 0x93B7, //GL_COMPRESSED_RGBA_ASTC_8x8_KHR
INTERNAL_RGBA_ASTC_10x5 = 0x93B8, //GL_COMPRESSED_RGBA_ASTC_10x5_KHR
INTERNAL_RGBA_ASTC_10x6 = 0x93B9, //GL_COMPRESSED_RGBA_ASTC_10x6_KHR
INTERNAL_RGBA_ASTC_10x8 = 0x93BA, //GL_COMPRESSED_RGBA_ASTC_10x8_KHR
INTERNAL_RGBA_ASTC_10x10 = 0x93BB, //GL_COMPRESSED_RGBA_ASTC_10x10_KHR
INTERNAL_RGBA_ASTC_12x10 = 0x93BC, //GL_COMPRESSED_RGBA_ASTC_12x10_KHR
INTERNAL_RGBA_ASTC_12x12 = 0x93BD, //GL_COMPRESSED_RGBA_ASTC_12x12_KHR
// sRGB formats
INTERNAL_SRGB_DXT1 = 0x8C4C, //GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
INTERNAL_SRGB_ALPHA_DXT1 = 0x8C4D, //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
INTERNAL_SRGB_ALPHA_DXT3 = 0x8C4E, //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
INTERNAL_SRGB_ALPHA_DXT5 = 0x8C4F, //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
INTERNAL_SRGB_BP_UNORM = 0x8E8D, //GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
INTERNAL_SRGB_PVRTC_2BPPV1 = 0x8A54, //GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT
INTERNAL_SRGB_PVRTC_4BPPV1 = 0x8A55, //GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT
INTERNAL_SRGB_ALPHA_PVRTC_2BPPV1 = 0x8A56, //GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT
INTERNAL_SRGB_ALPHA_PVRTC_4BPPV1 = 0x8A57, //GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT
INTERNAL_SRGB_ALPHA_PVRTC_2BPPV2 = 0x93F0, //COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG
INTERNAL_SRGB_ALPHA_PVRTC_4BPPV2 = 0x93F1, //GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG
INTERNAL_SRGB8_ETC2 = 0x9275, //GL_COMPRESSED_SRGB8_ETC2
INTERNAL_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277, //GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
INTERNAL_SRGB8_ALPHA8_ETC2_EAC = 0x9279, //GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
INTERNAL_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
INTERNAL_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
INTERNAL_ALPHA8 = 0x803C,
INTERNAL_ALPHA16 = 0x803E,
INTERNAL_LUMINANCE8 = 0x8040,
INTERNAL_LUMINANCE16 = 0x8042,
INTERNAL_LUMINANCE8_ALPHA8 = 0x8045,
INTERNAL_LUMINANCE16_ALPHA16 = 0x8048,
INTERNAL_R8_USCALED_GTC = 0xF000,
INTERNAL_R8_SSCALED_GTC,
INTERNAL_RG8_USCALED_GTC,
INTERNAL_RG8_SSCALED_GTC,
INTERNAL_RGB8_USCALED_GTC,
INTERNAL_RGB8_SSCALED_GTC,
INTERNAL_RGBA8_USCALED_GTC,
INTERNAL_RGBA8_SSCALED_GTC,
INTERNAL_RGB10A2_USCALED_GTC,
INTERNAL_RGB10A2_SSCALED_GTC,
INTERNAL_R16_USCALED_GTC,
INTERNAL_R16_SSCALED_GTC,
INTERNAL_RG16_USCALED_GTC,
INTERNAL_RG16_SSCALED_GTC,
INTERNAL_RGB16_USCALED_GTC,
INTERNAL_RGB16_SSCALED_GTC,
INTERNAL_RGBA16_USCALED_GTC,
INTERNAL_RGBA16_SSCALED_GTC,
};
enum external_format
{
EXTERNAL_NONE = 0, //GL_NONE
EXTERNAL_RED = 0x1903, //GL_RED
EXTERNAL_RG = 0x8227, //GL_RG
EXTERNAL_RGB= 0x1907, //GL_RGB
EXTERNAL_BGR = 0x80E0, //GL_BGR
EXTERNAL_RGBA = 0x1908, //GL_RGBA
EXTERNAL_BGRA = 0x80E1, //GL_BGRA
EXTERNAL_RED_INTEGER = 0x8D94, //GL_RED_INTEGER
EXTERNAL_RG_INTEGER = 0x8228, //GL_RG_INTEGER
EXTERNAL_RGB_INTEGER = 0x8D98, //GL_RGB_INTEGER
EXTERNAL_BGR_INTEGER = 0x8D9A, //GL_BGR_INTEGER
EXTERNAL_RGBA_INTEGER = 0x8D99, //GL_RGBA_INTEGER
EXTERNAL_BGRA_INTEGER = 0x8D9B, //GL_BGRA_INTEGER
EXTERNAL_DEPTH = 0x1902, //GL_DEPTH_COMPONENT
EXTERNAL_DEPTH_STENCIL = 0x84F9, //GL_DEPTH_STENCIL
EXTERNAL_STENCIL = 0x1901, //GL_STENCIL_INDEX
EXTERNAL_LUMINANCE = 0x1909, //GL_LUMINANCE
EXTERNAL_ALPHA = 0x1906, //GL_ALPHA
EXTERNAL_LUMINANCE_ALPHA = 0x190A, //GL_LUMINANCE_ALPHA
EXTERNAL_SRGB_EXT = 0x8C40, //SRGB_EXT
EXTERNAL_SRGB_ALPHA_EXT = 0x8C42 //SRGB_ALPHA_EXT
};
enum type_format
{
TYPE_NONE = 0, //GL_NONE
TYPE_I8 = 0x1400, //GL_BYTE
TYPE_U8 = 0x1401, //GL_UNSIGNED_BYTE
TYPE_I16 = 0x1402, //GL_SHORT
TYPE_U16 = 0x1403, //GL_UNSIGNED_SHORT
TYPE_I32 = 0x1404, //GL_INT
TYPE_U32 = 0x1405, //GL_UNSIGNED_INT
TYPE_I64 = 0x140E, //GL_INT64_ARB
TYPE_U64 = 0x140F, //GL_UNSIGNED_INT64_ARB
TYPE_F16 = 0x140B, //GL_HALF_FLOAT
TYPE_F16_OES = 0x8D61, //GL_HALF_FLOAT_OES
TYPE_F32 = 0x1406, //GL_FLOAT
TYPE_F64 = 0x140A, //GL_DOUBLE
TYPE_UINT32_RGB9_E5_REV = 0x8C3E, //GL_UNSIGNED_INT_5_9_9_9_REV
TYPE_UINT32_RG11B10F_REV = 0x8C3B, //GL_UNSIGNED_INT_10F_11F_11F_REV
TYPE_UINT8_RG3B2 = 0x8032, //GL_UNSIGNED_BYTE_3_3_2
TYPE_UINT8_RG3B2_REV = 0x8362, //GL_UNSIGNED_BYTE_2_3_3_REV
TYPE_UINT16_RGB5A1 = 0x8034, //GL_UNSIGNED_SHORT_5_5_5_1
TYPE_UINT16_RGB5A1_REV = 0x8366, //GL_UNSIGNED_SHORT_1_5_5_5_REV
TYPE_UINT16_R5G6B5 = 0x8363, //GL_UNSIGNED_SHORT_5_6_5
TYPE_UINT16_R5G6B5_REV = 0x8364, //GL_UNSIGNED_SHORT_5_6_5_REV
TYPE_UINT16_RGBA4 = 0x8033, //GL_UNSIGNED_SHORT_4_4_4_4
TYPE_UINT16_RGBA4_REV = 0x8365, //GL_UNSIGNED_SHORT_4_4_4_4_REV
TYPE_UINT32_RGBA8 = 0x8035, //GL_UNSIGNED_SHORT_8_8_8_8
TYPE_UINT32_RGBA8_REV = 0x8367, //GL_UNSIGNED_SHORT_8_8_8_8_REV
TYPE_UINT32_RGB10A2 = 0x8036, //GL_UNSIGNED_INT_10_10_10_2
TYPE_UINT32_RGB10A2_REV = 0x8368, //GL_UNSIGNED_INT_2_10_10_10_REV
TYPE_UINT8_RG4_REV_GTC = 0xFFFD,
TYPE_UINT16_A1RGB5_GTC = 0xFFFC
};
enum target
{
TARGET_1D = 0x0DE0,
TARGET_1D_ARRAY = 0x8C18,
TARGET_2D = 0x0DE1,
TARGET_2D_ARRAY = 0x8C1A,
TARGET_3D = 0x806F,
TARGET_RECT = 0x84F5,
TARGET_RECT_ARRAY = 0x84F5, // Not supported by OpenGL
TARGET_CUBE = 0x8513,
TARGET_CUBE_ARRAY = 0x9009
};
enum swizzle
{
SWIZZLE_RED = 0x1903, //GL_RED
SWIZZLE_GREEN = 0x1904, //GL_GREEN
SWIZZLE_BLUE = 0x1905, //GL_BLUE
SWIZZLE_ALPHA = 0x1906, //GL_ALPHA
SWIZZLE_ZERO = 0x0000, //GL_ZERO
SWIZZLE_ONE = 0x0001, //GL_ONE
};
enum profile
{
PROFILE_ES20,
PROFILE_ES30,
PROFILE_GL32,
PROFILE_GL33,
PROFILE_KTX
};
typedef glm::tvec4<int> swizzles;
struct format
{
internal_format Internal;
external_format External;
type_format Type;
swizzles Swizzles;
};
gl(profile Profile);
/// Convert GLI targets into OpenGL texture targets
target const& translate(gli::target Target) const;
/// Convert GLI formats into OpenGL texture formats
format translate(gli::format Format, gli::swizzles const& Swizzle) const;
/// Convert an OpenGL format into a GLI format
gli::format find(internal_format InternalFormat, external_format ExternalFormat, type_format Type);
private:
struct format_desc
{
internal_format Internal;
external_format External;
type_format Type;
unsigned int Properties;
};
bool has_swizzle(profile Profile) const
{
return Profile == PROFILE_ES30 || Profile == PROFILE_GL33;
}
gl::swizzles compute_swizzle(format_desc const& FormatDesc, gli::swizzles const& Swizzle) const;
std::array<format_desc, FORMAT_COUNT> FormatDesc;
profile Profile;
};
}//namespace gli
#include "./core/gl.inl"
|