UNPKG

@loaders.gl/textures

Version:

Framework-independent loaders for compressed and super compressed (basis) textures

29 lines (26 loc) 854 B
// loaders.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import type {TextureLevel} from '@loaders.gl/schema'; import {isKTX, parseKTX} from './parse-ktx'; import {isDDS, parseDDS} from './parse-dds'; import {isPVR, parsePVR} from './parse-pvr'; /** * Deduces format and parses compressed texture loaded in ArrayBuffer * @param data - binary data of compressed texture * @returns Array of the texture levels */ export function parseCompressedTexture(data: ArrayBuffer): TextureLevel[] { if (isKTX(data)) { // TODO: remove @ts-ignore when `parseKTX` output is normalized to loaders.gl texture format // @ts-ignore return parseKTX(data); } if (isDDS(data)) { return parseDDS(data); } if (isPVR(data)) { return parsePVR(data); } throw new Error('Texture container format not recognized'); }