@thi.ng/webgl
Version:
WebGL & GLSL abstraction layer
42 lines • 2.45 kB
TypeScript
import { type TypedArray } from "@thi.ng/api/typedarray";
import type { AttribPool } from "@thi.ng/vector-pools";
import type { IWebGLBuffer, IndexBufferSpec } from "./api/buffers.js";
import { type ModelAttributeSpecs, type ModelSpec, type UncompiledModelSpec } from "./api/model.js";
export declare class WebGLArrayBuffer<T extends TypedArray> implements IWebGLBuffer<T> {
gl: WebGLRenderingContext;
buffer: WebGLBuffer;
target: number;
mode: number;
data?: T;
constructor(gl: WebGLRenderingContext, data?: T, target?: GLenum, mode?: GLenum, retain?: boolean);
bind(): boolean;
unbind(): boolean;
release(): boolean;
/**
* Re-applies retained data (from ctor arg) using
* {@link WebGLArrayBuffer.set}. Presumably the underlying data has been
* updated elsewhere, but needs to be reflected to WebGL.
*
* @remarks
* If no data is retained, this method is a no-op.
*/
update(): void;
set(data: T, mode?: number): void;
setChunk(data: T, byteOffset?: number): void;
}
export declare const defBuffer: (gl: WebGLRenderingContext, data?: TypedArray, target?: GLenum, mode?: GLenum, retain?: boolean) => WebGLArrayBuffer<Float32Array<ArrayBufferLike> | Float64Array<ArrayBufferLike> | Int8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Uint8ClampedArray<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>>;
/**
* Takes a model spec (or array of specs) and compiles all buffers (attributes,
* indices) and shaders (if not already compiled), then returns compiled spec(s),
* ready for use with {@link draw}.
*
* @param gl
* @param spec
* @param mode
*/
export declare function compileModel(gl: WebGLRenderingContext, spec: ModelSpec | UncompiledModelSpec, mode?: GLenum): ModelSpec;
export declare function compileModel(gl: WebGLRenderingContext, spec: (ModelSpec | UncompiledModelSpec)[], mode?: GLenum): ModelSpec[];
export declare const compileIndices: (gl: WebGLRenderingContext, index?: IndexBufferSpec, mode?: GLenum) => IndexBufferSpec | undefined;
export declare const compileVAO: (gl: WebGLRenderingContext, spec: ModelSpec) => WebGLVertexArrayObject | undefined;
export declare const compileAttribPool: (gl: WebGLRenderingContext, pool: AttribPool, ids?: string[], target?: GLenum, mode?: GLenum) => ModelAttributeSpecs;
//# sourceMappingURL=buffer.d.ts.map