UNPKG

suzanne

Version:
50 lines (49 loc) 1.56 kB
import { Bitmap } from "./Bitmap"; import { Program } from "./Program"; import { VertexArray } from "./VertexArray"; export declare enum DrawingMode { POINTS = 0, LINES = 1, TRIANGLES = 2 } export interface Canvas3DOptions { depth_test: boolean; backface_culling: boolean; } export interface RenderingTarget { init?(width: number, height: number): void; draw(bitmap: Bitmap): void; } export declare class Canvas3D extends Bitmap { private _ctx; private _screen_space_matrix; private _vertex_array; private _current_gradient; private _current_varyings; private _current_varying_names; private _program; private _options; private _depth_buffer; constructor(width: number, height: number, ctx: RenderingTarget, options?: Partial<Canvas3DOptions>); private _initOptions; private _perspectiveTransform; private _shouldDrawFragment; private _scanLine; private _initVaryings; private _strokeEdge; private _drawLines; private _drawLinesIndexed; private _drawTriangles; private _drawTrianglesIndexed; private _strokeTriangle; private _fillTriangle; private _scanEdges; drawArrays(mode: DrawingMode, first: number, count: number, stroke?: boolean): void; drawElements(mode: DrawingMode, first: number, count: number, stroke?: boolean): void; useProgram(prog: Program): void; bindVertexArray(VAO: VertexArray): void; private _clearDepthBuffer; clearBuffers(): void; draw(): void; readonly options: Canvas3DOptions; }