/*
|
|
* Copyright (C) 2023 Christopher J. Howard
|
|
*
|
|
* This file is part of Antkeeper source code.
|
|
*
|
|
* Antkeeper source code is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Antkeeper source code is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef ANTKEEPER_GL_FORMAT_HPP
|
|
#define ANTKEEPER_GL_FORMAT_HPP
|
|
|
|
#include <cstdint>
|
|
|
|
namespace gl {
|
|
|
|
/// Image and vertex formats.
|
|
enum class format: std::uint32_t
|
|
{
|
|
undefined,
|
|
r4g4_unorm_pack8,
|
|
r4g4b4a4_unorm_pack16,
|
|
b4g4r4a4_unorm_pack16,
|
|
r5g6b5_unorm_pack16,
|
|
b5g6r5_unorm_pack16,
|
|
r5g5b5a1_unorm_pack16,
|
|
b5g5r5a1_unorm_pack16,
|
|
a1r5g5b5_unorm_pack16,
|
|
r8_unorm,
|
|
r8_snorm,
|
|
r8_uscaled,
|
|
r8_sscaled,
|
|
r8_uint,
|
|
r8_sint,
|
|
r8_srgb,
|
|
r8g8_unorm,
|
|
r8g8_snorm,
|
|
r8g8_uscaled,
|
|
r8g8_sscaled,
|
|
r8g8_uint,
|
|
r8g8_sint,
|
|
r8g8_srgb,
|
|
r8g8b8_unorm,
|
|
r8g8b8_snorm,
|
|
r8g8b8_uscaled,
|
|
r8g8b8_sscaled,
|
|
r8g8b8_uint,
|
|
r8g8b8_sint,
|
|
r8g8b8_srgb,
|
|
b8g8r8_unorm,
|
|
b8g8r8_snorm,
|
|
b8g8r8_uscaled,
|
|
b8g8r8_sscaled,
|
|
b8g8r8_uint,
|
|
b8g8r8_sint,
|
|
b8g8r8_srgb,
|
|
r8g8b8a8_unorm,
|
|
r8g8b8a8_snorm,
|
|
r8g8b8a8_uscaled,
|
|
r8g8b8a8_sscaled,
|
|
r8g8b8a8_uint,
|
|
r8g8b8a8_sint,
|
|
r8g8b8a8_srgb,
|
|
b8g8r8a8_unorm,
|
|
b8g8r8a8_snorm,
|
|
b8g8r8a8_uscaled,
|
|
b8g8r8a8_sscaled,
|
|
b8g8r8a8_uint,
|
|
b8g8r8a8_sint,
|
|
b8g8r8a8_srgb,
|
|
a8b8g8r8_unorm_pack32,
|
|
a8b8g8r8_snorm_pack32,
|
|
a8b8g8r8_uscaled_pack32,
|
|
a8b8g8r8_sscaled_pack32,
|
|
a8b8g8r8_uint_pack32,
|
|
a8b8g8r8_sint_pack32,
|
|
a8b8g8r8_srgb_pack32,
|
|
a2r10g10b10_unorm_pack32,
|
|
a2r10g10b10_snorm_pack32,
|
|
a2r10g10b10_uscaled_pack32,
|
|
a2r10g10b10_sscaled_pack32,
|
|
a2r10g10b10_uint_pack32,
|
|
a2r10g10b10_sint_pack32,
|
|
a2b10g10r10_unorm_pack32,
|
|
a2b10g10r10_snorm_pack32,
|
|
a2b10g10r10_uscaled_pack32,
|
|
a2b10g10r10_sscaled_pack32,
|
|
a2b10g10r10_uint_pack32,
|
|
a2b10g10r10_sint_pack32,
|
|
r16_unorm,
|
|
r16_snorm,
|
|
r16_uscaled,
|
|
r16_sscaled,
|
|
r16_uint,
|
|
r16_sint,
|
|
r16_sfloat,
|
|
r16g16_unorm,
|
|
r16g16_snorm,
|
|
r16g16_uscaled,
|
|
r16g16_sscaled,
|
|
r16g16_uint,
|
|
r16g16_sint,
|
|
r16g16_sfloat,
|
|
r16g16b16_unorm,
|
|
r16g16b16_snorm,
|
|
r16g16b16_uscaled,
|
|
r16g16b16_sscaled,
|
|
r16g16b16_uint,
|
|
r16g16b16_sint,
|
|
r16g16b16_sfloat,
|
|
r16g16b16a16_unorm,
|
|
r16g16b16a16_snorm,
|
|
r16g16b16a16_uscaled,
|
|
r16g16b16a16_sscaled,
|
|
r16g16b16a16_uint,
|
|
r16g16b16a16_sint,
|
|
r16g16b16a16_sfloat,
|
|
r32_uint,
|
|
r32_sint,
|
|
r32_sfloat,
|
|
r32g32_uint,
|
|
r32g32_sint,
|
|
r32g32_sfloat,
|
|
r32g32b32_uint,
|
|
r32g32b32_sint,
|
|
r32g32b32_sfloat,
|
|
r32g32b32a32_uint,
|
|
r32g32b32a32_sint,
|
|
r32g32b32a32_sfloat,
|
|
r64_uint,
|
|
r64_sint,
|
|
r64_sfloat,
|
|
r64g64_uint,
|
|
r64g64_sint,
|
|
r64g64_sfloat,
|
|
r64g64b64_uint,
|
|
r64g64b64_sint,
|
|
r64g64b64_sfloat,
|
|
r64g64b64a64_uint,
|
|
r64g64b64a64_sint,
|
|
r64g64b64a64_sfloat,
|
|
b10g11r11_ufloat_pack32,
|
|
e5b9g9r9_ufloat_pack32,
|
|
d16_unorm,
|
|
x8_d24_unorm_pack32,
|
|
d32_sfloat,
|
|
s8_uint,
|
|
d16_unorm_s8_uint,
|
|
d24_unorm_s8_uint,
|
|
d32_sfloat_s8_uint,
|
|
bc1_rgb_unorm_block,
|
|
bc1_rgb_srgb_block,
|
|
bc1_rgba_unorm_block,
|
|
bc1_rgba_srgb_block,
|
|
bc2_unorm_block,
|
|
bc2_srgb_block,
|
|
bc3_unorm_block,
|
|
bc3_srgb_block,
|
|
bc4_unorm_block,
|
|
bc4_snorm_block,
|
|
bc5_unorm_block,
|
|
bc5_snorm_block,
|
|
bc6h_ufloat_block,
|
|
bc6h_sfloat_block,
|
|
bc7_unorm_block,
|
|
bc7_srgb_block,
|
|
etc2_r8g8b8_unorm_block,
|
|
etc2_r8g8b8_srgb_block,
|
|
etc2_r8g8b8a1_unorm_block,
|
|
etc2_r8g8b8a1_srgb_block,
|
|
etc2_r8g8b8a8_unorm_block,
|
|
etc2_r8g8b8a8_srgb_block,
|
|
eac_r11_unorm_block,
|
|
eac_r11_snorm_block,
|
|
eac_r11g11_unorm_block,
|
|
eac_r11g11_snorm_block,
|
|
astc_4x4_unorm_block,
|
|
astc_4x4_srgb_block,
|
|
astc_5x4_unorm_block,
|
|
astc_5x4_srgb_block,
|
|
astc_5x5_unorm_block,
|
|
astc_5x5_srgb_block,
|
|
astc_6x5_unorm_block,
|
|
astc_6x5_srgb_block,
|
|
astc_6x6_unorm_block,
|
|
astc_6x6_srgb_block,
|
|
astc_8x5_unorm_block,
|
|
astc_8x5_srgb_block,
|
|
astc_8x6_unorm_block,
|
|
astc_8x6_srgb_block,
|
|
astc_8x8_unorm_block,
|
|
astc_8x8_srgb_block,
|
|
astc_10x5_unorm_block,
|
|
astc_10x5_srgb_block,
|
|
astc_10x6_unorm_block,
|
|
astc_10x6_srgb_block,
|
|
astc_10x8_unorm_block,
|
|
astc_10x8_srgb_block,
|
|
astc_10x10_unorm_block,
|
|
astc_10x10_srgb_block,
|
|
astc_12x10_unorm_block,
|
|
astc_12x10_srgb_block,
|
|
astc_12x12_unorm_block,
|
|
astc_12x12_srgb_block
|
|
};
|
|
|
|
} // namespace gl
|
|
|
|
#endif // ANTKEEPER_GL_FORMAT_HPP
|