export type BufferUsage = GLenum; export interface VertexAttributeLayout { readonly index: number; readonly size: number; readonly type: GLenum; readonly normalized?: boolean; readonly stride?: number; readonly offset?: number; readonly divisor?: number; } export declare class VertexBuffer { readonly gl: WebGL2RenderingContext; readonly buffer: WebGLBuffer; readonly target: GLenum; constructor(gl: WebGL2RenderingContext, usage?: BufferUsage, target?: GLenum); bind(): void; upload(data: BufferSource, usage?: BufferUsage): void; update(data: BufferSource, offset?: number): void; dispose(): void; } export declare class IndexBuffer extends VertexBuffer { constructor(gl: WebGL2RenderingContext, usage?: BufferUsage); } export declare class VertexArray { readonly gl: WebGL2RenderingContext; readonly vao: WebGLVertexArrayObject; constructor(gl: WebGL2RenderingContext); bind(): void; configureAttributes(layouts: readonly VertexAttributeLayout[], buffer?: VertexBuffer): void; dispose(): void; } export interface TextureParameters { readonly wrapS?: GLenum; readonly wrapT?: GLenum; readonly minFilter?: GLenum; readonly magFilter?: GLenum; } export declare class Texture2D { readonly gl: WebGL2RenderingContext; readonly texture: WebGLTexture; readonly target: GLenum; width: number; height: number; constructor(gl: WebGL2RenderingContext, target?: GLenum); bind(unit?: number): void; setParameters(params: TextureParameters): void; upload(width: number, height: number, data: TexImageSource | ArrayBufferView | null): void; uploadImage(level: number, internalFormat: GLenum, width: number, height: number, border: number, format: GLenum, type: GLenum, data: TexImageSource | ArrayBufferView | null): void; dispose(): void; } export declare class TextureCubeMap { readonly gl: WebGL2RenderingContext; readonly texture: WebGLTexture; readonly target: GLenum; constructor(gl: WebGL2RenderingContext); bind(unit?: number): void; setParameters(params: TextureParameters): void; uploadFace(faceTarget: GLenum, level: number, internalFormat: GLenum, width: number, height: number, border: number, format: GLenum, type: GLenum, data: ArrayBufferView | null): void; dispose(): void; } export declare class Framebuffer { readonly gl: WebGL2RenderingContext; readonly framebuffer: WebGLFramebuffer; constructor(gl: WebGL2RenderingContext); bind(target?: GLenum): void; attachTexture2D(attachment: GLenum, texture: Texture2D, level?: number): void; dispose(): void; } //# sourceMappingURL=resources.d.ts.map