UNPKG

vtf-js

Version:

A javascript IO library for the Valve Texture Format.

59 lines (58 loc) 3.31 kB
import { VEncodedImageData, VImageData } from './image.js'; import { VFilter, VImageScaler } from './resize.js'; /** Defines an interface that can be used to provide image data to the Vtf encoder. */ export interface VDataProvider { getImage(mip: number, frame: number, face: number, slice: number, allowEncoded?: false): VImageData; getImage(mip: number, frame: number, face: number, slice: number, allowEncoded: true): VImageData | VEncodedImageData; getImage(mip: number, frame: number, face: number, slice: number, allowEncoded?: boolean): VImageData | VEncodedImageData; getSize(mip?: number, frame?: number, face?: number, slice?: number): [number, number]; mipmapCount(): number; frameCount(): number; faceCount(): number; sliceCount(): number; } export interface VMipmapProviderOptions { filter?: VFilter; mipmaps?: number; } /** A class for storing collections of mipmaps, frames, faces, and slices. */ export declare class VDataCollection implements VDataProvider { private __mipmaps; constructor(mipmaps: (VImageData | VEncodedImageData)[][][][]); /** Gets the specified image from the data provider, decoding if necessary unless `allowEncoded` is true. */ getImage(mip: number, frame: number, face: number, slice: number, allowEncoded?: false): VImageData; getImage(mip: number, frame: number, face: number, slice: number, allowEncoded: true): VImageData | VEncodedImageData; getSize(mip?: number, frame?: number, face?: number, slice?: number): [number, number]; mipmapCount(): number; frameCount(): number; faceCount(): number; sliceCount(): number; } /** A class that extends the base provider interface, but automatically generates mipmaps. */ export declare class VMipmapProvider implements VDataProvider { protected __frames: (VImageData | VEncodedImageData)[][][]; protected __mipmap_count: number; protected __filter: VFilter; protected __scalers: VImageScaler[]; constructor(frames: (VImageData | VEncodedImageData)[][][], options?: VMipmapProviderOptions); /** Gets the specified image from the data provider, decoding if necessary unless `allowEncoded` is true. */ getImage(mip: number, frame: number, face: number, slice: number, allowEncoded?: false): VImageData; getImage(mip: number, frame: number, face: number, slice: number, allowEncoded: true): VImageData | VEncodedImageData; getSize(mip?: number, frame?: number, face?: number, slice?: number): [number, number]; mipmapCount(): number; frameCount(): number; faceCount(): number; sliceCount(): number; } /** A class that extends VMipmapProvider but takes an array of frames in the constructor. */ export declare class VFrameCollection extends VMipmapProvider { constructor(frames: VImageData[], options?: VMipmapProviderOptions); } /** A class that extends VMipmapProvider but takes an array of faces in the constructor. */ export declare class VFaceCollection extends VMipmapProvider { constructor(faces: VImageData[], options?: VMipmapProviderOptions); } /** A class that extends VMipmapProvider but takes an array of slices in the constructor. */ export declare class VSliceCollection extends VMipmapProvider { constructor(slices: VImageData[], options?: VMipmapProviderOptions); }