// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors

/* eslint-disable camelcase */
import type {
  GL_COMPRESSED_R11_EAC,
  GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
  GL_COMPRESSED_RED_RGTC1_EXT,
  GL_COMPRESSED_RG11_EAC,
  GL_COMPRESSED_RGB8_ETC2,
  GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
  GL_COMPRESSED_RGB_ATC_WEBGL,
  GL_COMPRESSED_RGB_ETC1_WEBGL,
  GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
  GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
  GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
  GL_COMPRESSED_RGBA8_ETC2_EAC,
  GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
  GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
  GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
  GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
  GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
  GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
  GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
  GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
  GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
  GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
  GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
  GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
  GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
  GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
  GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
  GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,
  GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
  GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
  GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
  GL_COMPRESSED_SIGNED_R11_EAC,
  GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
  GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,
  GL_COMPRESSED_SIGNED_RG11_EAC,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
  GL_COMPRESSED_SRGB8_ETC2,
  GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
  GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
  GL_RGB565,
  GL_RGBA32F,
  GL_RGBA4,
  GL_RGBA8
} from './gl-extensions';

/** WebGL/OpenGL texture format constants used internally by the textures module. */
export type GLTextureFormat =
  | typeof GL_COMPRESSED_R11_EAC
  | typeof GL_COMPRESSED_RED_GREEN_RGTC2_EXT
  | typeof GL_COMPRESSED_RED_RGTC1_EXT
  | typeof GL_COMPRESSED_RG11_EAC
  | typeof GL_COMPRESSED_RGB8_ETC2
  | typeof GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  | typeof GL_COMPRESSED_RGB_ATC_WEBGL
  | typeof GL_COMPRESSED_RGB_ETC1_WEBGL
  | typeof GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
  | typeof GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
  | typeof GL_COMPRESSED_RGB_S3TC_DXT1_EXT
  | typeof GL_COMPRESSED_RGBA8_ETC2_EAC
  | typeof GL_COMPRESSED_RGBA_ASTC_10x10_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_10x5_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_10x6_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_10x8_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_12x10_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_12x12_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_4x4_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_5x4_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_5x5_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_6x5_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_6x6_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_8x5_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_8x6_KHR
  | typeof GL_COMPRESSED_RGBA_ASTC_8x8_KHR
  | typeof GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL
  | typeof GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
  | typeof GL_COMPRESSED_RGBA_BPTC_UNORM_EXT
  | typeof GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
  | typeof GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
  | typeof GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
  | typeof GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
  | typeof GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
  | typeof GL_COMPRESSED_SIGNED_R11_EAC
  | typeof GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
  | typeof GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
  | typeof GL_COMPRESSED_SIGNED_RG11_EAC
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
  | typeof GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  | typeof GL_COMPRESSED_SRGB8_ETC2
  | typeof GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  | typeof GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
  | typeof GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
  | typeof GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
  | typeof GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
  | typeof GL_RGB565
  | typeof GL_RGBA32F
  | typeof GL_RGBA4
  | typeof GL_RGBA8;
