babylon.mixins.ts 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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. }
  22. interface WebGLRenderingContext {
  23. drawArraysInstanced(mode: number, first: number, count: number, primcount: number): void;
  24. drawElementsInstanced(mode: number, count: number, type: number, offset: number, primcount: number): void;
  25. vertexAttribDivisor(index: number, divisor: number): void;
  26. createVertexArray(): any;
  27. bindVertexArray(vao?: WebGLVertexArrayObject | null): void;
  28. deleteVertexArray(vao: WebGLVertexArrayObject): void;
  29. blitFramebuffer(srcX0: number, srcY0: number, srcX1: number, srcY1: number, dstX0: number, dstY0: number, dstX1: number, dstY1: number, mask: number, filter: number): void;
  30. renderbufferStorageMultisample(target: number, samples: number, internalformat: number, width: number, height: number): void;
  31. bindBufferBase(target: number, index: number, buffer: WebGLBuffer | null): void;
  32. getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): number;
  33. uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: number, uniformBlockBinding: number): void;
  34. // Queries
  35. createQuery(): WebGLQuery;
  36. deleteQuery(query: WebGLQuery): void;
  37. beginQuery(target: number, query: WebGLQuery): void;
  38. endQuery(target: number): void;
  39. getQueryParameter(query: WebGLQuery, pname: number): any;
  40. getQuery(target: number, pname: number): any;
  41. MAX_SAMPLES: number;
  42. RGBA8: number;
  43. READ_FRAMEBUFFER: number;
  44. DRAW_FRAMEBUFFER: number;
  45. UNIFORM_BUFFER: number;
  46. HALF_FLOAT_OES: number;
  47. RGBA16F: number;
  48. RGBA32F: number;
  49. DEPTH24_STENCIL8: number;
  50. /* Multiple Render Targets */
  51. drawBuffers(buffers: number[]): void;
  52. readBuffer(src: number): void;
  53. readonly COLOR_ATTACHMENT0: number; // 0x8CE1
  54. readonly COLOR_ATTACHMENT1: number; // 0x8CE2
  55. readonly COLOR_ATTACHMENT2: number; // 0x8CE3
  56. readonly COLOR_ATTACHMENT3: number; // 0x8CE4
  57. // Occlusion Query
  58. ANY_SAMPLES_PASSED_CONSERVATIVE: number;
  59. ANY_SAMPLES_PASSED: number;
  60. QUERY_RESULT_AVAILABLE: number;
  61. QUERY_RESULT: number;
  62. }
  63. interface Document {
  64. mozCancelFullScreen(): void;
  65. msCancelFullScreen(): void;
  66. mozFullScreen: boolean;
  67. msIsFullScreen: boolean;
  68. fullscreen: boolean;
  69. mozPointerLockElement: HTMLElement;
  70. msPointerLockElement: HTMLElement;
  71. webkitPointerLockElement: HTMLElement;
  72. }
  73. interface HTMLCanvasElement {
  74. msRequestPointerLock?(): void;
  75. mozRequestPointerLock?(): void;
  76. webkitRequestPointerLock?(): void;
  77. }
  78. interface CanvasRenderingContext2D {
  79. msImageSmoothingEnabled: boolean;
  80. }
  81. interface WebGLBuffer {
  82. references: number;
  83. capacity: number;
  84. is32Bits: boolean;
  85. }
  86. interface WebGLProgram {
  87. transformFeedback?: WebGLTransformFeedback | null;
  88. __SPECTOR_rebuildProgram?: ((vertexSourceCode: string, fragmentSourceCode: string, onCompiled: (program: WebGLProgram) => void, onError: (message: string) => void) => void) | null;
  89. }
  90. interface MouseEvent {
  91. mozMovementX: number;
  92. mozMovementY: number;
  93. webkitMovementX: number;
  94. webkitMovementY: number;
  95. msMovementX: number;
  96. msMovementY: number;
  97. }
  98. interface Navigator {
  99. getVRDisplays: () => any;
  100. mozGetVRDevices: (any: any) => any;
  101. webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
  102. mozGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
  103. msGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
  104. webkitGetGamepads(): Gamepad[];
  105. msGetGamepads(): Gamepad[];
  106. webkitGamepads(): Gamepad[];
  107. }
  108. interface HTMLVideoElement {
  109. mozSrcObject: any;
  110. }
  111. interface Screen {
  112. orientation: string;
  113. mozOrientation: string;
  114. }
  115. interface Math {
  116. fround(x: number): number;
  117. imul(a: number, b: number): number;
  118. }
  119. interface GamepadPose {
  120. hasOrientation: boolean;
  121. hasPosition: boolean;
  122. position?: Float32Array;
  123. linearVelocity?: Float32Array;
  124. linearAcceleration?: Float32Array;
  125. orientation?: Float32Array;
  126. angularVelocity?: Float32Array;
  127. angularAcceleration?: Float32Array;
  128. }
  129. interface EXT_disjoint_timer_query {
  130. QUERY_COUNTER_BITS_EXT: number;
  131. TIME_ELAPSED_EXT: number;
  132. TIMESTAMP_EXT: number;
  133. GPU_DISJOINT_EXT: number;
  134. QUERY_RESULT_EXT: number;
  135. QUERY_RESULT_AVAILABLE_EXT: number;
  136. queryCounterEXT(query: WebGLQuery, target: number): void;
  137. createQueryEXT(): WebGLQuery;
  138. beginQueryEXT(target: number, query: WebGLQuery): void;
  139. endQueryEXT(target: number): void;
  140. getQueryObjectEXT(query: WebGLQuery, target: number): any;
  141. deleteQueryEXT(query: WebGLQuery): void;
  142. }
  143. interface WebGLUniformLocation {
  144. _currentState: any;
  145. }
  146. interface Promise<T> {
  147. new (executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
  148. then(onFulfilled?: (fulfillment?: BABYLON.Nullable<T>) => BABYLON.Nullable<Promise<T>>, onRejected?: (reason: string) => void): Promise<T>
  149. }
  150. declare var Promise: Promise<any>;