UNPKG

@awayjs/stage

Version:
117 lines 6.48 kB
import { CoordinateSystem, Point, Rectangle } from '@awayjs/core'; import { BitmapImage2D } from '../image/BitmapImage2D'; import { ContextGLBlendEquation, ContextGLBlendFactor } from '../base/ContextGLBlendFactor'; import { ContextGLDrawMode } from '../base/ContextGLDrawMode'; import { ContextGLClearMask } from '../base/ContextGLClearMask'; import { ContextGLCompareMode } from '../base/ContextGLCompareMode'; import { ContextGLMipFilter } from '../base/ContextGLMipFilter'; import { ContextGLStencilAction } from '../base/ContextGLStencilAction'; import { ContextGLTextureFilter } from '../base/ContextGLTextureFilter'; import { ContextGLTriangleFace } from '../base/ContextGLTriangleFace'; import { ContextGLTextureFormat } from '../base/ContextGLTextureFormat'; import { ContextGLWrapMode } from '../base/ContextGLWrapMode'; import { IContextGL } from '../base/IContextGL'; import { CubeTextureWebGL } from './CubeTextureWebGL'; import { IndexBufferWebGL } from './IndexBufferWebGL'; import { ProgramWebGL } from './ProgramWebGL'; import { TextureBaseWebGL } from './TextureBaseWebGL'; import { TextureWebGL } from './TextureWebGL'; import { VertexBufferWebGL } from './VertexBufferWebGL'; import { TextureContextWebGL } from './TextureContextWebGL'; import { VaoContextWebGL, VaoWebGL } from './VaoWebGL'; import { FenceContextWebGL } from './FenceContextWebGL'; import { StatsWebGL } from './StatsWebGL'; export declare class ContextWebGL implements IContextGL { readonly stats: StatsWebGL; private _container; private _width; private _height; private _drawing; private _standardDerivatives; private _viewportState; private _blendState; private _colorMapState; private _clearColorState; private _clearSD; private _depthState; private _stencilState; private _cullState; _gl: WebGLRenderingContext | WebGL2RenderingContext; _currentProgram: ProgramWebGL; _texContext: TextureContextWebGL; _vaoContext: VaoContextWebGL; _fenceContext: FenceContextWebGL; private _currentArrayBuffer; private _stencilCompareMode; private _stencilCompareModeBack; private _stencilCompareModeFront; private _stencilReferenceValue; private _stencilReadMask; private _separateStencil; private _lastBoundedIndexBuffer; private _angleInstanced; stateChangeCallback: (name: string) => void; hasInstancing(): boolean; get hasFence(): boolean; private _hasVao; get hasVao(): boolean; private _glVersion; get glVersion(): number; private _pixelRatio; get pixelRatio(): number; set pixelRatio(v: number); get container(): HTMLCanvasElement; set container(value: HTMLCanvasElement); get standardDerivatives(): boolean; constructor(canvas: HTMLCanvasElement, alpha?: boolean); assertLost(when: string): void; private initWebGL; gl(): WebGLRenderingContext; clear(red?: number, green?: number, blue?: number, alpha?: number, depth?: number, stencil?: number, mask?: ContextGLClearMask): void; configureBackBuffer(width: number, height: number, antiAlias: number, enableDepthAndStencil?: boolean): void; createCubeTexture(size: number, _format: ContextGLTextureFormat, _optimizeForRenderToTexture: boolean, _streamingLevels?: number): CubeTextureWebGL; createIndexBuffer(numIndices: number): IndexBufferWebGL; createProgram(): ProgramWebGL; createTexture(width: number, height: number, _format: ContextGLTextureFormat, _optimizeForRenderToTexture: boolean, _streamingLevels?: number): TextureWebGL; createVertexBuffer(numVertices: number, dataPerVertex: number): VertexBufferWebGL; createVao(): VaoWebGL; dispose(): void; drawToBitmapImage2D(destination: BitmapImage2D, invalidate?: boolean, async?: boolean): undefined | Promise<boolean>; private _instancedEnabled; private _instancesCount; /** * Begin instanced rendering, can't be disabled until drawArrays or drawElements will called * @param count Count of instances that will be rendered */ beginInstancedRender(count?: number): void; drawIndices(mode: ContextGLDrawMode, indexBuffer: IndexBufferWebGL, firstIndex?: number, numIndices?: number): void; bindIndexBuffer(indexBuffer: IndexBufferWebGL): void; drawVertices(mode: ContextGLDrawMode, firstVertex?: number, numVertices?: number): void; present(): void; setBlendState(enable: boolean): void; setBlendEquation(equationRGB: ContextGLBlendEquation, equationA?: ContextGLBlendEquation): void; setBlendFactors(sourceFactor: ContextGLBlendFactor, destinationFactor: ContextGLBlendFactor, sourceAlphaFactor?: ContextGLBlendFactor, destinationAlphaFactor?: ContextGLBlendFactor): void; setColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void; setCulling(triangleFaceToCull: ContextGLTriangleFace, coordinateSystem?: CoordinateSystem): void; setDepthTest(depthMask: boolean, passCompareMode: ContextGLCompareMode): void; setViewport(x: number, y: number, width: number, height: number): void; enableDepth(): void; disableDepth(): void; enableStencil(): void; disableStencil(): void; setStencilActions(triangleFace?: ContextGLTriangleFace, compareMode?: ContextGLCompareMode, actionOnBothPass?: ContextGLStencilAction, actionOnDepthFail?: ContextGLStencilAction, actionOnDepthPassStencilFail?: ContextGLStencilAction, coordinateSystem?: CoordinateSystem): void; setStencilReferenceValue(referenceValue: number, readMask?: number, writeMask?: number): void; setProgram(program: ProgramWebGL): void; setProgramConstantsFromArray(programType: number, data: Float32Array): void; setScissorRectangle(rect: Rectangle): void; setTextureAt(sampler: number, texture: TextureBaseWebGL): void; setSamplerStateAt(sampler: number, wrap: ContextGLWrapMode, filter: ContextGLTextureFilter, mipfilter: ContextGLMipFilter): void; setVertexBufferAt(index: number, buffer: VertexBufferWebGL, bufferOffset?: number, format?: number): void; setRenderToTexture(target: TextureBaseWebGL, enableDepthAndStencil?: boolean, antiAlias?: number, _surfaceSelector?: number, _mipmapSelector?: number): void; setRenderToBackBuffer(): void; copyToTexture(target: TextureBaseWebGL, rect: Rectangle, destPoint: Point): void; private updateBlendStatus; finish(): void; private translateTriangleFace; } //# sourceMappingURL=ContextWebGL.d.ts.map