webgl.d.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. interface WebGLProgram {
  2. context?: WebGLRenderingContext;
  3. vertexShader?: WebGLShader;
  4. fragmentShader?: WebGLShader;
  5. isParallelCompiled: boolean;
  6. onCompiled?: () => void;
  7. }
  8. interface WebGLRenderingContext {
  9. drawArraysInstanced(mode: number, first: number, count: number, primcount: number): void;
  10. drawElementsInstanced(mode: number, count: number, type: number, offset: number, primcount: number): void;
  11. vertexAttribDivisor(index: number, divisor: number): void;
  12. createVertexArray(): any;
  13. bindVertexArray(vao?: WebGLVertexArrayObject | null): void;
  14. deleteVertexArray(vao: WebGLVertexArrayObject): void;
  15. blitFramebuffer(srcX0: number, srcY0: number, srcX1: number, srcY1: number, dstX0: number, dstY0: number, dstX1: number, dstY1: number, mask: number, filter: number): void;
  16. renderbufferStorageMultisample(target: number, samples: number, internalformat: number, width: number, height: number): void;
  17. bindBufferBase(target: number, index: number, buffer: WebGLBuffer | null): void;
  18. getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): number;
  19. uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: number, uniformBlockBinding: number): void;
  20. // Queries
  21. createQuery(): WebGLQuery;
  22. deleteQuery(query: WebGLQuery): void;
  23. beginQuery(target: number, query: WebGLQuery): void;
  24. endQuery(target: number): void;
  25. getQueryParameter(query: WebGLQuery, pname: number): any;
  26. getQuery(target: number, pname: number): any;
  27. MAX_SAMPLES: number;
  28. RGBA8: number;
  29. READ_FRAMEBUFFER: number;
  30. DRAW_FRAMEBUFFER: number;
  31. UNIFORM_BUFFER: number;
  32. HALF_FLOAT_OES: number;
  33. RGBA16F: number;
  34. RGBA32F: number;
  35. R32F: number;
  36. RG32F: number;
  37. RGB32F: number;
  38. R16F: number;
  39. RG16F: number;
  40. RGB16F: number;
  41. RED: number;
  42. RG: number;
  43. R8: number;
  44. RG8: number;
  45. UNSIGNED_INT_24_8: number;
  46. DEPTH24_STENCIL8: number;
  47. /* Multiple Render Targets */
  48. drawBuffers(buffers: number[]): void;
  49. readBuffer(src: number): void;
  50. readonly COLOR_ATTACHMENT0: number; // 0x8CE1
  51. readonly COLOR_ATTACHMENT1: number; // 0x8CE2
  52. readonly COLOR_ATTACHMENT2: number; // 0x8CE3
  53. readonly COLOR_ATTACHMENT3: number; // 0x8CE4
  54. // Occlusion Query
  55. ANY_SAMPLES_PASSED_CONSERVATIVE: number;
  56. ANY_SAMPLES_PASSED: number;
  57. QUERY_RESULT_AVAILABLE: number;
  58. QUERY_RESULT: number;
  59. }
  60. interface WebGLBuffer {
  61. references: number;
  62. capacity: number;
  63. is32Bits: boolean;
  64. }
  65. interface WebGLProgram {
  66. transformFeedback?: WebGLTransformFeedback | null;
  67. __SPECTOR_rebuildProgram?: ((vertexSourceCode: string, fragmentSourceCode: string, onCompiled: (program: WebGLProgram) => void, onError: (message: string) => void) => void) | null;
  68. }
  69. interface EXT_disjoint_timer_query {
  70. QUERY_COUNTER_BITS_EXT: number;
  71. TIME_ELAPSED_EXT: number;
  72. TIMESTAMP_EXT: number;
  73. GPU_DISJOINT_EXT: number;
  74. QUERY_RESULT_EXT: number;
  75. QUERY_RESULT_AVAILABLE_EXT: number;
  76. queryCounterEXT(query: WebGLQuery, target: number): void;
  77. createQueryEXT(): WebGLQuery;
  78. beginQueryEXT(target: number, query: WebGLQuery): void;
  79. endQueryEXT(target: number): void;
  80. getQueryObjectEXT(query: WebGLQuery, target: number): any;
  81. deleteQueryEXT(query: WebGLQuery): void;
  82. }
  83. interface WebGLUniformLocation {
  84. _currentState: any;
  85. }