webXRLayerWrapper.d.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import type { Nullable } from "../types";
  2. import type { WebXRLayerRenderTargetTextureProvider } from "./webXRRenderTargetTextureProvider";
  3. import type { WebXRSessionManager } from "./webXRSessionManager";
  4. /** Covers all supported subclasses of WebXR's XRCompositionLayer */
  5. export type WebXRCompositionLayerType = "XRProjectionLayer";
  6. export type WebXRQuadLayerType = "XRQuadLayer";
  7. /** Covers all supported subclasses of WebXR's XRLayer */
  8. export type WebXRLayerType = "XRWebGLLayer" | WebXRCompositionLayerType | WebXRQuadLayerType;
  9. /**
  10. * Wrapper over subclasses of XRLayer.
  11. * @internal
  12. */
  13. export declare class WebXRLayerWrapper {
  14. /** The width of the layer's framebuffer. */
  15. getWidth: () => number;
  16. /** The height of the layer's framebuffer. */
  17. getHeight: () => number;
  18. /** The XR layer that this WebXRLayerWrapper wraps. */
  19. readonly layer: XRLayer;
  20. /** The type of XR layer that is being wrapped. */
  21. readonly layerType: WebXRLayerType;
  22. /** Create a render target provider for the wrapped layer. */
  23. private _createRenderTargetTextureProvider;
  24. private _rttWrapper;
  25. /**
  26. * Check if fixed foveation is supported on this device
  27. */
  28. get isFixedFoveationSupported(): boolean;
  29. /**
  30. * Get the fixed foveation currently set, as specified by the webxr specs
  31. * If this returns null, then fixed foveation is not supported
  32. */
  33. get fixedFoveation(): Nullable<number>;
  34. /**
  35. * Set the fixed foveation to the specified value, as specified by the webxr specs
  36. * This value will be normalized to be between 0 and 1, 1 being max foveation, 0 being no foveation
  37. */
  38. set fixedFoveation(value: Nullable<number>);
  39. /**
  40. * Create a render target provider for the wrapped layer.
  41. * @param xrSessionManager The XR Session Manager
  42. * @returns A new render target texture provider for the wrapped layer.
  43. */
  44. createRenderTargetTextureProvider(xrSessionManager: WebXRSessionManager): WebXRLayerRenderTargetTextureProvider;
  45. dispose(): void;
  46. protected constructor(
  47. /** The width of the layer's framebuffer. */
  48. getWidth: () => number,
  49. /** The height of the layer's framebuffer. */
  50. getHeight: () => number,
  51. /** The XR layer that this WebXRLayerWrapper wraps. */
  52. layer: XRLayer,
  53. /** The type of XR layer that is being wrapped. */
  54. layerType: WebXRLayerType,
  55. /** Create a render target provider for the wrapped layer. */
  56. _createRenderTargetTextureProvider: (xrSessionManager: WebXRSessionManager) => WebXRLayerRenderTargetTextureProvider);
  57. }