webgl-dsl
Version:
Thin functional WebGL wrapper with strong typed GLSL DSL
40 lines (39 loc) • 912 B
TypeScript
import { PixelFormat, TextureFilter, TextureFormat } from './enums';
import { Gl } from './gl';
export type TextureConfig = {
/**
* @default TextureFormat.RGBA
*/
format?: TextureFormat;
/**
* @default TextureFilter.NEAREST
*/
filter?: TextureFilter;
} & ({
image: TexImageSource;
} | {
data: ArrayBufferView;
width: number;
height: number;
} | {
width: number;
height: number;
});
/**
* 2D texture
*/
export declare class Texture {
readonly gl: Gl;
readonly handle: WebGLTexture;
readonly width: number;
readonly height: number;
readonly format: TextureFormat;
readonly filter: TextureFilter;
constructor(gl: Gl, config: TextureConfig);
/**
* Read pixels from the texture into an array buffer
*/
read(format?: PixelFormat): Uint8Array;
setFilter(filter: TextureFilter): void;
dispose(): void;
}