UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

56 lines 2.24 kB
import { type TgdMat2, type TgdMat3, type TgdMat4, TgdVec2, TgdVec3, TgdVec4 } from "../math"; import { TgdProgram } from "../program"; import { type TgdCodeBloc } from "../shader"; import type { TgdContext } from "./../context/context"; type UniformBufferObjectType = "bool" | "int" | "uint" | "float" | "double" | "vec2" | "bvec2" | "ivec2" | "uvec2" | "dvec2" | "vec3" | "bvec3" | "ivec3" | "uvec3" | "dvec3" | "vec4" | "bvec4" | "ivec4" | "uvec4" | "dvec4" | "mat2" | "mat3" | "mat4"; export interface TgdUniformBufferObjectOptions<S extends string = string, T extends Record<S, UniformBufferObjectType> = Record<S, UniformBufferObjectType>> { uniforms: T; values?: Partial<{ [key in keyof T]: Values[T[key]]; }>; } export declare class TgdUniformBufferObject<S extends string = string, T extends Record<S, UniformBufferObjectType> = Record<S, UniformBufferObjectType>> { readonly context: TgdContext; readonly bindingPoint: number; readonly values: { [key in S]: Values[T[key]]; }; private readonly data; private readonly view; private readonly uniforms; private readonly buffer; private dirty; constructor(context: TgdContext, { uniforms, values }: TgdUniformBufferObjectOptions<S, T>); get names(): string[]; delete(): void; bindToProgram(program: TgdProgram | WebGLProgram, blockName: string): void; updateData(): void; toShaderCode(blockName: string, instanceName?: string): TgdCodeBloc; debug(caption?: string): void; private makeAccessor; } type Values = { bool: number; int: number; uint: number; float: number; double: number; vec2: Readonly<TgdVec2>; bvec2: Readonly<TgdVec2>; ivec2: Readonly<TgdVec2>; uvec2: Readonly<TgdVec2>; dvec2: Readonly<TgdVec2>; vec3: Readonly<TgdVec3>; bvec3: Readonly<TgdVec3>; ivec3: Readonly<TgdVec3>; uvec3: Readonly<TgdVec3>; dvec3: Readonly<TgdVec3>; vec4: Readonly<TgdVec4>; bvec4: Readonly<TgdVec4>; ivec4: Readonly<TgdVec4>; uvec4: Readonly<TgdVec4>; dvec4: Readonly<TgdVec4>; mat2: Readonly<TgdMat2>; mat3: Readonly<TgdMat3>; mat4: Readonly<TgdMat4>; }; export {}; //# sourceMappingURL=uniform-buffer-object.d.ts.map