@awayjs/stage
Version:
Stage for AwayJS
117 lines • 6.48 kB
TypeScript
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