Guest User

Untitled

a guest
Jun 25th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.11 KB | None | 0 0
  1. export interface XR extends EventTarget {
  2. requestDevice(): Promise<XRDevice>;
  3. ondevicechange?: Function;
  4. }
  5. declare global {
  6. interface Navigator {
  7. xr: XR;
  8. }
  9. }
  10. export interface XRDevice extends EventTarget {
  11. supportsSession(options?: XRSessionCreationOptions): Promise<void>;
  12. requestSession(options?: XRSessionCreationOptions): Promise<XRSession>;
  13. }
  14. declare global {
  15. interface Window {
  16. XRDevice: XRDevice;
  17. }
  18. }
  19.  
  20. export interface XRSessionCreationOptions {
  21. immersive?: boolean;
  22. requestAR?: boolean;
  23. outputContext?: XRPresentationContext;
  24. }
  25. export interface XRSession extends EventTarget {
  26. readonly device: XRDevice;
  27. readonly immersive: boolean;
  28. readonly outputContext: XRPresentationContext;
  29.  
  30. depthNear?: number;
  31. depthFar?: number;
  32. baseLayer?: XRLayer;
  33.  
  34. requestFrameOfReference(type: XRFrameOfReferenceType): Promise<XRFrameOfReference>;
  35. requestFrameOfReference(type: XRFrameOfReferenceType, options: XRFrameOfReferenceOptions): Promise<XRFrameOfReference>;
  36. getInputSources(): XRInputSource[];
  37. requestAnimationFrame(callback: XRFrameRequestCallback): number;
  38. cancelAniamationFrame(handle: Number): void;
  39. end(): Promise<void>;
  40.  
  41. onblur?: Function;
  42. onfocus?: Function;
  43. onresetpose?: Function;
  44. onend?: Function;
  45. onselect?: Function;
  46. onselectstart?: Function;
  47. onselectennd?: Function;
  48. }
  49. declare global {
  50. interface Window {
  51. XRSession: XRSession;
  52. }
  53. }
  54. export interface XRFrameRequestCallback {
  55. (time: number, frame: XRFrame): void;
  56. }
  57.  
  58. export interface XRFrame {
  59. readonly session: XRSession;
  60. readonly views: XRView[];
  61. getDevicePose(coodinateSystem: XRCoordinateSystem): XRDevicePose | null;
  62. getInputPose(inputSource: XRInputSource, coodinateSystem: XRCoordinateSystem): XRInputPose | null;
  63. }
  64. declare global {
  65. interface Window {
  66. XRFrame: XRFrame;
  67. }
  68. }
  69.  
  70. export interface XRCoordinateSystem extends EventTarget {
  71. getTransformTo(othre: XRCoordinateSystem): Float32Array;
  72. }
  73. declare global {
  74. interface Window {
  75. XRCoordinateSystem: XRCoordinateSystem;
  76. }
  77. }
  78. export type XRFrameOfReferenceType = 'head-model' | 'eye-level' | 'stage';
  79.  
  80. export interface XRFrameOfReferenceOptions {
  81. disableStageEmulation?: boolean;
  82. stageEmulationHeight: number;
  83. }
  84. export interface XRFrameOfReference extends XRCoordinateSystem {
  85. readonly bounds?: XRStageBounds;
  86. readonly emulatedHeight: number;
  87. onboundschange?: Function;
  88. }
  89. declare global {
  90. interface Window {
  91. XRFrameOfReference: XRFrameOfReference;
  92. }
  93. }
  94. export interface XRStageBounds {
  95. readonly geometry: XRStageBoundsPoint[];
  96. }
  97. declare global {
  98. interface Window {
  99. XRStageBounds: XRStageBounds;
  100. }
  101. }
  102. export interface XRStageBoundsPoint {
  103. readonly x: number;
  104. readonly z: number;
  105. }
  106. declare global {
  107. interface Window {
  108. XRStageBoundsPoint: XRStageBoundsPoint;
  109. }
  110. }
  111. export type XREye = 'left' | 'right';
  112. export interface XRView {
  113. readonly eye: XREye;
  114. readonly projectionMatrix: Float32Array;
  115. }
  116. declare global {
  117. interface Window {
  118. XRView: XRView;
  119. }
  120. }
  121. export interface XRViewport {
  122. readonly x: number;
  123. readonly y: number;
  124. readonly width: number;
  125. readonly height: number;
  126. }
  127. declare global {
  128. interface Window {
  129. XRViewport: XRViewport;
  130. }
  131. }
  132. export interface XRDevicePose {
  133. readonly poseModelMatrix: Float32Array;
  134. getViewMatrix(view: XRView): Float32Array;
  135. }
  136. declare global {
  137. interface Window {
  138. XRDevicePose: XRDevicePose;
  139. }
  140. }
  141. export type XRHandedness = '' | 'left' | 'right';
  142. export type XRTargetRayMode = 'gazing' | 'pointing' | 'tapping';
  143.  
  144. export interface XRInputSource {
  145. readonly handedness: XRHandedness;
  146. readonly targetRayMode: XRTargetRayMode;
  147. }
  148. export interface XRInputPose {
  149. readonly emulatedPosition: boolean;
  150. readonly targetRayMatrix: Float32Array;
  151. readonly gripMatrix?: Float32Array;
  152. }
  153. export interface XRLayer {
  154. }
  155. declare global {
  156. interface Window {
  157. XRLayer: XRLayer;
  158. }
  159. }
  160. export type XRWebGLRenderingContext = WebGLRenderingContext; // | WebGL2RenderingContext;
  161. export interface XRWebGLLayerInit {
  162. antialias: boolean;
  163. depth: boolean;
  164. stencil: boolean;
  165. alpha: boolean;
  166. multiview: boolean;
  167. framebufferScaleFactor: number;
  168. }
  169. export interface XRWebGLLayer extends XRLayer {
  170. constructor(session: XRSession, context: XRWebGLRenderingContext, layerInit?: XRWebGLLayer);
  171. readonly context: XRWebGLRenderingContext;
  172. readonly antialias: boolean;
  173. readonly depth: boolean;
  174. readonly stencil: boolean;
  175. readonly alpha: boolean;
  176. readonly multiview: boolean;
  177. readonly framebuffer: WebGLFramebuffer;
  178. readonly framebufferWidth: number;
  179. readonly framebufferHeight: number;
  180. getViewport(view: XRView): XRViewport | null;
  181. requestViewportScaling(viewportScaleFactor: number): void;
  182.  
  183. // static getNativeFramebufferScaleFactor(session: XRSession): number;
  184. }
  185. declare global {
  186. interface Window {
  187. XRWebGLLayer: XRWebGLLayer;
  188. }
  189. }
  190.  
  191. export interface WebGLContextAttributes {
  192. compatibleXRDevice?: XRDevice;
  193. }
  194.  
  195. export interface WebGLRenderingContextBase {
  196. setCompatibleXRDevice(device: XRDevice): Promise<void>;
  197. }
  198.  
  199. export interface XRPresentationContext {
  200. readonly canvas: HTMLCanvasElement;
  201. }
  202. declare global {
  203. interface Window {
  204. XRPresentationContext: XRPresentationContext;
  205. }
  206. }
  207.  
  208. export interface XRSessionEvent extends Event {
  209. readonly session: XRSession;
  210. }
  211. declare global {
  212. interface Window {
  213. XRSessionEvent: XRSessionEvent;
  214. }
  215. }
  216.  
  217. export interface XRSessionEventInit extends EventInit {
  218. session: XRSession;
  219. }
  220.  
  221. export interface XRInputSourceEvent extends Event {
  222. constructor(type: string, eventInitDict: XRInputSourceEventInit): any;
  223. readonly frame: XRFrame;
  224. readonly inputSource: XRInputSource;
  225. }
  226. declare global {
  227. interface Window {
  228. XRInputSourceEvent: XRInputSourceEvent;
  229. }
  230. }
  231. export interface XRInputSourceEventInit extends EventInit {
  232. frame: XRFrame;
  233. inputSource: XRInputSource;
  234. }
  235. export interface XRCoordinateSystemEvent extends Event {
  236. constructor(type: String, eventInitDict: XRCoordinateSystemEventInit): any;
  237. readonly coordinateSystem: XRCoordinateSystem;
  238. }
  239. declare global {
  240. interface Window {
  241. XRCoordinateSystemEvent: XRCoordinateSystemEvent;
  242. }
  243. }
  244. export interface XRCoordinateSystemEventInit extends EventInit {
  245. coordinateSystem: XRCoordinateSystem;
  246. }
Add Comment
Please, Sign In to add comment