WebGLState.d.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import { CullFace, Blending, BlendingEquation, BlendingSrcFactor, BlendingDstFactor, DepthModes } from '../../constants';
  2. import { WebGLCapabilities } from './WebGLCapabilities';
  3. import { WebGLExtensions } from './WebGLExtensions';
  4. import { Material } from '../../materials/Material';
  5. import { Vector4 } from '../../math/Vector4';
  6. export class WebGLColorBuffer {
  7. constructor();
  8. setMask( colorMask: boolean ): void;
  9. setLocked( lock: boolean ): void;
  10. setClear( r: number, g: number, b: number, a: number, premultipliedAlpha: boolean ): void;
  11. reset(): void;
  12. }
  13. export class WebGLDepthBuffer {
  14. constructor();
  15. setTest( depthTest: boolean ): void;
  16. setMask( depthMask: boolean ): void;
  17. setFunc( depthFunc: DepthModes ): void;
  18. setLocked( lock: boolean ): void;
  19. setClear( depth: number ): void;
  20. reset(): void;
  21. }
  22. export class WebGLStencilBuffer {
  23. constructor();
  24. setTest( stencilTest: boolean ): void;
  25. setMask( stencilMask: number ): void;
  26. setFunc( stencilFunc: number, stencilRef: number, stencilMask: number ): void;
  27. setOp( stencilFail: number, stencilZFail: number, stencilZPass: number ): void;
  28. setLocked( lock: boolean ): void;
  29. setClear( stencil: number ): void;
  30. reset(): void;
  31. }
  32. export class WebGLState {
  33. constructor( gl: WebGLRenderingContext, extensions: WebGLExtensions, capabilities: WebGLCapabilities );
  34. buffers: {
  35. color: WebGLColorBuffer;
  36. depth: WebGLDepthBuffer;
  37. stencil: WebGLStencilBuffer;
  38. };
  39. initAttributes(): void;
  40. enableAttribute( attribute: number ): void;
  41. enableAttributeAndDivisor( attribute: number, meshPerAttribute: number ): void;
  42. disableUnusedAttributes(): void;
  43. enable( id: number ): void;
  44. disable( id: number ): void;
  45. useProgram( program: any ): boolean;
  46. setBlending(
  47. blending: Blending,
  48. blendEquation?: BlendingEquation,
  49. blendSrc?: BlendingSrcFactor,
  50. blendDst?: BlendingDstFactor,
  51. blendEquationAlpha?: BlendingEquation,
  52. blendSrcAlpha?: BlendingSrcFactor,
  53. blendDstAlpha?: BlendingDstFactor,
  54. premultiplyAlpha?: boolean
  55. ): void;
  56. setMaterial( material: Material, frontFaceCW: boolean ): void;
  57. setFlipSided( flipSided: boolean ): void;
  58. setCullFace( cullFace: CullFace ): void;
  59. setLineWidth( width: number ): void;
  60. setPolygonOffset( polygonoffset: boolean, factor: number, units: number ): void;
  61. setScissorTest( scissorTest: boolean ): void;
  62. activeTexture( webglSlot: number ): void;
  63. bindTexture( webglType: number, webglTexture: any ): void;
  64. unbindTexture(): void;
  65. // Same interface as https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/compressedTexImage2D
  66. compressedTexImage2D(
  67. target: number,
  68. level: number,
  69. internalformat: number,
  70. width: number,
  71. height: number,
  72. border: number,
  73. data: ArrayBufferView
  74. ): void;
  75. // Same interface as https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D
  76. texImage2D(
  77. target: number,
  78. level: number,
  79. internalformat: number,
  80. width: number,
  81. height: number,
  82. border: number,
  83. format: number,
  84. type: number,
  85. pixels: ArrayBufferView | null
  86. ): void;
  87. texImage2D(
  88. target: number,
  89. level: number,
  90. internalformat: number,
  91. format: number,
  92. type: number,
  93. source: any
  94. ): void;
  95. texImage3D(
  96. target: number,
  97. level: number,
  98. internalformat: number,
  99. width: number,
  100. height: number,
  101. depth: number,
  102. border: number,
  103. format: number,
  104. type: number,
  105. pixels: any
  106. ): void;
  107. scissor( scissor: Vector4 ): void;
  108. viewport( viewport: Vector4 ): void;
  109. reset(): void;
  110. }