import { Color } from "../helpers/color"; import { mat4, vec3 } from "gl-matrix"; import { Mesh } from "webgl-obj-loader"; export interface Window { container: HTMLDivElement; element: HTMLCanvasElement; context: WebGLRenderingContext; clearColor: Color; width: number; height: number; id: string; fieldOfView: number; aspect: number; zNear: number; zFar: number; projectionMatrix: mat4; } export interface Buffers { position: WebGLBuffer; color: WebGLBuffer; indices: WebGLBuffer; textureCoords: WebGLBuffer; normals: WebGLBuffer; } export interface ShaderProgram { program: WebGLProgram; attribLocations: { [key: string]: number; }; uniformLocations: { [key: string]: WebGLUniformLocation | null; }; } export declare class Display { private window; private nfs; private matrixProfile; private bufferProfile; private renderProfile; private cameraPos; private cameraRot; constructor(id: string); private updateWindow; getCameraPos(): vec3; getCameraRot(): vec3; setCameraPos(pos: vec3): void; moveCameraPos(delta: vec3): void; setCameraRot(rot: vec3): void; rotateCamera(rot: vec3): void; getWindow(): Window; prepareMeshBuffers(program: ShaderProgram, mesh: Mesh, texture?: WebGLTexture): void; renderMesh(program: ShaderProgram, mesh: Mesh, position: vec3, rotation: number, rotationDir: vec3, texture?: WebGLTexture): void; clear(): void; get gl(): WebGLRenderingContext; loadShaderProgram(vsSource: string, fsSource: string): WebGLProgram; private loadShader; loadTexture(url: string): WebGLTexture; initializeOBJModelBuffers(mesh: Mesh): void; loadOBJModel(source: string): Mesh; loadAndInitializeOBJModel(source: string): Mesh; }