@onerjs/core 8.55.7 → 8.55.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animation.pure.js +2 -2
- package/Animations/animation.pure.js.map +1 -1
- package/Animations/runtimeAnimation.js +4 -0
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -0
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -0
- package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +2 -2
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.d.ts +15 -0
- package/Cameras/Inputs/followCameraPointersInput.js +18 -3
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.pure.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.pure.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js +1 -1
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +1 -0
- package/Collisions/gpuPicker.js +5 -4
- package/Collisions/gpuPicker.js.map +1 -1
- package/Culling/Helper/boundingInfoHelper.js +1 -1
- package/Culling/Helper/boundingInfoHelper.js.map +1 -1
- package/Culling/boundingSphere.js +7 -4
- package/Culling/boundingSphere.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js +48 -6
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +1 -1
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/abstractEngine.pure.js +2 -2
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engine.d.ts +10 -1
- package/Engines/thinNativeEngine.pure.d.ts +6 -1
- package/Engines/thinNativeEngine.pure.js +29 -2
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.d.ts +3 -63
- package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.js +5 -71
- package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.pure.d.ts +71 -0
- package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.pure.js +86 -0
- package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.pure.js.map +1 -0
- package/FlowGraph/Blocks/Data/pure.d.ts +1 -0
- package/FlowGraph/Blocks/Data/pure.js +1 -0
- package/FlowGraph/Blocks/Data/pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.d.ts +3 -37
- package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.js +5 -39
- package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.pure.d.ts +45 -0
- package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.pure.js +54 -0
- package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.pure.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.d.ts +3 -17
- package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.js +5 -22
- package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.pure.d.ts +25 -0
- package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.pure.js +37 -0
- package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.pure.js.map +1 -0
- package/FlowGraph/Blocks/Event/pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/pure.js +2 -0
- package/FlowGraph/Blocks/Event/pure.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockFactory.d.ts +1 -1
- package/FlowGraph/Blocks/flowGraphBlockFactory.js +198 -172
- package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -1
- package/FrameGraph/frameGraph.js +10 -1
- package/FrameGraph/frameGraph.js.map +1 -1
- package/Gamepads/gamepadManager.d.ts +1 -0
- package/Gamepads/gamepadManager.js +5 -2
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gizmos/scaleGizmo.js +1 -0
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Lights/IES/iesLoader.js +6 -8
- package/Lights/IES/iesLoader.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.js +4 -6
- package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +2 -2
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.js +3 -5
- package/Lights/light.js.map +1 -1
- package/Lights/spotLight.pure.js +1 -1
- package/Lights/spotLight.pure.js.map +1 -1
- package/Materials/Background/backgroundMaterial.pure.d.ts +1 -1
- package/Materials/Background/backgroundMaterial.pure.js +3 -12
- package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +2 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.pure.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.d.ts +1 -1
- package/Materials/PBR/openpbrMaterial.pure.js +3 -12
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.js +3 -12
- package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.pure.js +1 -1
- package/Materials/Textures/renderTargetTexture.pure.js.map +1 -1
- package/Materials/material.pure.js +2 -2
- package/Materials/material.pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +1 -1
- package/Materials/standardMaterial.pure.js +4 -13
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Maths/math.path.js +1 -1
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.polar.js +1 -1
- package/Maths/math.polar.js.map +1 -1
- package/Maths/math.vector.pure.js +4 -3
- package/Maths/math.vector.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +72 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +164 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +2 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +36 -18
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.d.ts +5 -4
- package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.js +25 -8
- package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +2 -2
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mappingBlock.pure.js +2 -2
- package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
- package/Meshes/csg.js +5 -5
- package/Meshes/csg.js.map +1 -1
- package/Meshes/groundMesh.pure.js +1 -1
- package/Meshes/groundMesh.pure.js.map +1 -1
- package/Meshes/mesh.pure.js +2 -2
- package/Meshes/mesh.pure.js.map +1 -1
- package/Misc/deepMerger.js +1 -1
- package/Misc/deepMerger.js.map +1 -1
- package/Misc/dumpTools.pure.js +1 -1
- package/Misc/dumpTools.pure.js.map +1 -1
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Misc/pure.d.ts +1 -0
- package/Misc/pure.js +1 -0
- package/Misc/pure.js.map +1 -1
- package/Misc/shaderImportLoader.d.ts +25 -0
- package/Misc/shaderImportLoader.js +54 -0
- package/Misc/shaderImportLoader.js.map +1 -0
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleClampBlock.pure.d.ts +0 -1
- package/Particles/Node/Blocks/particleClampBlock.pure.js +1 -6
- package/Particles/Node/Blocks/particleClampBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleMathBlock.pure.js +1 -1
- package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleNLerpBlock.pure.js +8 -3
- package/Particles/Node/Blocks/particleNLerpBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleSmoothStepBlock.pure.js +3 -2
- package/Particles/Node/Blocks/particleSmoothStepBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleStepBlock.pure.js +3 -2
- package/Particles/Node/Blocks/particleStepBlock.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.js +1 -1
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.pure.js +1 -1
- package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.d.ts +12 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +15 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +14 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +122 -6
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +7 -0
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +17 -0
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
- package/Rendering/boundingBoxRenderer.pure.js +3 -3
- package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
- package/Rendering/outlineRenderer.pure.js +1 -0
- package/Rendering/outlineRenderer.pure.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.js +1 -1
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/subSurfaceSceneComponent.pure.d.ts +1 -1
- package/Rendering/subSurfaceSceneComponent.pure.js +1 -1
- package/Rendering/subSurfaceSceneComponent.pure.js.map +1 -1
- package/Rendering/utilityLayerRenderer.js +1 -1
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/gaussianSplattingVoxel.fragment.js +4 -10
- package/Shaders/gaussianSplattingVoxel.fragment.js.map +1 -1
- package/Shaders/iblCombineVoxelGrids.fragment.js +1 -1
- package/Shaders/iblCombineVoxelGrids.fragment.js.map +1 -1
- package/Shaders/iblShadowVoxelTracing.fragment.js +24 -7
- package/Shaders/iblShadowVoxelTracing.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/iblVoxelOpacityAtomicMax.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/iblVoxelOpacityAtomicMax.js +13 -0
- package/ShadersWGSL/ShadersInclude/iblVoxelOpacityAtomicMax.js.map +1 -0
- package/ShadersWGSL/gaussianSplattingVoxel.fragment.js +15 -9
- package/ShadersWGSL/gaussianSplattingVoxel.fragment.js.map +1 -1
- package/ShadersWGSL/iblCombineVoxelGrids.fragment.js +1 -1
- package/ShadersWGSL/iblCombineVoxelGrids.fragment.js.map +1 -1
- package/ShadersWGSL/iblCopyVoxelBufferToGrid.compute.d.ts +5 -0
- package/ShadersWGSL/iblCopyVoxelBufferToGrid.compute.js +14 -0
- package/ShadersWGSL/iblCopyVoxelBufferToGrid.compute.js.map +1 -0
- package/ShadersWGSL/iblShadowVoxelTracing.fragment.js +24 -7
- package/ShadersWGSL/iblShadowVoxelTracing.fragment.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid.fragment.js +26 -6
- package/ShadersWGSL/iblVoxelGrid.fragment.js.map +1 -1
- package/SmartAssets/smartAssetManager.pure.js +1 -1
- package/SmartAssets/smartAssetManager.pure.js.map +1 -1
- package/Sprites/thinSprite.js +1 -1
- package/Sprites/thinSprite.js.map +1 -1
- package/XR/features/Layers/WebXRCompositionLayer.d.ts +130 -12
- package/XR/features/Layers/WebXRCompositionLayer.js +192 -3
- package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
- package/XR/features/Layers/WebXRFallbackLayer.d.ts +84 -0
- package/XR/features/Layers/WebXRFallbackLayer.js +137 -0
- package/XR/features/Layers/WebXRFallbackLayer.js.map +1 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +4 -4
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -1
- package/XR/features/WebXRAnchorSystem.pure.d.ts +45 -0
- package/XR/features/WebXRAnchorSystem.pure.js +153 -13
- package/XR/features/WebXRAnchorSystem.pure.js.map +1 -1
- package/XR/features/WebXRLayers.pure.d.ts +171 -8
- package/XR/features/WebXRLayers.pure.js +500 -98
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/features/WebXRLayersFallback.d.ts +5 -0
- package/XR/features/WebXRLayersFallback.js +8 -0
- package/XR/features/WebXRLayersFallback.js.map +1 -0
- package/XR/features/WebXRLayersFallback.pure.d.ts +6 -0
- package/XR/features/WebXRLayersFallback.pure.js +44 -0
- package/XR/features/WebXRLayersFallback.pure.js.map +1 -0
- package/XR/features/WebXRLightEstimation.pure.d.ts +3 -4
- package/XR/features/WebXRLightEstimation.pure.js +22 -21
- package/XR/features/WebXRLightEstimation.pure.js.map +1 -1
- package/XR/features/WebXRMeshDetector.pure.d.ts +5 -0
- package/XR/features/WebXRMeshDetector.pure.js +1 -0
- package/XR/features/WebXRMeshDetector.pure.js.map +1 -1
- package/XR/features/WebXRNearInteraction.pure.js +3 -3
- package/XR/features/WebXRNearInteraction.pure.js.map +1 -1
- package/XR/features/WebXRPlaneDetector.pure.d.ts +9 -5
- package/XR/features/WebXRPlaneDetector.pure.js +12 -8
- package/XR/features/WebXRPlaneDetector.pure.js.map +1 -1
- package/XR/features/pure.d.ts +1 -0
- package/XR/features/pure.js +1 -0
- package/XR/features/pure.js.map +1 -1
- package/XR/webXRCamera.d.ts +2 -0
- package/XR/webXRCamera.js +8 -2
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +19 -5
- package/XR/webXRLayerWrapper.js +9 -0
- package/XR/webXRLayerWrapper.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +4 -4
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +2 -1
- package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +3 -3
- package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -1
- package/package.json +1 -1
- package/scene.pure.d.ts +5 -0
- package/scene.pure.js +25 -0
- package/scene.pure.js.map +1 -1
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
/** This file must only contain pure code and pure imports */
|
|
2
2
|
import { type WebXRSessionManager } from "../webXRSessionManager.js";
|
|
3
3
|
import { WebXRAbstractFeature } from "./WebXRAbstractFeature.js";
|
|
4
|
-
import { type WebXRLayerWrapper } from "../webXRLayerWrapper.js";
|
|
4
|
+
import { type WebXRLayerWrapper, type WebXRSupportedLayerType } from "../webXRLayerWrapper.js";
|
|
5
5
|
import { WebXRWebGLLayerWrapper } from "../webXRWebGLLayer.js";
|
|
6
6
|
import { WebXRProjectionLayerWrapper } from "./Layers/WebXRProjectionLayer.js";
|
|
7
|
-
import { WebXRCompositionLayerWrapper } from "./Layers/WebXRCompositionLayer.js";
|
|
7
|
+
import { WebXRCompositionLayerWrapper, WebXRCubeLayerWrapper, WebXRSpatialLayerWrapper, type WebXRSpatialLayer, type WebXRSpatialLayerType } from "./Layers/WebXRCompositionLayer.js";
|
|
8
8
|
import { type DynamicTexture } from "../../Materials/Textures/dynamicTexture.pure.js";
|
|
9
9
|
import { type LensFlareSystem } from "../../LensFlares/lensFlareSystem.js";
|
|
10
10
|
import { type Nullable } from "../../types.js";
|
|
11
|
+
import { TransformNode } from "../../Meshes/transformNode.pure.js";
|
|
12
|
+
import { type BaseTexture } from "../../Materials/Textures/baseTexture.js";
|
|
13
|
+
import { type WebXRFallbackLayerWrapper, type IWebXRFallbackLayerDimensions } from "./Layers/WebXRFallbackLayer.js";
|
|
14
|
+
export { WebXRCompositionLayerWrapper, WebXRCubeLayerWrapper, WebXRMediaLayerWrapper, WebXRSpatialLayerWrapper } from "./Layers/WebXRCompositionLayer.js";
|
|
15
|
+
export type { WebXRSpatialLayer, WebXRSpatialLayerType } from "./Layers/WebXRCompositionLayer.js";
|
|
16
|
+
export type { IWebXRFallbackLayerDimensions, WebXRFallbackLayerWrapper } from "./Layers/WebXRFallbackLayer.js";
|
|
11
17
|
/**
|
|
12
18
|
* Configuration options of the layers feature
|
|
13
19
|
*/
|
|
@@ -22,6 +28,92 @@ export interface IWebXRLayersOptions {
|
|
|
22
28
|
*/
|
|
23
29
|
projectionLayerInit?: Partial<XRProjectionLayerInit>;
|
|
24
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Common options for creating a graphics-backed WebXR composition layer.
|
|
33
|
+
* @typeParam TWebGLInit the WebGL layer initialization dictionary
|
|
34
|
+
* @typeParam TWebGPUInit the WebGPU layer initialization dictionary
|
|
35
|
+
*/
|
|
36
|
+
export interface IWebXRCompositionLayerCreationOptions<TWebGLInit, TWebGPUInit> {
|
|
37
|
+
/**
|
|
38
|
+
* Initialization values shared with the WebGL Layers API.
|
|
39
|
+
* Babylon supplies the current reference space and projection-layer pixel dimensions when omitted.
|
|
40
|
+
*/
|
|
41
|
+
layerInit?: Partial<TWebGLInit>;
|
|
42
|
+
/**
|
|
43
|
+
* WebGPU-specific initialization overrides.
|
|
44
|
+
* Shared spatial and layout values are copied from `layerInit` before these overrides are applied.
|
|
45
|
+
*/
|
|
46
|
+
gpuLayerInit?: Partial<TWebGPUInit>;
|
|
47
|
+
/**
|
|
48
|
+
* A Babylon node whose world position and rotation will be synchronized with the layer.
|
|
49
|
+
* Babylon creates and owns a node when this is omitted.
|
|
50
|
+
*/
|
|
51
|
+
transformNode?: TransformNode;
|
|
52
|
+
/**
|
|
53
|
+
* Uses a Babylon mesh when the requested native layer factory is unavailable.
|
|
54
|
+
* Import `@babylonjs/core/XR/features/WebXRLayersFallback` to enable this optional fallback.
|
|
55
|
+
* Fallback is disabled by default.
|
|
56
|
+
*/
|
|
57
|
+
fallbackMode?: "none" | "mesh";
|
|
58
|
+
/**
|
|
59
|
+
* A texture to display on the fallback mesh.
|
|
60
|
+
* Required when `fallbackMode` is `"mesh"`.
|
|
61
|
+
*/
|
|
62
|
+
fallbackTexture?: BaseTexture;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Common options for creating an XRMediaBinding layer.
|
|
66
|
+
* @typeParam InitT the media layer initialization dictionary
|
|
67
|
+
*/
|
|
68
|
+
export interface IWebXRMediaLayerCreationOptions<InitT> {
|
|
69
|
+
/**
|
|
70
|
+
* Initialization values for the media layer.
|
|
71
|
+
* Babylon supplies the current reference space when omitted.
|
|
72
|
+
*/
|
|
73
|
+
layerInit?: Partial<InitT>;
|
|
74
|
+
/**
|
|
75
|
+
* A Babylon node whose world position and rotation will be synchronized with the layer.
|
|
76
|
+
* Babylon creates and owns a node when this is omitted.
|
|
77
|
+
*/
|
|
78
|
+
transformNode?: TransformNode;
|
|
79
|
+
/**
|
|
80
|
+
* Uses a Babylon mesh and VideoTexture when XRMediaBinding is unavailable.
|
|
81
|
+
* Import `@babylonjs/core/XR/features/WebXRLayersFallback` to enable this optional fallback.
|
|
82
|
+
* Fallback is disabled by default.
|
|
83
|
+
*/
|
|
84
|
+
fallbackMode?: "none" | "mesh";
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Selects whether a layer is created from a graphics binding or directly from a media element.
|
|
88
|
+
*/
|
|
89
|
+
export type WebXRLayerSource = "graphics" | "media";
|
|
90
|
+
/**
|
|
91
|
+
* The result of creating a spatial WebXR layer.
|
|
92
|
+
* Native wrappers expose an XR composition layer, while fallback wrappers expose a Babylon mesh.
|
|
93
|
+
* @typeParam LayerT the native layer type
|
|
94
|
+
*/
|
|
95
|
+
export type WebXRLayerCreationResult<LayerT extends WebXRSpatialLayer, LayerTypeT extends WebXRSpatialLayerType = WebXRSpatialLayerType> = WebXRSpatialLayerWrapper<LayerT, LayerTypeT> | WebXRFallbackLayerWrapper;
|
|
96
|
+
/**
|
|
97
|
+
* Data supplied to an optional WebXR mesh-fallback implementation.
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
export interface IWebXRFallbackLayerCreationContext {
|
|
101
|
+
scene: WebXRSessionManager["scene"];
|
|
102
|
+
isWebGPU: boolean;
|
|
103
|
+
layerType: WebXRSpatialLayerType;
|
|
104
|
+
transformNode: TransformNode;
|
|
105
|
+
ownsTransformNode: boolean;
|
|
106
|
+
dimensions: IWebXRFallbackLayerDimensions;
|
|
107
|
+
worldScalingFactor: number;
|
|
108
|
+
texture?: BaseTexture;
|
|
109
|
+
video?: HTMLVideoElement;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Registers the optional mesh-fallback implementation without making its rendering dependencies part of projection-only bundles.
|
|
113
|
+
* @param factory creates a fallback wrapper
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
export declare function _RegisterWebXRFallbackLayerFactory(factory: (context: IWebXRFallbackLayerCreationContext) => Nullable<WebXRFallbackLayerWrapper>): void;
|
|
25
117
|
/**
|
|
26
118
|
* Exposes the WebXR Layers API.
|
|
27
119
|
*/
|
|
@@ -41,14 +133,17 @@ export declare class WebXRLayers extends WebXRAbstractFeature {
|
|
|
41
133
|
* Already-created layers
|
|
42
134
|
*/
|
|
43
135
|
private _existingLayers;
|
|
136
|
+
private _fallbackLayers;
|
|
44
137
|
private _glContext;
|
|
45
138
|
private _xrWebGLBinding;
|
|
46
139
|
private _isWebGPU;
|
|
47
140
|
private _xrGPUBinding?;
|
|
141
|
+
private _xrMediaBinding?;
|
|
48
142
|
private _isMultiviewEnabled;
|
|
49
143
|
private _projectionLayerInitialized;
|
|
50
144
|
private _compositionLayerTextureMapping;
|
|
51
145
|
private _layerToRTTProviderMapping;
|
|
146
|
+
private _layerCleanupFunctions;
|
|
52
147
|
constructor(_xrSessionManager: WebXRSessionManager, _options?: IWebXRLayersOptions);
|
|
53
148
|
/**
|
|
54
149
|
* Attach this feature.
|
|
@@ -66,6 +161,11 @@ export declare class WebXRLayers extends WebXRAbstractFeature {
|
|
|
66
161
|
createXRWebGLLayer(params?: XRWebGLLayerInit): WebXRWebGLLayerWrapper;
|
|
67
162
|
private _validateLayerInit;
|
|
68
163
|
private _extendXRLayerInit;
|
|
164
|
+
private _getProjectionLayerDimensions;
|
|
165
|
+
private _createTransformNode;
|
|
166
|
+
private _createFallbackLayer;
|
|
167
|
+
private _createGraphicsLayer;
|
|
168
|
+
private _createMediaLayer;
|
|
69
169
|
/**
|
|
70
170
|
* Creates a new XRProjectionLayer.
|
|
71
171
|
* @param params an object providing configuration options for the new XRProjectionLayer.
|
|
@@ -80,11 +180,52 @@ export declare class WebXRLayers extends WebXRAbstractFeature {
|
|
|
80
180
|
*/
|
|
81
181
|
private _createWebGPUProjectionLayer;
|
|
82
182
|
/**
|
|
83
|
-
*
|
|
84
|
-
* @param options
|
|
85
|
-
* @
|
|
86
|
-
|
|
183
|
+
* Creates a graphics-backed quad layer and adds it to the current XR session.
|
|
184
|
+
* @param options initialization and transform-node options for the layer
|
|
185
|
+
* @returns the created layer wrapper, or `null` when the active graphics binding does not support quad layers
|
|
186
|
+
*/
|
|
187
|
+
createQuadLayer(options?: IWebXRCompositionLayerCreationOptions<XRQuadLayerInit, XRGPUQuadLayerInit>): Nullable<WebXRLayerCreationResult<XRQuadLayer, "XRQuadLayer">>;
|
|
188
|
+
/**
|
|
189
|
+
* Creates a graphics-backed cylinder layer and adds it to the current XR session.
|
|
190
|
+
* @param options initialization and transform-node options for the layer
|
|
191
|
+
* @returns the created layer wrapper, or `null` when the active graphics binding does not support cylinder layers
|
|
192
|
+
*/
|
|
193
|
+
createCylinderLayer(options?: IWebXRCompositionLayerCreationOptions<XRCylinderLayerInit, XRGPUCylinderLayerInit>): Nullable<WebXRLayerCreationResult<XRCylinderLayer, "XRCylinderLayer">>;
|
|
194
|
+
/**
|
|
195
|
+
* Creates a graphics-backed equirectangular layer and adds it to the current XR session.
|
|
196
|
+
* @param options initialization and transform-node options for the layer
|
|
197
|
+
* @returns the created layer wrapper, or `null` when the active graphics binding does not support equirectangular layers
|
|
198
|
+
*/
|
|
199
|
+
createEquirectLayer(options?: IWebXRCompositionLayerCreationOptions<XREquirectLayerInit, XRGPUEquirectLayerInit>): Nullable<WebXRLayerCreationResult<XREquirectLayer, "XREquirectLayer">>;
|
|
200
|
+
/**
|
|
201
|
+
* Creates a graphics-backed cube layer and adds it to the current XR session.
|
|
202
|
+
* Cube layers synchronize only the rotation of their transform node because the WebXR API does not support cube-layer translation.
|
|
203
|
+
* @param options initialization and transform-node options for the layer
|
|
204
|
+
* @returns the created layer wrapper, or `null` when the active graphics binding does not support cube layers
|
|
87
205
|
*/
|
|
206
|
+
createCubeLayer(options?: IWebXRCompositionLayerCreationOptions<XRCubeLayerInit, XRGPUCubeLayerInit>): Nullable<WebXRCubeLayerWrapper | WebXRFallbackLayerWrapper>;
|
|
207
|
+
/**
|
|
208
|
+
* Creates a video-backed quad layer and adds it to the current XR session.
|
|
209
|
+
* @see https://playground.babylonjs.com/#D35HOL#0
|
|
210
|
+
* @param video the video element presented by the XR compositor
|
|
211
|
+
* @param options initialization and transform-node options for the layer
|
|
212
|
+
* @returns the created media layer wrapper, or `null` when XRMediaBinding is unavailable
|
|
213
|
+
*/
|
|
214
|
+
createMediaQuadLayer(video: HTMLVideoElement, options?: IWebXRMediaLayerCreationOptions<XRMediaQuadLayerInit>): Nullable<WebXRLayerCreationResult<XRQuadLayer, "XRQuadLayer">>;
|
|
215
|
+
/**
|
|
216
|
+
* Creates a video-backed cylinder layer and adds it to the current XR session.
|
|
217
|
+
* @param video the video element presented by the XR compositor
|
|
218
|
+
* @param options initialization and transform-node options for the layer
|
|
219
|
+
* @returns the created media layer wrapper, or `null` when XRMediaBinding is unavailable
|
|
220
|
+
*/
|
|
221
|
+
createMediaCylinderLayer(video: HTMLVideoElement, options?: IWebXRMediaLayerCreationOptions<XRMediaCylinderLayerInit>): Nullable<WebXRLayerCreationResult<XRCylinderLayer, "XRCylinderLayer">>;
|
|
222
|
+
/**
|
|
223
|
+
* Creates a video-backed equirectangular layer and adds it to the current XR session.
|
|
224
|
+
* @param video the video element presented by the XR compositor
|
|
225
|
+
* @param options initialization and transform-node options for the layer
|
|
226
|
+
* @returns the created media layer wrapper, or `null` when XRMediaBinding is unavailable
|
|
227
|
+
*/
|
|
228
|
+
createMediaEquirectLayer(video: HTMLVideoElement, options?: IWebXRMediaLayerCreationOptions<XRMediaEquirectLayerInit>): Nullable<WebXRLayerCreationResult<XREquirectLayer, "XREquirectLayer">>;
|
|
88
229
|
private _createQuadLayer;
|
|
89
230
|
/**
|
|
90
231
|
* @experimental
|
|
@@ -110,7 +251,21 @@ export declare class WebXRLayers extends WebXRAbstractFeature {
|
|
|
110
251
|
* Add a new layer to the already-existing list of layers
|
|
111
252
|
* @param wrappedLayer the new layer to add to the existing ones
|
|
112
253
|
*/
|
|
113
|
-
addXRSessionLayer(wrappedLayer: WebXRLayerWrapper): void;
|
|
254
|
+
addXRSessionLayer(wrappedLayer: WebXRLayerWrapper<WebXRSupportedLayerType>): void;
|
|
255
|
+
/**
|
|
256
|
+
* Removes a non-projection layer from the current XR session.
|
|
257
|
+
* @param wrappedLayer the layer wrapper to remove
|
|
258
|
+
* @param dispose whether to dispose the wrapper and destroy its native composition layer
|
|
259
|
+
* @returns whether the layer was present and removed
|
|
260
|
+
*/
|
|
261
|
+
removeXRSessionLayer(wrappedLayer: WebXRLayerWrapper<WebXRSupportedLayerType>, dispose?: boolean): boolean;
|
|
262
|
+
/**
|
|
263
|
+
* Removes either a native spatial layer or a fallback layer created by this feature.
|
|
264
|
+
* @param wrappedLayer the native or fallback layer wrapper to remove
|
|
265
|
+
* @param dispose whether to dispose resources owned by the wrapper
|
|
266
|
+
* @returns whether the wrapper was present and removed
|
|
267
|
+
*/
|
|
268
|
+
removeLayer(wrappedLayer: WebXRLayerCreationResult<WebXRSpatialLayer>, dispose?: boolean): boolean;
|
|
114
269
|
/**
|
|
115
270
|
* Sets the layers to be used by the XR session.
|
|
116
271
|
* Note that you must call this function with any layers you wish to render to
|
|
@@ -120,7 +275,15 @@ export declare class WebXRLayers extends WebXRAbstractFeature {
|
|
|
120
275
|
* as the first layer in the array, which feeds the WebXR camera(s) attached to the session.
|
|
121
276
|
* @param wrappedLayers An array of WebXRLayerWrapper, usually returned from the WebXRLayers createLayer functions.
|
|
122
277
|
*/
|
|
123
|
-
setXRSessionLayers(wrappedLayers?: Array<WebXRLayerWrapper
|
|
278
|
+
setXRSessionLayers(wrappedLayers?: Array<WebXRLayerWrapper<WebXRSupportedLayerType>>): void;
|
|
279
|
+
/**
|
|
280
|
+
* Checks whether the active runtime exposes the factory needed for a layer type.
|
|
281
|
+
* This is a capability check only; creation can still fail when an initialization dictionary is invalid.
|
|
282
|
+
* @param layerType the concrete WebXR layer type
|
|
283
|
+
* @param source whether to check a graphics-backed or media-backed layer
|
|
284
|
+
* @returns whether the requested factory is available
|
|
285
|
+
*/
|
|
286
|
+
isLayerTypeSupported(layerType: WebXRSpatialLayerType | "XRProjectionLayer", source?: WebXRLayerSource): boolean;
|
|
124
287
|
isCompatible(): boolean;
|
|
125
288
|
/**
|
|
126
289
|
* Dispose this feature and all of the resources attached.
|