UNPKG

suzanne

Version:
52 lines (51 loc) 1.65 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 ContextOptions { depth_test: boolean; backface_culling: boolean; } export interface RenderingTarget { init?(width: number, height: number): void; resize?(width: number, height: number): void; draw(bitmap: Bitmap): void; } export declare class Context extends Bitmap { private _target; private _screen_space_matrix; private _vertex_array; private _current_gradient; private _current_varyings; private _program; private _options; private _depth_buffer; constructor(width: number, height: number, target: RenderingTarget, options?: Partial<ContextOptions>); private initDepthBuffer; 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: ContextOptions; resize(width: number, height: number): void; }