babylon.mixins.ts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. // Mixins
  2. interface Window {
  3. mozIndexedDB: IDBFactory;
  4. webkitIndexedDB: IDBFactory;
  5. msIndexedDB: IDBFactory;
  6. webkitURL: typeof URL;
  7. mozRequestAnimationFrame(callback: FrameRequestCallback): number;
  8. oRequestAnimationFrame(callback: FrameRequestCallback): number;
  9. WebGLRenderingContext: WebGLRenderingContext;
  10. MSGesture: MSGesture;
  11. CANNON: any;
  12. AudioContext: AudioContext;
  13. webkitAudioContext: AudioContext;
  14. PointerEvent: any;
  15. Math: Math;
  16. Uint8Array: Uint8ArrayConstructor;
  17. Float32Array: Float32ArrayConstructor;
  18. mozURL: typeof URL;
  19. msURL: typeof URL;
  20. VRFrameData: any; // WebVR, from specs 1.1
  21. DracoDecoderModule: any;
  22. }
  23. interface WebGLRenderingContext {
  24. drawArraysInstanced(mode: number, first: number, count: number, primcount: number): void;
  25. drawElementsInstanced(mode: number, count: number, type: number, offset: number, primcount: number): void;
  26. vertexAttribDivisor(index: number, divisor: number): void;
  27. createVertexArray(): any;
  28. bindVertexArray(vao?: WebGLVertexArrayObject | null): void;
  29. deleteVertexArray(vao: WebGLVertexArrayObject): void;
  30. blitFramebuffer(srcX0: number, srcY0: number, srcX1: number, srcY1: number, dstX0: number, dstY0: number, dstX1: number, dstY1: number, mask: number, filter: number): void;
  31. renderbufferStorageMultisample(target: number, samples: number, internalformat: number, width: number, height: number): void;
  32. bindBufferBase(target: number, index: number, buffer: WebGLBuffer | null): void;
  33. getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): number;
  34. uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: number, uniformBlockBinding: number): void;
  35. // Queries
  36. createQuery(): WebGLQuery;
  37. deleteQuery(query: WebGLQuery): void;
  38. beginQuery(target: number, query: WebGLQuery): void;
  39. endQuery(target: number): void;
  40. getQueryParameter(query: WebGLQuery, pname: number): any;
  41. getQuery(target: number, pname: number): any;
  42. MAX_SAMPLES: number;
  43. RGBA8: number;
  44. READ_FRAMEBUFFER: number;
  45. DRAW_FRAMEBUFFER: number;
  46. UNIFORM_BUFFER: number;
  47. HALF_FLOAT_OES: number;
  48. RGBA16F: number;
  49. RGBA32F: number;
  50. R32F: number;
  51. RG32F: number;
  52. RGB32F: number;
  53. RED: number;
  54. RG: number;
  55. UNSIGNED_INT_24_8: number;
  56. DEPTH24_STENCIL8: number;
  57. /* Multiple Render Targets */
  58. drawBuffers(buffers: number[]): void;
  59. readBuffer(src: number): void;
  60. readonly COLOR_ATTACHMENT0: number; // 0x8CE1
  61. readonly COLOR_ATTACHMENT1: number; // 0x8CE2
  62. readonly COLOR_ATTACHMENT2: number; // 0x8CE3
  63. readonly COLOR_ATTACHMENT3: number; // 0x8CE4
  64. // Occlusion Query
  65. ANY_SAMPLES_PASSED_CONSERVATIVE: number;
  66. ANY_SAMPLES_PASSED: number;
  67. QUERY_RESULT_AVAILABLE: number;
  68. QUERY_RESULT: number;
  69. }
  70. interface Document {
  71. mozCancelFullScreen(): void;
  72. msCancelFullScreen(): void;
  73. mozFullScreen: boolean;
  74. msIsFullScreen: boolean;
  75. fullscreen: boolean;
  76. mozPointerLockElement: HTMLElement;
  77. msPointerLockElement: HTMLElement;
  78. webkitPointerLockElement: HTMLElement;
  79. }
  80. interface HTMLCanvasElement {
  81. msRequestPointerLock?(): void;
  82. mozRequestPointerLock?(): void;
  83. webkitRequestPointerLock?(): void;
  84. }
  85. interface CanvasRenderingContext2D {
  86. msImageSmoothingEnabled: boolean;
  87. }
  88. interface WebGLBuffer {
  89. references: number;
  90. capacity: number;
  91. is32Bits: boolean;
  92. }
  93. interface WebGLProgram {
  94. transformFeedback?: WebGLTransformFeedback | null;
  95. __SPECTOR_rebuildProgram?: ((vertexSourceCode: string, fragmentSourceCode: string, onCompiled: (program: WebGLProgram) => void, onError: (message: string) => void) => void) | null;
  96. }
  97. interface MouseEvent {
  98. mozMovementX: number;
  99. mozMovementY: number;
  100. webkitMovementX: number;
  101. webkitMovementY: number;
  102. msMovementX: number;
  103. msMovementY: number;
  104. }
  105. interface Navigator {
  106. mozGetVRDevices: (any: any) => any;
  107. webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
  108. mozGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
  109. msGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
  110. webkitGetGamepads(): Gamepad[];
  111. msGetGamepads(): Gamepad[];
  112. webkitGamepads(): Gamepad[];
  113. }
  114. interface HTMLVideoElement {
  115. mozSrcObject: any;
  116. }
  117. interface Screen {
  118. orientation: string;
  119. mozOrientation: string;
  120. }
  121. interface Math {
  122. fround(x: number): number;
  123. imul(a: number, b: number): number;
  124. }
  125. interface EXT_disjoint_timer_query {
  126. QUERY_COUNTER_BITS_EXT: number;
  127. TIME_ELAPSED_EXT: number;
  128. TIMESTAMP_EXT: number;
  129. GPU_DISJOINT_EXT: number;
  130. QUERY_RESULT_EXT: number;
  131. QUERY_RESULT_AVAILABLE_EXT: number;
  132. queryCounterEXT(query: WebGLQuery, target: number): void;
  133. createQueryEXT(): WebGLQuery;
  134. beginQueryEXT(target: number, query: WebGLQuery): void;
  135. endQueryEXT(target: number): void;
  136. getQueryObjectEXT(query: WebGLQuery, target: number): any;
  137. deleteQueryEXT(query: WebGLQuery): void;
  138. }
  139. interface WebGLUniformLocation {
  140. _currentState: any;
  141. }