UNPKG

vtf-js

Version:

A javascript IO library for the Valve Texture Format.

69 lines (68 loc) 2.5 kB
import type { VDataProvider } from './core/providers.js'; import { VCompressionMethods, VFormats } from './core/enums.js'; import { VBaseResource, VResource } from './core/resources.js'; /** Options for use with the {@link Vtf} constructor. */ export interface VConstructorOptions { version?: number; format?: VFormats; flags?: number; meta?: VBaseResource[]; reflectivity?: Float32Array; first_frame?: number; bump_scale?: number; compression_level?: number; compression_method?: VCompressionMethods; } /** * A decoded Vtf. * ```ts * const vtf = await Vtf.decode(myBuffer); * const image = vtf.data.getImage(0, 0, 0, 0); * ``` */ export declare class Vtf { data: VDataProvider; version: number; format: VFormats; flags: number; meta: VResource[]; reflectivity: Float32Array; first_frame: number; bump_scale: number; compression_level: number; compression_method: VCompressionMethods; constructor(data: VDataProvider, options?: VConstructorOptions); /** Encodes this Vtf object into an ArrayBuffer. */ encode(): Promise<ArrayBuffer>; /** * Parses the provided ArrayBuffer into a new Vtf object. * @param data The Vtf file data. * @param header_only (default: `false`) If true, a VFileHeader will be returned instead, which only contains the header contents. * @param lazy_decode (default: `true`) If false, all data in the Vtf will be decoded in this function call. Otherwise, images will only be decoded when requested. */ static decode(data: ArrayBuffer): Promise<Vtf>; static decode(data: ArrayBuffer, header_only: false, lazy_decode?: boolean): Promise<Vtf>; static decode(data: ArrayBuffer, header_only: true, lazy_decode?: boolean): Promise<VFileHeader>; } /** A decoded Vtf header. Returned by `Vtf.decode(...)` when `header_only` is `true`. */ export declare class VFileHeader { version: number; width: number; height: number; flags: number; frames: number; first_frame: number; reflectivity: Float32Array; bump_scale: number; format: VFormats; mipmaps: number; thumb_format: VFormats; thumb_width: number; thumb_height: number; slices: number; compression_method: VCompressionMethods; compression_level: number; compressed_lengths?: number[][][]; /** Creates a new VFileHeader from the provided Vtf object. Used internally when encoding. */ static fromVtf(vtf: Vtf): VFileHeader; }