@loaders.gl/textures
Version:
Framework-independent loaders for compressed and super compressed (basis) textures
92 lines • 6.02 kB
JavaScript
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
import { 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_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_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_RGB_S3TC_DXT1_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 } from "../gl-extensions.js";
import { getTextureFormatFromWebGLFormat } from "./texture-format-map.js";
const VULKAN_TO_WEBGL_FORMAT_MAP = {
131: GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
132: GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
133: GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
134: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
135: GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
136: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
137: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
138: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
139: GL_COMPRESSED_RED_RGTC1_EXT,
140: GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,
141: GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
142: GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
147: GL_COMPRESSED_RGB8_ETC2,
148: GL_COMPRESSED_SRGB8_ETC2,
149: GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
150: GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
151: GL_COMPRESSED_RGBA8_ETC2_EAC,
152: GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
153: GL_COMPRESSED_R11_EAC,
154: GL_COMPRESSED_SIGNED_R11_EAC,
155: GL_COMPRESSED_RG11_EAC,
156: GL_COMPRESSED_SIGNED_RG11_EAC,
157: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
158: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
159: GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
160: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
161: GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
162: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
163: GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
164: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
165: GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
166: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
167: GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
168: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
169: GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
170: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
171: GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
172: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
173: GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
174: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
175: GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
176: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
177: GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
178: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
179: GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
180: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
181: GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
182: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
183: GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
184: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
1000054000: GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
1000054001: GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
1000066000: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
1000066001: GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
1000066002: GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
1000066003: GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
1000066004: GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
1000066005: GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
1000066006: GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
1000066007: GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
1000066008: GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
1000066009: GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
1000066010: GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
1000066011: GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
1000066012: GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
1000066013: GL_COMPRESSED_RGBA_ASTC_12x12_KHR
};
/**
* Returns WebGl format based on Vulkan format
* Vulkan to WebGl format mapping provided here http://github.khronos.org/KTX-Specification/#formatMapping
* Vulkan name to format number mapping provided here: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormat.html
* @param vkFormat
* @returns WebGL / OpenGL constant
*/
export function mapVkFormatToWebGL(vkFormat) {
return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];
}
/**
* Returns the canonical loaders.gl texture format corresponding to a Vulkan `vkFormat` value.
* @param vkFormat - Vulkan format constant from the KTX container.
* @returns Canonical texture format string, if known.
*/
export function mapVkFormatToTextureFormat(vkFormat) {
return getTextureFormatFromWebGLFormat(mapVkFormatToWebGL(vkFormat));
}
//# sourceMappingURL=ktx-format-helper.js.map