import { GLSLSource } from "./glsl"; import { Buffer, BufferArray, BufferType } from "./shader/buffer"; import { Synth } from "./synth"; export interface TextureProps { name?: string; width?: number; height?: number; data?: TexImageSource | Buffer | number[]; type?: "byte" | "ubyte" | "short" | "ushort" | "int" | "uint" | "float" | BufferType; format?: number; internalFormat?: number; len?: number; clamp?: boolean; filter?: "linear" | "nearest"; renderbuffer?: boolean; } export declare class Texture { synth: Synth; name: string; textures: WebGLTexture[]; framebuffers: WebGLFramebuffer[]; width: number; height: number; ratio: number; _clamp?: boolean; _filter?: "linear" | "nearest"; source: TexImageSource | Buffer; _internalFormat: number; _format: number; _type: BufferType; _renderbuffer: boolean; len: number; index: number; needsUpdate: boolean; updates: number; pixelsData: BufferArray; constructor(synth: Synth, props?: TextureProps | Buffer, add?: boolean); type(type: "byte" | "ubyte" | "short" | "ushort" | "int" | "uint" | "float" | BufferType): this; format(format: number, internalFormat?: number): this; internalFormat(internalFormat: number): this; realloc(len: number): this; create(source?: TexImageSource | Buffer | number[] | ArrayBufferView, textureParams?: { clamp?: boolean; filter?: "linear" | "nearest"; }): this; activate(active?: boolean): void; components(): 1 | 2 | 3 | 4; update(): this; putData(data: ArrayBufferView, x: number, y: number, width: number, height: number): void; texture(index?: number): WebGLTexture; framebuffer(index?: number): WebGLFramebuffer; next(): this; length(len: number): this; pixels(data?: BufferArray, flipY?: boolean): BufferArray; resize(width: number, height: number): this; toGLSLSource(): GLSLSource; init(source: Texture | TexImageSource | Buffer | ArrayBufferView | number[]): Texture; out(texture: Texture, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): Texture; toCanvas(canvasOrCtx: HTMLCanvasElement | OffscreenCanvas | CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D): void; toImage(canvas: HTMLCanvasElement): HTMLImageElement; clear(): void; }