💿🐜 Antkeeper source code https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

219 lines
5.0 KiB

  1. /*
  2. * Copyright (C) 2023 Christopher J. Howard
  3. *
  4. * This file is part of Antkeeper source code.
  5. *
  6. * Antkeeper source code is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * Antkeeper source code is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #ifndef ANTKEEPER_GL_FORMAT_HPP
  20. #define ANTKEEPER_GL_FORMAT_HPP
  21. #include <cstdint>
  22. namespace gl {
  23. /// Image and vertex formats.
  24. enum class format: std::uint32_t
  25. {
  26. undefined,
  27. r4g4_unorm_pack8,
  28. r4g4b4a4_unorm_pack16,
  29. b4g4r4a4_unorm_pack16,
  30. r5g6b5_unorm_pack16,
  31. b5g6r5_unorm_pack16,
  32. r5g5b5a1_unorm_pack16,
  33. b5g5r5a1_unorm_pack16,
  34. a1r5g5b5_unorm_pack16,
  35. r8_unorm,
  36. r8_snorm,
  37. r8_uscaled,
  38. r8_sscaled,
  39. r8_uint,
  40. r8_sint,
  41. r8_srgb,
  42. r8g8_unorm,
  43. r8g8_snorm,
  44. r8g8_uscaled,
  45. r8g8_sscaled,
  46. r8g8_uint,
  47. r8g8_sint,
  48. r8g8_srgb,
  49. r8g8b8_unorm,
  50. r8g8b8_snorm,
  51. r8g8b8_uscaled,
  52. r8g8b8_sscaled,
  53. r8g8b8_uint,
  54. r8g8b8_sint,
  55. r8g8b8_srgb,
  56. b8g8r8_unorm,
  57. b8g8r8_snorm,
  58. b8g8r8_uscaled,
  59. b8g8r8_sscaled,
  60. b8g8r8_uint,
  61. b8g8r8_sint,
  62. b8g8r8_srgb,
  63. r8g8b8a8_unorm,
  64. r8g8b8a8_snorm,
  65. r8g8b8a8_uscaled,
  66. r8g8b8a8_sscaled,
  67. r8g8b8a8_uint,
  68. r8g8b8a8_sint,
  69. r8g8b8a8_srgb,
  70. b8g8r8a8_unorm,
  71. b8g8r8a8_snorm,
  72. b8g8r8a8_uscaled,
  73. b8g8r8a8_sscaled,
  74. b8g8r8a8_uint,
  75. b8g8r8a8_sint,
  76. b8g8r8a8_srgb,
  77. a8b8g8r8_unorm_pack32,
  78. a8b8g8r8_snorm_pack32,
  79. a8b8g8r8_uscaled_pack32,
  80. a8b8g8r8_sscaled_pack32,
  81. a8b8g8r8_uint_pack32,
  82. a8b8g8r8_sint_pack32,
  83. a8b8g8r8_srgb_pack32,
  84. a2r10g10b10_unorm_pack32,
  85. a2r10g10b10_snorm_pack32,
  86. a2r10g10b10_uscaled_pack32,
  87. a2r10g10b10_sscaled_pack32,
  88. a2r10g10b10_uint_pack32,
  89. a2r10g10b10_sint_pack32,
  90. a2b10g10r10_unorm_pack32,
  91. a2b10g10r10_snorm_pack32,
  92. a2b10g10r10_uscaled_pack32,
  93. a2b10g10r10_sscaled_pack32,
  94. a2b10g10r10_uint_pack32,
  95. a2b10g10r10_sint_pack32,
  96. r16_unorm,
  97. r16_snorm,
  98. r16_uscaled,
  99. r16_sscaled,
  100. r16_uint,
  101. r16_sint,
  102. r16_sfloat,
  103. r16g16_unorm,
  104. r16g16_snorm,
  105. r16g16_uscaled,
  106. r16g16_sscaled,
  107. r16g16_uint,
  108. r16g16_sint,
  109. r16g16_sfloat,
  110. r16g16b16_unorm,
  111. r16g16b16_snorm,
  112. r16g16b16_uscaled,
  113. r16g16b16_sscaled,
  114. r16g16b16_uint,
  115. r16g16b16_sint,
  116. r16g16b16_sfloat,
  117. r16g16b16a16_unorm,
  118. r16g16b16a16_snorm,
  119. r16g16b16a16_uscaled,
  120. r16g16b16a16_sscaled,
  121. r16g16b16a16_uint,
  122. r16g16b16a16_sint,
  123. r16g16b16a16_sfloat,
  124. r32_uint,
  125. r32_sint,
  126. r32_sfloat,
  127. r32g32_uint,
  128. r32g32_sint,
  129. r32g32_sfloat,
  130. r32g32b32_uint,
  131. r32g32b32_sint,
  132. r32g32b32_sfloat,
  133. r32g32b32a32_uint,
  134. r32g32b32a32_sint,
  135. r32g32b32a32_sfloat,
  136. r64_uint,
  137. r64_sint,
  138. r64_sfloat,
  139. r64g64_uint,
  140. r64g64_sint,
  141. r64g64_sfloat,
  142. r64g64b64_uint,
  143. r64g64b64_sint,
  144. r64g64b64_sfloat,
  145. r64g64b64a64_uint,
  146. r64g64b64a64_sint,
  147. r64g64b64a64_sfloat,
  148. b10g11r11_ufloat_pack32,
  149. e5b9g9r9_ufloat_pack32,
  150. d16_unorm,
  151. x8_d24_unorm_pack32,
  152. d32_sfloat,
  153. s8_uint,
  154. d16_unorm_s8_uint,
  155. d24_unorm_s8_uint,
  156. d32_sfloat_s8_uint,
  157. bc1_rgb_unorm_block,
  158. bc1_rgb_srgb_block,
  159. bc1_rgba_unorm_block,
  160. bc1_rgba_srgb_block,
  161. bc2_unorm_block,
  162. bc2_srgb_block,
  163. bc3_unorm_block,
  164. bc3_srgb_block,
  165. bc4_unorm_block,
  166. bc4_snorm_block,
  167. bc5_unorm_block,
  168. bc5_snorm_block,
  169. bc6h_ufloat_block,
  170. bc6h_sfloat_block,
  171. bc7_unorm_block,
  172. bc7_srgb_block,
  173. etc2_r8g8b8_unorm_block,
  174. etc2_r8g8b8_srgb_block,
  175. etc2_r8g8b8a1_unorm_block,
  176. etc2_r8g8b8a1_srgb_block,
  177. etc2_r8g8b8a8_unorm_block,
  178. etc2_r8g8b8a8_srgb_block,
  179. eac_r11_unorm_block,
  180. eac_r11_snorm_block,
  181. eac_r11g11_unorm_block,
  182. eac_r11g11_snorm_block,
  183. astc_4x4_unorm_block,
  184. astc_4x4_srgb_block,
  185. astc_5x4_unorm_block,
  186. astc_5x4_srgb_block,
  187. astc_5x5_unorm_block,
  188. astc_5x5_srgb_block,
  189. astc_6x5_unorm_block,
  190. astc_6x5_srgb_block,
  191. astc_6x6_unorm_block,
  192. astc_6x6_srgb_block,
  193. astc_8x5_unorm_block,
  194. astc_8x5_srgb_block,
  195. astc_8x6_unorm_block,
  196. astc_8x6_srgb_block,
  197. astc_8x8_unorm_block,
  198. astc_8x8_srgb_block,
  199. astc_10x5_unorm_block,
  200. astc_10x5_srgb_block,
  201. astc_10x6_unorm_block,
  202. astc_10x6_srgb_block,
  203. astc_10x8_unorm_block,
  204. astc_10x8_srgb_block,
  205. astc_10x10_unorm_block,
  206. astc_10x10_srgb_block,
  207. astc_12x10_unorm_block,
  208. astc_12x10_srgb_block,
  209. astc_12x12_unorm_block,
  210. astc_12x12_srgb_block
  211. };
  212. } // namespace gl
  213. #endif // ANTKEEPER_GL_FORMAT_HPP