babylon.2.0.d.ts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. declare module BABYLON {
  2. class _DepthCullingState {
  3. private _isDepthTestDirty;
  4. private _isDepthMaskDirty;
  5. private _isDepthFuncDirty;
  6. private _isCullFaceDirty;
  7. private _isCullDirty;
  8. private _depthTest;
  9. private _depthMask;
  10. private _depthFunc;
  11. private _cull;
  12. private _cullFace;
  13. public isDirty : boolean;
  14. public cullFace : number;
  15. public cull : boolean;
  16. public depthFunc : number;
  17. public depthMask : boolean;
  18. public depthTest : boolean;
  19. public reset(): void;
  20. public apply(gl: WebGLRenderingContext): void;
  21. }
  22. class _AlphaState {
  23. private _isAlphaBlendDirty;
  24. private _isBlendFunctionParametersDirty;
  25. private _alphaBlend;
  26. private _blendFunctionParameters;
  27. public isDirty : boolean;
  28. public alphaBlend : boolean;
  29. public setAlphaBlendFunctionParameters(value0: number, value1: number, value2: number, value3: number): void;
  30. public reset(): void;
  31. public apply(gl: WebGLRenderingContext): void;
  32. }
  33. class EngineCapabilities {
  34. public maxTexturesImageUnits: number;
  35. public maxTextureSize: number;
  36. public maxCubemapTextureSize: number;
  37. public maxRenderTextureSize: number;
  38. public standardDerivatives: boolean;
  39. public s3tc: any;
  40. public textureFloat: boolean;
  41. public textureAnisotropicFilterExtension: any;
  42. public maxAnisotropy: number;
  43. public instancedArrays: any;
  44. public uintIndices: boolean;
  45. }
  46. class Engine {
  47. private static _ALPHA_DISABLE;
  48. private static _ALPHA_ADD;
  49. private static _ALPHA_COMBINE;
  50. private static _DELAYLOADSTATE_NONE;
  51. private static _DELAYLOADSTATE_LOADED;
  52. private static _DELAYLOADSTATE_LOADING;
  53. private static _DELAYLOADSTATE_NOTLOADED;
  54. private _audioEngine;
  55. static ALPHA_DISABLE : number;
  56. static ALPHA_ADD : number;
  57. static ALPHA_COMBINE : number;
  58. static DELAYLOADSTATE_NONE : number;
  59. static DELAYLOADSTATE_LOADED : number;
  60. static DELAYLOADSTATE_LOADING : number;
  61. static DELAYLOADSTATE_NOTLOADED : number;
  62. static Version : string;
  63. static Epsilon: number;
  64. static CollisionsEpsilon: number;
  65. static ShadersRepository: string;
  66. public isFullscreen: boolean;
  67. public isPointerLock: boolean;
  68. public forceWireframe: boolean;
  69. public cullBackFaces: boolean;
  70. public renderEvenInBackground: boolean;
  71. public scenes: Scene[];
  72. private _gl;
  73. private _renderingCanvas;
  74. private _windowIsBackground;
  75. private _onBlur;
  76. private _onFocus;
  77. private _onFullscreenChange;
  78. private _onPointerLockChange;
  79. private _hardwareScalingLevel;
  80. private _caps;
  81. private _pointerLockRequested;
  82. private _alphaTest;
  83. private _runningLoop;
  84. private _renderFunction;
  85. private _resizeLoadingUI;
  86. private _loadingDiv;
  87. private _loadingTextDiv;
  88. private _loadingDivBackgroundColor;
  89. private _depthCullingState;
  90. private _alphaState;
  91. private _loadedTexturesCache;
  92. public _activeTexturesCache: BaseTexture[];
  93. private _currentEffect;
  94. private _compiledEffects;
  95. private _vertexAttribArrays;
  96. private _cachedViewport;
  97. private _cachedVertexBuffers;
  98. private _cachedIndexBuffer;
  99. private _cachedEffectForVertexBuffers;
  100. private _currentRenderTarget;
  101. private _canvasClientRect;
  102. private _uintIndicesCurrentlySet;
  103. private _workingCanvas;
  104. private _workingContext;
  105. constructor(canvas: HTMLCanvasElement, antialias?: boolean, options?: any);
  106. public getAudioEngine(): AudioEngine;
  107. public getAspectRatio(camera: Camera): number;
  108. public getRenderWidth(): number;
  109. public getRenderHeight(): number;
  110. public getRenderingCanvas(): HTMLCanvasElement;
  111. public getRenderingCanvasClientRect(): ClientRect;
  112. public setHardwareScalingLevel(level: number): void;
  113. public getHardwareScalingLevel(): number;
  114. public getLoadedTexturesCache(): WebGLTexture[];
  115. public getCaps(): EngineCapabilities;
  116. public setDepthFunctionToGreater(): void;
  117. public setDepthFunctionToGreaterOrEqual(): void;
  118. public setDepthFunctionToLess(): void;
  119. public setDepthFunctionToLessOrEqual(): void;
  120. public stopRenderLoop(): void;
  121. public _renderLoop(): void;
  122. public runRenderLoop(renderFunction: () => void): void;
  123. public switchFullscreen(requestPointerLock: boolean): void;
  124. public clear(color: any, backBuffer: boolean, depthStencil: boolean): void;
  125. public setViewport(viewport: Viewport, requiredWidth?: number, requiredHeight?: number): void;
  126. public setDirectViewport(x: number, y: number, width: number, height: number): void;
  127. public beginFrame(): void;
  128. public endFrame(): void;
  129. public resize(): void;
  130. public setSize(width: number, height: number): void;
  131. public bindFramebuffer(texture: WebGLTexture): void;
  132. public unBindFramebuffer(texture: WebGLTexture): void;
  133. public flushFramebuffer(): void;
  134. public restoreDefaultFramebuffer(): void;
  135. private _resetVertexBufferBinding();
  136. public createVertexBuffer(vertices: number[]): WebGLBuffer;
  137. public createDynamicVertexBuffer(capacity: number): WebGLBuffer;
  138. public updateDynamicVertexBuffer(vertexBuffer: WebGLBuffer, vertices: any, length?: number): void;
  139. private _resetIndexBufferBinding();
  140. public createIndexBuffer(indices: number[]): WebGLBuffer;
  141. public bindBuffers(vertexBuffer: WebGLBuffer, indexBuffer: WebGLBuffer, vertexDeclaration: number[], vertexStrideSize: number, effect: Effect): void;
  142. public bindMultiBuffers(vertexBuffers: VertexBuffer[], indexBuffer: WebGLBuffer, effect: Effect): void;
  143. public _releaseBuffer(buffer: WebGLBuffer): boolean;
  144. public createInstancesBuffer(capacity: number): WebGLBuffer;
  145. public deleteInstancesBuffer(buffer: WebGLBuffer): void;
  146. public updateAndBindInstancesBuffer(instancesBuffer: WebGLBuffer, data: Float32Array, offsetLocations: number[]): void;
  147. public unBindInstancesBuffer(instancesBuffer: WebGLBuffer, offsetLocations: number[]): void;
  148. public applyStates(): void;
  149. public draw(useTriangles: boolean, indexStart: number, indexCount: number, instancesCount?: number): void;
  150. public drawPointClouds(verticesStart: number, verticesCount: number, instancesCount?: number): void;
  151. public _releaseEffect(effect: Effect): void;
  152. public createEffect(baseName: any, attributesNames: string[], uniformsNames: string[], samplers: string[], defines: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void): Effect;
  153. public createEffectForParticles(fragmentName: string, uniformsNames?: string[], samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void): Effect;
  154. public createShaderProgram(vertexCode: string, fragmentCode: string, defines: string): WebGLProgram;
  155. public getUniforms(shaderProgram: WebGLProgram, uniformsNames: string[]): WebGLUniformLocation[];
  156. public getAttributes(shaderProgram: WebGLProgram, attributesNames: string[]): number[];
  157. public enableEffect(effect: Effect): void;
  158. public setArray(uniform: WebGLUniformLocation, array: number[]): void;
  159. public setMatrices(uniform: WebGLUniformLocation, matrices: Float32Array): void;
  160. public setMatrix(uniform: WebGLUniformLocation, matrix: Matrix): void;
  161. public setFloat(uniform: WebGLUniformLocation, value: number): void;
  162. public setFloat2(uniform: WebGLUniformLocation, x: number, y: number): void;
  163. public setFloat3(uniform: WebGLUniformLocation, x: number, y: number, z: number): void;
  164. public setBool(uniform: WebGLUniformLocation, bool: number): void;
  165. public setFloat4(uniform: WebGLUniformLocation, x: number, y: number, z: number, w: number): void;
  166. public setColor3(uniform: WebGLUniformLocation, color3: Color3): void;
  167. public setColor4(uniform: WebGLUniformLocation, color3: Color3, alpha: number): void;
  168. public setState(culling: boolean, force?: boolean): void;
  169. public setDepthBuffer(enable: boolean): void;
  170. public getDepthWrite(): boolean;
  171. public setDepthWrite(enable: boolean): void;
  172. public setColorWrite(enable: boolean): void;
  173. public setAlphaMode(mode: number): void;
  174. public setAlphaTesting(enable: boolean): void;
  175. public getAlphaTesting(): boolean;
  176. public wipeCaches(): void;
  177. public setSamplingMode(texture: WebGLTexture, samplingMode: number): void;
  178. public createTexture(url: string, noMipmap: boolean, invertY: boolean, scene: Scene, samplingMode?: number, onLoad?: () => void, onError?: () => void, buffer?: any): WebGLTexture;
  179. public createDynamicTexture(width: number, height: number, generateMipMaps: boolean, samplingMode: number): WebGLTexture;
  180. public updateDynamicTexture(texture: WebGLTexture, canvas: HTMLCanvasElement, invertY: boolean): void;
  181. public updateVideoTexture(texture: WebGLTexture, video: HTMLVideoElement, invertY: boolean): void;
  182. public createRenderTargetTexture(size: any, options: any): WebGLTexture;
  183. public createCubeTexture(rootUrl: string, scene: Scene, extensions: string[], noMipmap?: boolean): WebGLTexture;
  184. public _releaseTexture(texture: WebGLTexture): void;
  185. public bindSamplers(effect: Effect): void;
  186. public _bindTexture(channel: number, texture: WebGLTexture): void;
  187. public setTextureFromPostProcess(channel: number, postProcess: PostProcess): void;
  188. public setTexture(channel: number, texture: BaseTexture): void;
  189. public _setAnisotropicLevel(key: number, texture: BaseTexture): void;
  190. public readPixels(x: number, y: number, width: number, height: number): Uint8Array;
  191. public dispose(): void;
  192. public displayLoadingUI(): void;
  193. public loadingUIText : string;
  194. public loadingUIBackgroundColor : string;
  195. public hideLoadingUI(): void;
  196. static isSupported(): boolean;
  197. }
  198. }