@babylonjs/core 5.0.0-alpha.60 → 5.0.0-alpha.64
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.d.ts +20 -0
- package/Animations/animation.js +99 -10
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroup.d.ts +5 -1
- package/Animations/animationGroup.js +19 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animationKey.d.ts +4 -0
- package/Animations/animationKey.js +4 -0
- package/Animations/animationKey.js.map +1 -1
- package/Audio/sound.js +15 -1
- package/Audio/sound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +130 -0
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +134 -0
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -0
- package/BakedVertexAnimation/index.d.ts +2 -0
- package/BakedVertexAnimation/index.js +3 -0
- package/BakedVertexAnimation/index.js.map +1 -0
- package/BakedVertexAnimation/vertexAnimationBaker.d.ts +65 -0
- package/BakedVertexAnimation/vertexAnimationBaker.js +155 -0
- package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -0
- package/Behaviors/Cameras/autoRotationBehavior.d.ts +5 -0
- package/Behaviors/Cameras/autoRotationBehavior.js +7 -0
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Cameras/framingBehavior.d.ts +5 -0
- package/Behaviors/Cameras/framingBehavior.js +8 -1
- package/Behaviors/Cameras/framingBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.js +16 -12
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Bones/bone.d.ts +3 -1
- package/Bones/bone.js +4 -1
- package/Bones/bone.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +4 -6
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +4 -4
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +1 -1
- package/Cameras/VR/vrExperienceHelper.js +1 -1
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/camera.js +8 -2
- package/Cameras/camera.js.map +1 -1
- package/Cameras/targetCamera.js +1 -1
- package/Cameras/targetCamera.js.map +1 -1
- package/Culling/boundingBox.d.ts +4 -0
- package/Culling/boundingBox.js +8 -0
- package/Culling/boundingBox.js.map +1 -1
- package/Debug/physicsViewer.js +1 -1
- package/Debug/physicsViewer.js.map +1 -1
- package/Debug/skeletonViewer.js +2 -2
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/Implementations/{nativeDeviceInputWrapper.d.ts → nativeDeviceInputSystem.d.ts} +11 -22
- package/DeviceInput/Implementations/nativeDeviceInputSystem.js +80 -0
- package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +1 -0
- package/DeviceInput/Implementations/webDeviceInputSystem.d.ts +7 -20
- package/DeviceInput/Implementations/webDeviceInputSystem.js +80 -72
- package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -2
- package/DeviceInput/InputDevices/deviceSourceManager.js +5 -1
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/Interfaces/inputInterfaces.d.ts +6 -13
- package/DeviceInput/Interfaces/inputInterfaces.js.map +1 -1
- package/DeviceInput/deviceInputSystem.d.ts +49 -5
- package/DeviceInput/deviceInputSystem.js +66 -9
- package/DeviceInput/deviceInputSystem.js.map +1 -1
- package/DeviceInput/index.d.ts +1 -1
- package/DeviceInput/index.js +1 -1
- package/DeviceInput/index.js.map +1 -1
- package/Engines/Extensions/engine.dynamicTexture.d.ts +2 -1
- package/Engines/Extensions/engine.dynamicTexture.js +2 -1
- package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/Extensions/engine.multiview.js +17 -6
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +1 -1
- package/Engines/Extensions/engine.views.js +1 -1
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Processors/iShaderProcessor.d.ts +1 -1
- package/Engines/Processors/iShaderProcessor.js.map +1 -1
- package/Engines/Processors/shaderProcessingOptions.d.ts +5 -0
- package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +8 -2
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -11
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js +0 -4
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.js +19 -3
- package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +0 -4
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +13 -0
- package/Engines/WebGPU/webgpuBundleList.js +27 -0
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +3 -3
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +42 -61
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +6 -4
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +17 -8
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +2 -2
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +57 -13
- package/Engines/WebGPU/webgpuConstants.js +62 -13
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +27 -3
- package/Engines/WebGPU/webgpuHardwareTexture.js +12 -2
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -0
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.d.ts +2 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js +23 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -0
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +17 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +7 -2
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +16 -29
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +27 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js +107 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -0
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +4 -4
- package/Engines/WebGPU/webgpuTextureHelper.js +277 -83
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/constants.d.ts +2 -0
- package/Engines/constants.js +2 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +157 -46
- package/Engines/engine.js +38 -1
- package/Engines/engine.js.map +1 -1
- package/Engines/engineFeatures.d.ts +2 -0
- package/Engines/engineFeatures.js.map +1 -1
- package/Engines/index.d.ts +1 -0
- package/Engines/index.js +1 -0
- package/Engines/index.js.map +1 -1
- package/Engines/nativeEngine.js +34 -17
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +1 -0
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +1 -1
- package/Engines/renderTargetWrapper.js +1 -1
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.d.ts +0 -11
- package/Engines/thinEngine.js +12 -40
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +11 -19
- package/Engines/webgpuEngine.js +46 -126
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gizmos/positionGizmo.js +1 -1
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +3 -3
- package/Helpers/sceneHelpers.js +1 -2
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.js +18 -15
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/effectLayer.d.ts +13 -1
- package/Layers/effectLayer.js +115 -65
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +8 -0
- package/Layers/glowLayer.js +7 -3
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +2 -1
- package/Layers/highlightLayer.js +8 -3
- package/Layers/highlightLayer.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -0
- package/Lights/Shadows/cascadedShadowGenerator.js +14 -0
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +4 -0
- package/Lights/Shadows/shadowGenerator.js +31 -3
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.js +10 -1
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.js +1 -1
- package/Lights/pointLight.js.map +1 -1
- package/Lights/spotLight.js +1 -1
- package/Lights/spotLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +20 -4
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +1 -0
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +10 -0
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +31 -0
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/index.d.ts +2 -0
- package/Materials/Node/Blocks/Fragment/index.js +2 -0
- package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.d.ts +41 -0
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +128 -0
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -0
- package/Materials/Node/Blocks/Fragment/twirlBlock.d.ts +49 -0
- package/Materials/Node/Blocks/Fragment/twirlBlock.js +145 -0
- package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -0
- package/Materials/Node/Blocks/Input/inputBlock.js +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -0
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +15 -0
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.d.ts +31 -0
- package/Materials/Node/Blocks/customBlock.js +144 -0
- package/Materials/Node/Blocks/customBlock.js.map +1 -0
- package/Materials/Node/Blocks/index.d.ts +2 -0
- package/Materials/Node/Blocks/index.js +2 -0
- package/Materials/Node/Blocks/index.js.map +1 -1
- package/Materials/Node/Blocks/vectorMergerBlock.js +4 -4
- package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/voronoiNoiseBlock.d.ts +39 -0
- package/Materials/Node/Blocks/voronoiNoiseBlock.js +107 -0
- package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -0
- package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +8 -0
- package/Materials/Node/Blocks/worleyNoise3DBlock.js +34 -2
- package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -0
- package/Materials/Node/nodeMaterial.js +10 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +1 -1
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +5 -0
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/PBR/index.d.ts +4 -0
- package/Materials/PBR/index.js +4 -0
- package/Materials/PBR/index.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +28 -96
- package/Materials/PBR/pbrAnisotropicConfiguration.js +50 -111
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +11 -37
- package/Materials/PBR/pbrBRDFConfiguration.js +39 -52
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +17 -74
- package/Materials/PBR/pbrBaseMaterial.js +75 -183
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +23 -98
- package/Materials/PBR/pbrClearCoatConfiguration.js +91 -143
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +25 -93
- package/Materials/PBR/pbrSheenConfiguration.js +71 -126
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +29 -104
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +158 -204
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +3 -2
- package/Materials/Textures/dynamicTexture.js +5 -3
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/hdrCubeTexture.d.ts +9 -0
- package/Materials/Textures/hdrCubeTexture.js +21 -5
- package/Materials/Textures/hdrCubeTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.d.ts +2 -0
- package/Materials/Textures/mirrorTexture.js +13 -0
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +1 -1
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.d.ts +1 -2
- package/Materials/Textures/thinTexture.js +2 -4
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +1 -1
- package/Materials/Textures/videoTexture.js +1 -1
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/effect.d.ts +6 -1
- package/Materials/effect.js +4 -1
- package/Materials/effect.js.map +1 -1
- package/Materials/fresnelParameters.d.ts +1 -1
- package/Materials/fresnelParameters.js +1 -1
- package/Materials/fresnelParameters.js.map +1 -1
- package/Materials/imageProcessingConfiguration.d.ts +16 -1
- package/Materials/imageProcessingConfiguration.js +31 -0
- package/Materials/imageProcessingConfiguration.js.map +1 -1
- package/Materials/index.d.ts +4 -0
- package/Materials/index.js +4 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.d.ts +43 -2
- package/Materials/material.detailMapConfiguration.d.ts +29 -87
- package/Materials/material.detailMapConfiguration.js +50 -106
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +99 -8
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.d.ts +16 -0
- package/Materials/materialDefines.js +17 -5
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialHelper.d.ts +15 -1
- package/Materials/materialHelper.js +40 -3
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginBase.d.ts +182 -0
- package/Materials/materialPluginBase.js +209 -0
- package/Materials/materialPluginBase.js.map +1 -0
- package/Materials/materialPluginEvent.d.ts +98 -0
- package/Materials/materialPluginEvent.js +21 -0
- package/Materials/materialPluginEvent.js.map +1 -0
- package/Materials/materialPluginFactoryExport.d.ts +40 -0
- package/Materials/materialPluginFactoryExport.js +75 -0
- package/Materials/materialPluginFactoryExport.js.map +1 -0
- package/Materials/materialPluginManager.d.ts +90 -0
- package/Materials/materialPluginManager.js +323 -0
- package/Materials/materialPluginManager.js.map +1 -0
- package/Materials/pushMaterial.d.ts +2 -2
- package/Materials/pushMaterial.js +7 -3
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/shaderMaterial.d.ts +7 -6
- package/Materials/shaderMaterial.js +71 -29
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.js +7 -7
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.d.ts +15 -10
- package/Materials/standardMaterial.js +53 -49
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.js +1 -2
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.color.d.ts +20 -0
- package/Maths/math.color.js +45 -2
- package/Maths/math.color.js.map +1 -1
- package/Maths/math.vector.d.ts +14 -9
- package/Maths/math.vector.js +36 -17
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/boxBuilder.d.ts +1 -1
- package/Meshes/Builders/boxBuilder.js +1 -0
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.d.ts +1 -1
- package/Meshes/Builders/capsuleBuilder.js +1 -1
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.d.ts +17 -17
- package/Meshes/Builders/cylinderBuilder.js +1 -0
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/discBuilder.d.ts +1 -1
- package/Meshes/Builders/discBuilder.js +1 -0
- package/Meshes/Builders/discBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.d.ts +8 -8
- package/Meshes/Builders/groundBuilder.js +2 -0
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/hemisphereBuilder.d.ts +4 -4
- package/Meshes/Builders/hemisphereBuilder.js +1 -0
- package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.d.ts +1 -1
- package/Meshes/Builders/icoSphereBuilder.js +1 -0
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/planeBuilder.d.ts +1 -1
- package/Meshes/Builders/planeBuilder.js +1 -0
- package/Meshes/Builders/planeBuilder.js.map +1 -1
- package/Meshes/Builders/polyhedronBuilder.d.ts +1 -1
- package/Meshes/Builders/polyhedronBuilder.js +1 -0
- package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.d.ts +1 -1
- package/Meshes/Builders/sphereBuilder.js +1 -0
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.d.ts +8 -8
- package/Meshes/Builders/torusBuilder.js +1 -0
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Builders/torusKnotBuilder.d.ts +11 -11
- package/Meshes/Builders/torusKnotBuilder.js +1 -0
- package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +23 -3
- package/Meshes/abstractMesh.js +79 -29
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +3 -0
- package/Meshes/geometry.js +15 -7
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/linesMesh.d.ts +1 -3
- package/Meshes/linesMesh.js +5 -36
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +12 -0
- package/Meshes/mesh.js +186 -117
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.lts.d.ts +8 -8
- package/Meshes/mesh.lts.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +6 -1
- package/Meshes/mesh.vertexData.js +295 -114
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +6 -5
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +8 -8
- package/Meshes/transformNode.js +41 -26
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +2 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +38 -33
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.d.ts +29 -4
- package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -12
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/assetsManager.d.ts +4 -4
- package/Misc/assetsManager.js +2 -2
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.d.ts +2 -2
- package/Misc/basis.js +20 -4
- package/Misc/basis.js.map +1 -1
- package/Misc/coroutine.d.ts +41 -0
- package/Misc/coroutine.js +136 -0
- package/Misc/coroutine.js.map +1 -0
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Misc/interfaces/iPerfViewer.d.ts +4 -0
- package/Misc/interfaces/iPerfViewer.js.map +1 -1
- package/Misc/observableCoroutine.d.ts +9 -10
- package/Misc/observableCoroutine.js +34 -39
- package/Misc/observableCoroutine.js.map +1 -1
- package/Misc/sceneSerializer.js +1 -3
- package/Misc/sceneSerializer.js.map +1 -1
- package/Misc/tools.d.ts +2 -4
- package/Misc/tools.js +6 -10
- package/Misc/tools.js.map +1 -1
- package/Particles/particleSystem.js +22 -16
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/solidParticleSystem.js +29 -5
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/subEmitter.js +1 -0
- package/Particles/subEmitter.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.js +10 -8
- package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -0
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.d.ts +2 -0
- package/Probes/reflectionProbe.js +21 -0
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/boundingBoxRenderer.d.ts +3 -0
- package/Rendering/boundingBoxRenderer.js +49 -14
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/depthPeelingRenderer.d.ts +4 -1
- package/Rendering/depthPeelingRenderer.js +34 -9
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/depthRenderer.d.ts +1 -1
- package/Rendering/depthRenderer.js +2 -2
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/edgesRenderer.js +3 -1
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +0 -2
- package/Rendering/geometryBufferRenderer.js +13 -10
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.js +6 -6
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/renderingGroup.js +5 -1
- package/Rendering/renderingGroup.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
- package/Shaders/ShadersInclude/bakedVertexAnimation.js +7 -0
- package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -0
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
- package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/anaglyph.fragment.js +1 -1
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.js +1 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.d.ts +2 -0
- package/Shaders/background.vertex.js +3 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.js +1 -1
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.js +1 -1
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/blur.fragment.js +1 -1
- package/Shaders/blur.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.js +1 -1
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.js +1 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/clearQuad.vertex.js +1 -1
- package/Shaders/clearQuad.vertex.js.map +1 -1
- package/Shaders/color.fragment.js +1 -1
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.d.ts +2 -0
- package/Shaders/color.vertex.js +3 -1
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.js +1 -1
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.js +1 -1
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/default.fragment.js +1 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.d.ts +2 -0
- package/Shaders/default.vertex.js +3 -1
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/depth.fragment.js +1 -1
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.d.ts +2 -0
- package/Shaders/depth.vertex.js +3 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.js +1 -1
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +1 -1
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.js +1 -1
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.js +1 -1
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.js +1 -1
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.js +1 -1
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/geometry.vertex.d.ts +2 -0
- package/Shaders/geometry.vertex.js +3 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.js +1 -1
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.d.ts +2 -0
- package/Shaders/glowMapGeneration.vertex.js +3 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.js +1 -1
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.js +1 -1
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/grain.fragment.js +1 -1
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.js +1 -1
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.js +1 -1
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/imageProcessing.fragment.js +1 -1
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.js +1 -1
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.js +1 -1
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.js +1 -1
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.js +1 -1
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.js +1 -1
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.js +1 -1
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.js +1 -1
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.js +1 -1
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.js +1 -1
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.js +1 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.js +1 -1
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.js +1 -1
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/outline.fragment.js +1 -1
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.d.ts +2 -0
- package/Shaders/outline.vertex.js +3 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.js +1 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +1 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.js +1 -1
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.js +1 -1
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.js +1 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.d.ts +2 -0
- package/Shaders/pbr.vertex.js +3 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/postprocess.vertex.js +1 -1
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.js +1 -1
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.js +1 -1
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.js +1 -1
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.js +1 -1
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.d.ts +2 -0
- package/Shaders/shadowMap.vertex.js +3 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.js +1 -1
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/sprites.fragment.js +1 -1
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +1 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.js +1 -1
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.js +1 -1
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +1 -1
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.js +1 -1
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +1 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.d.ts +2 -0
- package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +7 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -0
- package/XR/features/WebXRControllerPointerSelection.d.ts +14 -0
- package/XR/features/WebXRControllerPointerSelection.js +55 -21
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +2 -0
- package/XR/features/WebXRHandTracking.js +34 -14
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +78 -0
- package/XR/features/WebXRLayers.js +243 -0
- package/XR/features/WebXRLayers.js.map +1 -0
- package/XR/features/WebXRNearInteraction.d.ts +1 -0
- package/XR/features/WebXRNearInteraction.js +2 -0
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/features/WebXRPlaneDetector.js +8 -12
- package/XR/features/WebXRPlaneDetector.js.map +1 -1
- package/XR/features/index.d.ts +1 -0
- package/XR/features/index.js +1 -0
- package/XR/features/index.js.map +1 -1
- package/XR/native/index.d.ts +1 -0
- package/XR/native/index.js +2 -0
- package/XR/native/index.js.map +1 -0
- package/XR/native/nativeXRRenderTarget.d.ts +44 -0
- package/XR/native/nativeXRRenderTarget.js +81 -0
- package/XR/native/nativeXRRenderTarget.js.map +1 -0
- package/XR/webXRCamera.js +2 -10
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRExperienceHelper.js +15 -13
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +4 -0
- package/XR/webXRFeaturesManager.js +5 -1
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +48 -0
- package/XR/webXRLayerWrapper.js +60 -0
- package/XR/webXRLayerWrapper.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +2 -1
- package/XR/webXRManagedOutputCanvas.js +36 -29
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +55 -0
- package/XR/webXRRenderTargetTextureProvider.js +63 -0
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRSessionManager.d.ts +30 -7
- package/XR/webXRSessionManager.js +62 -64
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +1 -1
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +36 -0
- package/XR/webXRWebGLLayer.js +69 -0
- package/XR/webXRWebGLLayer.js.map +1 -0
- package/abstractScene.d.ts +1 -1
- package/abstractScene.js +1 -1
- package/abstractScene.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.d.ts +30 -1
- package/node.js +12 -0
- package/node.js.map +1 -1
- package/package.json +87 -6
- package/scene.d.ts +14 -0
- package/scene.js +31 -0
- package/scene.js.map +1 -1
- package/DeviceInput/Implementations/nativeDeviceInputWrapper.js +0 -66
- package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +0 -1
|
@@ -16,7 +16,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
16
16
|
return function (scene) {
|
|
17
17
|
var engine = scene.getEngine();
|
|
18
18
|
return {
|
|
19
|
-
id: "
|
|
19
|
+
id: "FPS",
|
|
20
20
|
getData: function () { return engine.getFps(); },
|
|
21
21
|
dispose: defaultDisposeImpl,
|
|
22
22
|
};
|
|
@@ -24,6 +24,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
26
26
|
* Gets the initializer for the strategy used for collection of cpu utilization metrics.
|
|
27
|
+
* Needs the experimental compute pressure API.
|
|
27
28
|
* @returns the initializer for the cpu utilization strategy
|
|
28
29
|
*/
|
|
29
30
|
PerfCollectionStrategy.CpuStrategy = function () {
|
|
@@ -33,7 +34,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
33
34
|
value = update.cpuUtilization;
|
|
34
35
|
});
|
|
35
36
|
return {
|
|
36
|
-
id: "
|
|
37
|
+
id: "CPU utilization",
|
|
37
38
|
getData: function () { return value; },
|
|
38
39
|
dispose: function () { return scene.onComputePressureChanged.remove(computePressureObserver); },
|
|
39
40
|
};
|
|
@@ -46,7 +47,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
46
47
|
PerfCollectionStrategy.TotalMeshesStrategy = function () {
|
|
47
48
|
return function (scene) {
|
|
48
49
|
return {
|
|
49
|
-
id: "
|
|
50
|
+
id: "Total meshes",
|
|
50
51
|
getData: function () { return scene.meshes.length; },
|
|
51
52
|
dispose: defaultDisposeImpl,
|
|
52
53
|
};
|
|
@@ -59,7 +60,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
59
60
|
PerfCollectionStrategy.ActiveMeshesStrategy = function () {
|
|
60
61
|
return function (scene) {
|
|
61
62
|
return {
|
|
62
|
-
id: "
|
|
63
|
+
id: "Active meshes",
|
|
63
64
|
getData: function () { return scene.getActiveMeshes().length; },
|
|
64
65
|
dispose: defaultDisposeImpl,
|
|
65
66
|
};
|
|
@@ -69,10 +70,10 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
69
70
|
* Gets the initializer for the strategy used for collection of active indices metrics.
|
|
70
71
|
* @returns the initializer for the active indices strategy
|
|
71
72
|
*/
|
|
72
|
-
PerfCollectionStrategy.
|
|
73
|
+
PerfCollectionStrategy.ActiveIndicesStrategy = function () {
|
|
73
74
|
return function (scene) {
|
|
74
75
|
return {
|
|
75
|
-
id: "
|
|
76
|
+
id: "Active indices",
|
|
76
77
|
getData: function () { return scene.getActiveIndices(); },
|
|
77
78
|
dispose: defaultDisposeImpl,
|
|
78
79
|
};
|
|
@@ -85,7 +86,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
85
86
|
PerfCollectionStrategy.ActiveFacesStrategy = function () {
|
|
86
87
|
return function (scene) {
|
|
87
88
|
return {
|
|
88
|
-
id: "
|
|
89
|
+
id: "Active faces",
|
|
89
90
|
getData: function () { return scene.getActiveIndices() / 3; },
|
|
90
91
|
dispose: defaultDisposeImpl,
|
|
91
92
|
};
|
|
@@ -98,7 +99,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
98
99
|
PerfCollectionStrategy.ActiveBonesStrategy = function () {
|
|
99
100
|
return function (scene) {
|
|
100
101
|
return {
|
|
101
|
-
id: "
|
|
102
|
+
id: "Active bones",
|
|
102
103
|
getData: function () { return scene.getActiveBones(); },
|
|
103
104
|
dispose: defaultDisposeImpl,
|
|
104
105
|
};
|
|
@@ -111,7 +112,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
111
112
|
PerfCollectionStrategy.ActiveParticlesStrategy = function () {
|
|
112
113
|
return function (scene) {
|
|
113
114
|
return {
|
|
114
|
-
id: "
|
|
115
|
+
id: "Active particles",
|
|
115
116
|
getData: function () { return scene.getActiveParticles(); },
|
|
116
117
|
dispose: defaultDisposeImpl,
|
|
117
118
|
};
|
|
@@ -131,7 +132,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
131
132
|
drawCalls = scene.getEngine()._drawCalls.current;
|
|
132
133
|
});
|
|
133
134
|
return {
|
|
134
|
-
id: "
|
|
135
|
+
id: "Draw calls",
|
|
135
136
|
getData: function () { return drawCalls; },
|
|
136
137
|
dispose: function () {
|
|
137
138
|
scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);
|
|
@@ -147,7 +148,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
147
148
|
PerfCollectionStrategy.TotalLightsStrategy = function () {
|
|
148
149
|
return function (scene) {
|
|
149
150
|
return {
|
|
150
|
-
id: "
|
|
151
|
+
id: "Total lights",
|
|
151
152
|
getData: function () { return scene.lights.length; },
|
|
152
153
|
dispose: defaultDisposeImpl,
|
|
153
154
|
};
|
|
@@ -160,7 +161,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
160
161
|
PerfCollectionStrategy.TotalVerticesStrategy = function () {
|
|
161
162
|
return function (scene) {
|
|
162
163
|
return {
|
|
163
|
-
id: "
|
|
164
|
+
id: "Total vertices",
|
|
164
165
|
getData: function () { return scene.getTotalVertices(); },
|
|
165
166
|
dispose: defaultDisposeImpl,
|
|
166
167
|
};
|
|
@@ -173,7 +174,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
173
174
|
PerfCollectionStrategy.TotalMaterialsStrategy = function () {
|
|
174
175
|
return function (scene) {
|
|
175
176
|
return {
|
|
176
|
-
id: "
|
|
177
|
+
id: "Total materials",
|
|
177
178
|
getData: function () { return scene.materials.length; },
|
|
178
179
|
dispose: defaultDisposeImpl,
|
|
179
180
|
};
|
|
@@ -186,7 +187,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
186
187
|
PerfCollectionStrategy.TotalTexturesStrategy = function () {
|
|
187
188
|
return function (scene) {
|
|
188
189
|
return {
|
|
189
|
-
id: "
|
|
190
|
+
id: "Total textures",
|
|
190
191
|
getData: function () { return scene.textures.length; },
|
|
191
192
|
dispose: defaultDisposeImpl,
|
|
192
193
|
};
|
|
@@ -207,7 +208,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
207
208
|
timeTaken = PrecisionDate.Now - startTime;
|
|
208
209
|
});
|
|
209
210
|
return {
|
|
210
|
-
id: "
|
|
211
|
+
id: "Absolute FPS",
|
|
211
212
|
getData: function () { return 1000.0 / timeTaken; },
|
|
212
213
|
dispose: function () {
|
|
213
214
|
scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);
|
|
@@ -231,7 +232,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
231
232
|
timeTaken = PrecisionDate.Now - startTime;
|
|
232
233
|
});
|
|
233
234
|
return {
|
|
234
|
-
id: "
|
|
235
|
+
id: "Meshes Selection",
|
|
235
236
|
getData: function () { return timeTaken; },
|
|
236
237
|
dispose: function () {
|
|
237
238
|
scene.onBeforeActiveMeshesEvaluationObservable.remove(onBeforeActiveMeshesObserver);
|
|
@@ -255,7 +256,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
255
256
|
timeTaken = PrecisionDate.Now - startTime;
|
|
256
257
|
});
|
|
257
258
|
return {
|
|
258
|
-
id: "
|
|
259
|
+
id: "Render Targets",
|
|
259
260
|
getData: function () { return timeTaken; },
|
|
260
261
|
dispose: function () {
|
|
261
262
|
scene.onBeforeRenderTargetsRenderObservable.remove(onBeforeRenderTargetsObserver);
|
|
@@ -279,7 +280,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
279
280
|
timeTaken = PrecisionDate.Now - startTime;
|
|
280
281
|
});
|
|
281
282
|
return {
|
|
282
|
-
id: "
|
|
283
|
+
id: "Particles",
|
|
283
284
|
getData: function () { return timeTaken; },
|
|
284
285
|
dispose: function () {
|
|
285
286
|
scene.onBeforeParticlesRenderingObservable.remove(onBeforeParticlesObserver);
|
|
@@ -294,20 +295,22 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
294
295
|
*/
|
|
295
296
|
PerfCollectionStrategy.SpritesStrategy = function () {
|
|
296
297
|
return function (scene) {
|
|
298
|
+
var _a, _b;
|
|
297
299
|
var startTime = PrecisionDate.Now;
|
|
298
300
|
var timeTaken = 0;
|
|
299
|
-
var onBeforeSpritesObserver = scene.onBeforeSpritesRenderingObservable.add(function () {
|
|
301
|
+
var onBeforeSpritesObserver = (_a = scene.onBeforeSpritesRenderingObservable) === null || _a === void 0 ? void 0 : _a.add(function () {
|
|
300
302
|
startTime = PrecisionDate.Now;
|
|
301
303
|
});
|
|
302
|
-
var onAfterSpritesObserver = scene.onAfterSpritesRenderingObservable.add(function () {
|
|
304
|
+
var onAfterSpritesObserver = (_b = scene.onAfterSpritesRenderingObservable) === null || _b === void 0 ? void 0 : _b.add(function () {
|
|
303
305
|
timeTaken = PrecisionDate.Now - startTime;
|
|
304
306
|
});
|
|
305
307
|
return {
|
|
306
|
-
id: "
|
|
308
|
+
id: "Sprites",
|
|
307
309
|
getData: function () { return timeTaken; },
|
|
308
310
|
dispose: function () {
|
|
309
|
-
|
|
310
|
-
scene.
|
|
311
|
+
var _a, _b;
|
|
312
|
+
(_a = scene.onBeforeSpritesRenderingObservable) === null || _a === void 0 ? void 0 : _a.remove(onBeforeSpritesObserver);
|
|
313
|
+
(_b = scene.onAfterSpritesRenderingObservable) === null || _b === void 0 ? void 0 : _b.remove(onAfterSpritesObserver);
|
|
311
314
|
},
|
|
312
315
|
};
|
|
313
316
|
};
|
|
@@ -327,7 +330,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
327
330
|
timeTaken = PrecisionDate.Now - startTime;
|
|
328
331
|
});
|
|
329
332
|
return {
|
|
330
|
-
id: "
|
|
333
|
+
id: "Animations",
|
|
331
334
|
getData: function () { return timeTaken; },
|
|
332
335
|
dispose: function () {
|
|
333
336
|
scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);
|
|
@@ -342,20 +345,22 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
342
345
|
*/
|
|
343
346
|
PerfCollectionStrategy.PhysicsStrategy = function () {
|
|
344
347
|
return function (scene) {
|
|
348
|
+
var _a, _b;
|
|
345
349
|
var startTime = PrecisionDate.Now;
|
|
346
350
|
var timeTaken = 0;
|
|
347
|
-
var onBeforePhysicsObserver = scene.onBeforePhysicsObservable.add(function () {
|
|
351
|
+
var onBeforePhysicsObserver = (_a = scene.onBeforePhysicsObservable) === null || _a === void 0 ? void 0 : _a.add(function () {
|
|
348
352
|
startTime = PrecisionDate.Now;
|
|
349
353
|
});
|
|
350
|
-
var onAfterPhysicsObserver = scene.onAfterPhysicsObservable.add(function () {
|
|
354
|
+
var onAfterPhysicsObserver = (_b = scene.onAfterPhysicsObservable) === null || _b === void 0 ? void 0 : _b.add(function () {
|
|
351
355
|
timeTaken = PrecisionDate.Now - startTime;
|
|
352
356
|
});
|
|
353
357
|
return {
|
|
354
|
-
id: "
|
|
358
|
+
id: "Physics",
|
|
355
359
|
getData: function () { return timeTaken; },
|
|
356
360
|
dispose: function () {
|
|
357
|
-
|
|
358
|
-
scene.
|
|
361
|
+
var _a, _b;
|
|
362
|
+
(_a = scene.onBeforePhysicsObservable) === null || _a === void 0 ? void 0 : _a.remove(onBeforePhysicsObserver);
|
|
363
|
+
(_b = scene.onAfterPhysicsObservable) === null || _b === void 0 ? void 0 : _b.remove(onAfterPhysicsObserver);
|
|
359
364
|
},
|
|
360
365
|
};
|
|
361
366
|
};
|
|
@@ -375,7 +380,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
375
380
|
timeTaken = PrecisionDate.Now - startTime;
|
|
376
381
|
});
|
|
377
382
|
return {
|
|
378
|
-
id: "
|
|
383
|
+
id: "Render",
|
|
379
384
|
getData: function () { return timeTaken; },
|
|
380
385
|
dispose: function () {
|
|
381
386
|
scene.onBeforeDrawPhaseObservable.remove(onBeforeDrawPhaseObserver);
|
|
@@ -399,7 +404,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
399
404
|
timeTaken = PrecisionDate.Now - startTime;
|
|
400
405
|
});
|
|
401
406
|
return {
|
|
402
|
-
id: "
|
|
407
|
+
id: "Frame Total",
|
|
403
408
|
getData: function () { return timeTaken; },
|
|
404
409
|
dispose: function () {
|
|
405
410
|
scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);
|
|
@@ -423,7 +428,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
423
428
|
startTime = PrecisionDate.Now;
|
|
424
429
|
});
|
|
425
430
|
return {
|
|
426
|
-
id: "
|
|
431
|
+
id: "Inter-frame",
|
|
427
432
|
getData: function () { return timeTaken; },
|
|
428
433
|
dispose: function () {
|
|
429
434
|
scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);
|
|
@@ -441,7 +446,7 @@ var PerfCollectionStrategy = /** @class */ (function () {
|
|
|
441
446
|
var engineInstrumentation = new EngineInstrumentation(scene.getEngine());
|
|
442
447
|
engineInstrumentation.captureGPUFrameTime = true;
|
|
443
448
|
return {
|
|
444
|
-
id: "
|
|
449
|
+
id: "GPU frame time",
|
|
445
450
|
getData: function () { return Math.max(engineInstrumentation.gpuFrameTimeCounter.current * 0.000001, 0); },
|
|
446
451
|
dispose: function () {
|
|
447
452
|
engineInstrumentation.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performanceViewerCollectionStrategies.js","sourceRoot":"","sources":["../../../../sourceES6/core/Misc/PerformanceViewer/performanceViewerCollectionStrategies.ts"],"names":[],"mappings":"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","sourcesContent":["import { EngineInstrumentation } from \"../../Instrumentation/engineInstrumentation\";\r\nimport { Scene } from \"../../scene\";\r\nimport { PrecisionDate } from \"../precisionDate\";\r\n\r\n/**\r\n * Defines the general structure of what is necessary for a collection strategy.\r\n */\r\nexport interface IPerfViewerCollectionStrategy {\r\n /**\r\n * The id of the strategy.\r\n */\r\n id: string;\r\n /**\r\n * Function which gets the data for the strategy.\r\n */\r\n getData: () => number;\r\n /**\r\n * Function which does any necessary cleanup. Called when performanceViewerCollector.dispose() is called.\r\n */\r\n dispose: () => void;\r\n}\r\n// Dispose which does nothing.\r\nconst defaultDisposeImpl = () => {};\r\n\r\n/**\r\n * Initializer callback for a strategy\r\n */\r\nexport type PerfStrategyInitialization = (scene: Scene) => IPerfViewerCollectionStrategy;\r\n/**\r\n * Defines the predefined strategies used in the performance viewer.\r\n */\r\nexport class PerfCollectionStrategy {\r\n /**\r\n * Gets the initializer for the strategy used for collection of fps metrics\r\n * @returns the initializer for the fps strategy\r\n */\r\n public static FpsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n const engine = scene.getEngine();\r\n return {\r\n id: \"fps\",\r\n getData: () => engine.getFps(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of cpu utilization metrics.\r\n * @returns the initializer for the cpu utilization strategy\r\n */\r\n public static CpuStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let value = 0;\r\n const computePressureObserver = scene.onComputePressureChanged.add((update) => {\r\n value = update.cpuUtilization;\r\n });\r\n return {\r\n id: \"cpu utilization\",\r\n getData: () => value,\r\n dispose: () => scene.onComputePressureChanged.remove(computePressureObserver),\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total meshes metrics.\r\n * @returns the initializer for the total meshes strategy\r\n */\r\n public static TotalMeshesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"total meshes\",\r\n getData: () => scene.meshes.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active meshes metrics.\r\n * @returns the initializer for the active meshes strategy\r\n */\r\n public static ActiveMeshesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"active meshes\",\r\n getData: () => scene.getActiveMeshes().length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active indices metrics.\r\n * @returns the initializer for the active indices strategy\r\n */\r\n public static ActiveIndiciesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"active indices\",\r\n getData: () => scene.getActiveIndices(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active faces metrics.\r\n * @returns the initializer for the active faces strategy\r\n */\r\n public static ActiveFacesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"active faces\",\r\n getData: () => scene.getActiveIndices() / 3,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active bones metrics.\r\n * @returns the initializer for the active bones strategy\r\n */\r\n public static ActiveBonesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"active bones\",\r\n getData: () => scene.getActiveBones(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active particles metrics.\r\n * @returns the initializer for the active particles strategy\r\n */\r\n public static ActiveParticlesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"active particles\",\r\n getData: () => scene.getActiveParticles(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of draw calls metrics.\r\n * @returns the initializer for the draw calls strategy\r\n */\r\n public static DrawCallsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let drawCalls = 0;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n scene.getEngine()._drawCalls.fetchNewFrame();\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n drawCalls = scene.getEngine()._drawCalls.current;\r\n });\r\n\r\n return {\r\n id: \"draw calls\",\r\n getData: () => drawCalls,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total lights metrics.\r\n * @returns the initializer for the total lights strategy\r\n */\r\n public static TotalLightsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"total lights\",\r\n getData: () => scene.lights.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total vertices metrics.\r\n * @returns the initializer for the total vertices strategy\r\n */\r\n public static TotalVerticesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"total vertices\",\r\n getData: () => scene.getTotalVertices(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total materials metrics.\r\n * @returns the initializer for the total materials strategy\r\n */\r\n public static TotalMaterialsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"total materials\",\r\n getData: () => scene.materials.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total textures metrics.\r\n * @returns the initializer for the total textures strategy\r\n */\r\n public static TotalTexturesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"total textures\",\r\n getData: () => scene.textures.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of absolute fps metrics.\r\n * @returns the initializer for the absolute fps strategy\r\n */\r\n public static AbsoluteFpsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 1;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"absolute fps\",\r\n getData: () => 1000.0 / timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of meshes selection time metrics.\r\n * @returns the initializer for the meshes selection time strategy\r\n */\r\n public static MeshesSelectionStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeActiveMeshesObserver = scene.onBeforeActiveMeshesEvaluationObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterActiveMeshesObserver = scene.onAfterActiveMeshesEvaluationObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"meshes selection time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeActiveMeshesEvaluationObservable.remove(onBeforeActiveMeshesObserver);\r\n scene.onAfterActiveMeshesEvaluationObservable.remove(onAfterActiveMeshesObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of render targets time metrics.\r\n * @returns the initializer for the render targets time strategy\r\n */\r\n public static RenderTargetsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeRenderTargetsObserver = scene.onBeforeRenderTargetsRenderObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterRenderTargetsObserver = scene.onAfterRenderTargetsRenderObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"render targets time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeRenderTargetsRenderObservable.remove(onBeforeRenderTargetsObserver);\r\n scene.onAfterRenderTargetsRenderObservable.remove(onAfterRenderTargetsObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of particles time metrics.\r\n * @returns the initializer for the particles time strategy\r\n */\r\n public static ParticlesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeParticlesObserver = scene.onBeforeParticlesRenderingObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterParticlesObserver = scene.onAfterParticlesRenderingObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"particles time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeParticlesRenderingObservable.remove(onBeforeParticlesObserver);\r\n scene.onAfterParticlesRenderingObservable.remove(onAfterParticlesObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of sprites time metrics.\r\n * @returns the initializer for the sprites time strategy\r\n */\r\n public static SpritesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeSpritesObserver = scene.onBeforeSpritesRenderingObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterSpritesObserver = scene.onAfterSpritesRenderingObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"sprites time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeSpritesRenderingObservable.remove(onBeforeSpritesObserver);\r\n scene.onAfterSpritesRenderingObservable.remove(onAfterSpritesObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of animations time metrics.\r\n * @returns the initializer for the animations time strategy\r\n */\r\n public static AnimationsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterAnimationsObserver = scene.onAfterAnimationsObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"animations time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterAnimationsObservable.remove(onAfterAnimationsObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of physics time metrics.\r\n * @returns the initializer for the physics time strategy\r\n */\r\n public static PhysicsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforePhysicsObserver = scene.onBeforePhysicsObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterPhysicsObserver = scene.onAfterPhysicsObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"physics time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforePhysicsObservable.remove(onBeforePhysicsObserver);\r\n scene.onAfterPhysicsObservable.remove(onAfterPhysicsObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of render time metrics.\r\n * @returns the initializer for the render time strategy\r\n */\r\n public static RenderStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeDrawPhaseObserver = scene.onBeforeDrawPhaseObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterDrawPhaseObserver = scene.onAfterDrawPhaseObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"render time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeDrawPhaseObservable.remove(onBeforeDrawPhaseObserver);\r\n scene.onAfterDrawPhaseObservable.remove(onAfterDrawPhaseObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total frame time metrics.\r\n * @returns the initializer for the total frame time strategy\r\n */\r\n public static FrameTotalStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"total frame time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of inter-frame time metrics.\r\n * @returns the initializer for the inter-frame time strategy\r\n */\r\n public static InterFrameStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n return {\r\n id: \"inter-frame time\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of gpu frame time metrics.\r\n * @returns the initializer for the gpu frame time strategy\r\n */\r\n public static GpuFrameTimeStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n const engineInstrumentation = new EngineInstrumentation(scene.getEngine());\r\n engineInstrumentation.captureGPUFrameTime = true;\r\n return {\r\n id: \"gpu frame time\",\r\n getData: () => Math.max(engineInstrumentation.gpuFrameTimeCounter.current * 0.000001, 0),\r\n dispose: () => {\r\n engineInstrumentation.dispose();\r\n },\r\n };\r\n };\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"performanceViewerCollectionStrategies.js","sourceRoot":"","sources":["../../../../sourceES6/core/Misc/PerformanceViewer/performanceViewerCollectionStrategies.ts"],"names":[],"mappings":"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","sourcesContent":["import { EngineInstrumentation } from \"../../Instrumentation/engineInstrumentation\";\r\nimport { Scene } from \"../../scene\";\r\nimport { PrecisionDate } from \"../precisionDate\";\r\n\r\n/**\r\n * Defines the general structure of what is necessary for a collection strategy.\r\n */\r\nexport interface IPerfViewerCollectionStrategy {\r\n /**\r\n * The id of the strategy.\r\n */\r\n id: string;\r\n /**\r\n * Function which gets the data for the strategy.\r\n */\r\n getData: () => number;\r\n /**\r\n * Function which does any necessary cleanup. Called when performanceViewerCollector.dispose() is called.\r\n */\r\n dispose: () => void;\r\n}\r\n// Dispose which does nothing.\r\nconst defaultDisposeImpl = () => {};\r\n\r\n/**\r\n * Initializer callback for a strategy\r\n */\r\nexport type PerfStrategyInitialization = (scene: Scene) => IPerfViewerCollectionStrategy;\r\n/**\r\n * Defines the predefined strategies used in the performance viewer.\r\n */\r\nexport class PerfCollectionStrategy {\r\n /**\r\n * Gets the initializer for the strategy used for collection of fps metrics\r\n * @returns the initializer for the fps strategy\r\n */\r\n public static FpsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n const engine = scene.getEngine();\r\n return {\r\n id: \"FPS\",\r\n getData: () => engine.getFps(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of cpu utilization metrics.\r\n * Needs the experimental compute pressure API.\r\n * @returns the initializer for the cpu utilization strategy\r\n */\r\n public static CpuStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let value = 0;\r\n const computePressureObserver = scene.onComputePressureChanged.add((update) => {\r\n value = update.cpuUtilization;\r\n });\r\n return {\r\n id: \"CPU utilization\",\r\n getData: () => value,\r\n dispose: () => scene.onComputePressureChanged.remove(computePressureObserver),\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total meshes metrics.\r\n * @returns the initializer for the total meshes strategy\r\n */\r\n public static TotalMeshesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Total meshes\",\r\n getData: () => scene.meshes.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active meshes metrics.\r\n * @returns the initializer for the active meshes strategy\r\n */\r\n public static ActiveMeshesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Active meshes\",\r\n getData: () => scene.getActiveMeshes().length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active indices metrics.\r\n * @returns the initializer for the active indices strategy\r\n */\r\n public static ActiveIndicesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Active indices\",\r\n getData: () => scene.getActiveIndices(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active faces metrics.\r\n * @returns the initializer for the active faces strategy\r\n */\r\n public static ActiveFacesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Active faces\",\r\n getData: () => scene.getActiveIndices() / 3,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active bones metrics.\r\n * @returns the initializer for the active bones strategy\r\n */\r\n public static ActiveBonesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Active bones\",\r\n getData: () => scene.getActiveBones(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of active particles metrics.\r\n * @returns the initializer for the active particles strategy\r\n */\r\n public static ActiveParticlesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Active particles\",\r\n getData: () => scene.getActiveParticles(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of draw calls metrics.\r\n * @returns the initializer for the draw calls strategy\r\n */\r\n public static DrawCallsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let drawCalls = 0;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n scene.getEngine()._drawCalls.fetchNewFrame();\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n drawCalls = scene.getEngine()._drawCalls.current;\r\n });\r\n\r\n return {\r\n id: \"Draw calls\",\r\n getData: () => drawCalls,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total lights metrics.\r\n * @returns the initializer for the total lights strategy\r\n */\r\n public static TotalLightsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Total lights\",\r\n getData: () => scene.lights.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total vertices metrics.\r\n * @returns the initializer for the total vertices strategy\r\n */\r\n public static TotalVerticesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Total vertices\",\r\n getData: () => scene.getTotalVertices(),\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total materials metrics.\r\n * @returns the initializer for the total materials strategy\r\n */\r\n public static TotalMaterialsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Total materials\",\r\n getData: () => scene.materials.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total textures metrics.\r\n * @returns the initializer for the total textures strategy\r\n */\r\n public static TotalTexturesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n return {\r\n id: \"Total textures\",\r\n getData: () => scene.textures.length,\r\n dispose: defaultDisposeImpl,\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of absolute fps metrics.\r\n * @returns the initializer for the absolute fps strategy\r\n */\r\n public static AbsoluteFpsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 1;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Absolute FPS\",\r\n getData: () => 1000.0 / timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of meshes selection time metrics.\r\n * @returns the initializer for the meshes selection time strategy\r\n */\r\n public static MeshesSelectionStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeActiveMeshesObserver = scene.onBeforeActiveMeshesEvaluationObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterActiveMeshesObserver = scene.onAfterActiveMeshesEvaluationObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Meshes Selection\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeActiveMeshesEvaluationObservable.remove(onBeforeActiveMeshesObserver);\r\n scene.onAfterActiveMeshesEvaluationObservable.remove(onAfterActiveMeshesObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of render targets time metrics.\r\n * @returns the initializer for the render targets time strategy\r\n */\r\n public static RenderTargetsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeRenderTargetsObserver = scene.onBeforeRenderTargetsRenderObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterRenderTargetsObserver = scene.onAfterRenderTargetsRenderObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Render Targets\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeRenderTargetsRenderObservable.remove(onBeforeRenderTargetsObserver);\r\n scene.onAfterRenderTargetsRenderObservable.remove(onAfterRenderTargetsObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of particles time metrics.\r\n * @returns the initializer for the particles time strategy\r\n */\r\n public static ParticlesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeParticlesObserver = scene.onBeforeParticlesRenderingObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterParticlesObserver = scene.onAfterParticlesRenderingObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Particles\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeParticlesRenderingObservable.remove(onBeforeParticlesObserver);\r\n scene.onAfterParticlesRenderingObservable.remove(onAfterParticlesObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of sprites time metrics.\r\n * @returns the initializer for the sprites time strategy\r\n */\r\n public static SpritesStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeSpritesObserver = scene.onBeforeSpritesRenderingObservable?.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterSpritesObserver = scene.onAfterSpritesRenderingObservable?.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Sprites\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeSpritesRenderingObservable?.remove(onBeforeSpritesObserver);\r\n scene.onAfterSpritesRenderingObservable?.remove(onAfterSpritesObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of animations time metrics.\r\n * @returns the initializer for the animations time strategy\r\n */\r\n public static AnimationsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterAnimationsObserver = scene.onAfterAnimationsObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Animations\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterAnimationsObservable.remove(onAfterAnimationsObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of physics time metrics.\r\n * @returns the initializer for the physics time strategy\r\n */\r\n public static PhysicsStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforePhysicsObserver = scene.onBeforePhysicsObservable?.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterPhysicsObserver = scene.onAfterPhysicsObservable?.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Physics\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforePhysicsObservable?.remove(onBeforePhysicsObserver);\r\n scene.onAfterPhysicsObservable?.remove(onAfterPhysicsObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of render time metrics.\r\n * @returns the initializer for the render time strategy\r\n */\r\n public static RenderStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeDrawPhaseObserver = scene.onBeforeDrawPhaseObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterDrawPhaseObserver = scene.onAfterDrawPhaseObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Render\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeDrawPhaseObservable.remove(onBeforeDrawPhaseObserver);\r\n scene.onAfterDrawPhaseObservable.remove(onAfterDrawPhaseObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of total frame time metrics.\r\n * @returns the initializer for the total frame time strategy\r\n */\r\n public static FrameTotalStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n return {\r\n id: \"Frame Total\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of inter-frame time metrics.\r\n * @returns the initializer for the inter-frame time strategy\r\n */\r\n public static InterFrameStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n let startTime = PrecisionDate.Now;\r\n let timeTaken = 0;\r\n\r\n const onBeforeAnimationsObserver = scene.onBeforeAnimationsObservable.add(() => {\r\n timeTaken = PrecisionDate.Now - startTime;\r\n });\r\n\r\n const onAfterRenderObserver = scene.onAfterRenderObservable.add(() => {\r\n startTime = PrecisionDate.Now;\r\n });\r\n\r\n return {\r\n id: \"Inter-frame\",\r\n getData: () => timeTaken,\r\n dispose: () => {\r\n scene.onBeforeAnimationsObservable.remove(onBeforeAnimationsObserver);\r\n scene.onAfterRenderObservable.remove(onAfterRenderObserver);\r\n },\r\n };\r\n };\r\n }\r\n\r\n /**\r\n * Gets the initializer for the strategy used for collection of gpu frame time metrics.\r\n * @returns the initializer for the gpu frame time strategy\r\n */\r\n public static GpuFrameTimeStrategy(): PerfStrategyInitialization {\r\n return (scene) => {\r\n const engineInstrumentation = new EngineInstrumentation(scene.getEngine());\r\n engineInstrumentation.captureGPUFrameTime = true;\r\n return {\r\n id: \"GPU frame time\",\r\n getData: () => Math.max(engineInstrumentation.gpuFrameTimeCounter.current * 0.000001, 0),\r\n dispose: () => {\r\n engineInstrumentation.dispose();\r\n },\r\n };\r\n };\r\n }\r\n}"]}
|
|
@@ -2,6 +2,23 @@ import { Scene } from "../../scene";
|
|
|
2
2
|
import { IPerfCustomEvent, IPerfDatasets, IPerfMetadata } from "../interfaces/iPerfViewer";
|
|
3
3
|
import { Observable } from "../observable";
|
|
4
4
|
import { PerfStrategyInitialization } from "./performanceViewerCollectionStrategies";
|
|
5
|
+
/**
|
|
6
|
+
* Callback strategy and optional category for data collection
|
|
7
|
+
*/
|
|
8
|
+
interface IPerformanceViewerStrategyParameter {
|
|
9
|
+
/**
|
|
10
|
+
* The strategy for collecting data. Available strategies are located on the PerfCollectionStrategy class
|
|
11
|
+
*/
|
|
12
|
+
strategyCallback: PerfStrategyInitialization;
|
|
13
|
+
/**
|
|
14
|
+
* Category for displaying this strategy on the viewer. Can be undefined or an empty string, in which case the strategy will be displayed on top
|
|
15
|
+
*/
|
|
16
|
+
category?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Starts hidden
|
|
19
|
+
*/
|
|
20
|
+
hidden?: boolean;
|
|
21
|
+
}
|
|
5
22
|
/**
|
|
6
23
|
* The collector class handles the collection and storage of data into the appropriate array.
|
|
7
24
|
* The collector also handles notifying any observers of any updates.
|
|
@@ -12,6 +29,7 @@ export declare class PerformanceViewerCollector {
|
|
|
12
29
|
private _strategies;
|
|
13
30
|
private _startingTimestamp;
|
|
14
31
|
private _hasLoadedData;
|
|
32
|
+
private _isStarted;
|
|
15
33
|
private readonly _customEventObservable;
|
|
16
34
|
private readonly _eventRestoreSet;
|
|
17
35
|
/**
|
|
@@ -40,16 +58,17 @@ export declare class PerformanceViewerCollector {
|
|
|
40
58
|
* @param _scene the scene to collect on.
|
|
41
59
|
* @param _enabledStrategyCallbacks the list of data to collect with callbacks for initialization purposes.
|
|
42
60
|
*/
|
|
43
|
-
constructor(_scene: Scene, _enabledStrategyCallbacks?:
|
|
61
|
+
constructor(_scene: Scene, _enabledStrategyCallbacks?: IPerformanceViewerStrategyParameter[]);
|
|
44
62
|
/**
|
|
45
63
|
* Registers a custom string event which will be callable via sendEvent. This method returns an event object which will contain the id of the event.
|
|
46
64
|
* The user can set a value optionally, which will be used in the sendEvent method. If the value is set, we will record this value at the end of each frame,
|
|
47
65
|
* if not we will increment our counter and record the value of the counter at the end of each frame. The value recorded is 0 if no sendEvent method is called, within a frame.
|
|
48
66
|
* @param name The name of the event to register
|
|
49
67
|
* @param forceUpdate if the code should force add an event, and replace the last one.
|
|
68
|
+
* @param category the category for that event
|
|
50
69
|
* @returns The event registered, used in sendEvent
|
|
51
70
|
*/
|
|
52
|
-
registerEvent(name: string, forceUpdate?: boolean): IPerfCustomEvent | undefined;
|
|
71
|
+
registerEvent(name: string, forceUpdate?: boolean, category?: string): IPerfCustomEvent | undefined;
|
|
53
72
|
/**
|
|
54
73
|
* Lets the perf collector handle an event, occurences or event value depending on if the event.value params is set.
|
|
55
74
|
* @param event the event to handle an occurence for
|
|
@@ -63,7 +82,7 @@ export declare class PerformanceViewerCollector {
|
|
|
63
82
|
* This method adds additional collection strategies for data collection purposes.
|
|
64
83
|
* @param strategyCallbacks the list of data to collect with callbacks.
|
|
65
84
|
*/
|
|
66
|
-
addCollectionStrategies(...strategyCallbacks:
|
|
85
|
+
addCollectionStrategies(...strategyCallbacks: IPerformanceViewerStrategyParameter[]): void;
|
|
67
86
|
/**
|
|
68
87
|
* Gets a 6 character hexcode representing the colour from a passed in string.
|
|
69
88
|
* @param id the string to get a hex code for.
|
|
@@ -103,9 +122,10 @@ export declare class PerformanceViewerCollector {
|
|
|
103
122
|
* Given a string containing file data, this function parses the file data into the datasets object.
|
|
104
123
|
* It returns a boolean to indicate if this object was successfully loaded with the data.
|
|
105
124
|
* @param data string content representing the file data.
|
|
125
|
+
* @param keepDatasetMeta if it should use reuse the existing dataset metadata
|
|
106
126
|
* @returns true if the data was successfully loaded, false otherwise.
|
|
107
127
|
*/
|
|
108
|
-
loadFromFileData(data: string): boolean;
|
|
128
|
+
loadFromFileData(data: string, keepDatasetMeta?: boolean): boolean;
|
|
109
129
|
/**
|
|
110
130
|
* Exports the datasets inside of the collector to a csv.
|
|
111
131
|
*/
|
|
@@ -119,8 +139,13 @@ export declare class PerformanceViewerCollector {
|
|
|
119
139
|
* Stops the collection of data.
|
|
120
140
|
*/
|
|
121
141
|
stop(): void;
|
|
142
|
+
/**
|
|
143
|
+
* Returns if the perf collector has been started or not.
|
|
144
|
+
*/
|
|
145
|
+
get isStarted(): boolean;
|
|
122
146
|
/**
|
|
123
147
|
* Disposes of the object
|
|
124
148
|
*/
|
|
125
149
|
dispose(): void;
|
|
126
150
|
}
|
|
151
|
+
export {};
|
|
@@ -102,9 +102,10 @@ var PerformanceViewerCollector = /** @class */ (function () {
|
|
|
102
102
|
* if not we will increment our counter and record the value of the counter at the end of each frame. The value recorded is 0 if no sendEvent method is called, within a frame.
|
|
103
103
|
* @param name The name of the event to register
|
|
104
104
|
* @param forceUpdate if the code should force add an event, and replace the last one.
|
|
105
|
+
* @param category the category for that event
|
|
105
106
|
* @returns The event registered, used in sendEvent
|
|
106
107
|
*/
|
|
107
|
-
PerformanceViewerCollector.prototype.registerEvent = function (name, forceUpdate) {
|
|
108
|
+
PerformanceViewerCollector.prototype.registerEvent = function (name, forceUpdate, category) {
|
|
108
109
|
var _this = this;
|
|
109
110
|
var _a;
|
|
110
111
|
if (this._strategies.has(name) && !forceUpdate) {
|
|
@@ -145,7 +146,7 @@ var PerformanceViewerCollector = /** @class */ (function () {
|
|
|
145
146
|
name: name
|
|
146
147
|
};
|
|
147
148
|
this._eventRestoreSet.add(name);
|
|
148
|
-
this.addCollectionStrategies(strategy);
|
|
149
|
+
this.addCollectionStrategies({ strategyCallback: strategy, category: category });
|
|
149
150
|
return event;
|
|
150
151
|
};
|
|
151
152
|
/**
|
|
@@ -176,7 +177,7 @@ var PerformanceViewerCollector = /** @class */ (function () {
|
|
|
176
177
|
strategyCallbacks[_i] = arguments[_i];
|
|
177
178
|
}
|
|
178
179
|
for (var _a = 0, strategyCallbacks_1 = strategyCallbacks; _a < strategyCallbacks_1.length; _a++) {
|
|
179
|
-
var
|
|
180
|
+
var _b = strategyCallbacks_1[_a], strategyCallback = _b.strategyCallback, category = _b.category, hidden = _b.hidden;
|
|
180
181
|
var strategy = strategyCallback(this._scene);
|
|
181
182
|
if (this._strategies.has(strategy.id)) {
|
|
182
183
|
strategy.dispose();
|
|
@@ -185,6 +186,8 @@ var PerformanceViewerCollector = /** @class */ (function () {
|
|
|
185
186
|
this.datasets.ids.push(strategy.id);
|
|
186
187
|
this._datasetMeta.set(strategy.id, {
|
|
187
188
|
color: this._getHexColorFromId(strategy.id),
|
|
189
|
+
category: category,
|
|
190
|
+
hidden: hidden
|
|
188
191
|
});
|
|
189
192
|
this._strategies.set(strategy.id, strategy);
|
|
190
193
|
}
|
|
@@ -280,9 +283,10 @@ var PerformanceViewerCollector = /** @class */ (function () {
|
|
|
280
283
|
* Given a string containing file data, this function parses the file data into the datasets object.
|
|
281
284
|
* It returns a boolean to indicate if this object was successfully loaded with the data.
|
|
282
285
|
* @param data string content representing the file data.
|
|
286
|
+
* @param keepDatasetMeta if it should use reuse the existing dataset metadata
|
|
283
287
|
* @returns true if the data was successfully loaded, false otherwise.
|
|
284
288
|
*/
|
|
285
|
-
PerformanceViewerCollector.prototype.loadFromFileData = function (data) {
|
|
289
|
+
PerformanceViewerCollector.prototype.loadFromFileData = function (data, keepDatasetMeta) {
|
|
286
290
|
var lines = data.replace(carriageReturnRegex, '').split('\n')
|
|
287
291
|
.map(function (line) { return (line.split(',')
|
|
288
292
|
.filter(function (s) { return s.length > 0; })); })
|
|
@@ -336,13 +340,17 @@ var PerformanceViewerCollector = /** @class */ (function () {
|
|
|
336
340
|
this.datasets.ids = parsedDatasets.ids;
|
|
337
341
|
this.datasets.data = parsedDatasets.data;
|
|
338
342
|
this.datasets.startingIndices = parsedDatasets.startingIndices;
|
|
339
|
-
|
|
343
|
+
if (!keepDatasetMeta) {
|
|
344
|
+
this._datasetMeta.clear();
|
|
345
|
+
}
|
|
340
346
|
this._strategies.forEach(function (strategy) { return strategy.dispose(); });
|
|
341
347
|
this._strategies.clear();
|
|
342
348
|
// populate metadata.
|
|
343
|
-
|
|
344
|
-
var
|
|
345
|
-
|
|
349
|
+
if (!keepDatasetMeta) {
|
|
350
|
+
for (var _a = 0, _b = this.datasets.ids; _a < _b.length; _a++) {
|
|
351
|
+
var id = _b[_a];
|
|
352
|
+
this._datasetMeta.set(id, { color: this._getHexColorFromId(id) });
|
|
353
|
+
}
|
|
346
354
|
}
|
|
347
355
|
this.metadataObservable.notifyObservers(this._datasetMeta);
|
|
348
356
|
this._hasLoadedData = true;
|
|
@@ -385,28 +393,44 @@ var PerformanceViewerCollector = /** @class */ (function () {
|
|
|
385
393
|
if (!shouldPreserve) {
|
|
386
394
|
this.datasets.data = new DynamicFloat32Array(initialArraySize);
|
|
387
395
|
this.datasets.startingIndices = new DynamicFloat32Array(initialArraySize);
|
|
396
|
+
this._startingTimestamp = PrecisionDate.Now;
|
|
388
397
|
}
|
|
389
|
-
this._startingTimestamp
|
|
390
|
-
|
|
398
|
+
else if (this._startingTimestamp === undefined) {
|
|
399
|
+
this._startingTimestamp = PrecisionDate.Now;
|
|
400
|
+
}
|
|
401
|
+
this._scene.onAfterRenderObservable.add(this._collectDataAtFrame);
|
|
391
402
|
this._restoreStringEvents();
|
|
403
|
+
this._isStarted = true;
|
|
392
404
|
};
|
|
393
405
|
/**
|
|
394
406
|
* Stops the collection of data.
|
|
395
407
|
*/
|
|
396
408
|
PerformanceViewerCollector.prototype.stop = function () {
|
|
397
|
-
this._scene.
|
|
409
|
+
this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame);
|
|
410
|
+
this._isStarted = false;
|
|
398
411
|
};
|
|
412
|
+
Object.defineProperty(PerformanceViewerCollector.prototype, "isStarted", {
|
|
413
|
+
/**
|
|
414
|
+
* Returns if the perf collector has been started or not.
|
|
415
|
+
*/
|
|
416
|
+
get: function () {
|
|
417
|
+
return this._isStarted;
|
|
418
|
+
},
|
|
419
|
+
enumerable: false,
|
|
420
|
+
configurable: true
|
|
421
|
+
});
|
|
399
422
|
/**
|
|
400
423
|
* Disposes of the object
|
|
401
424
|
*/
|
|
402
425
|
PerformanceViewerCollector.prototype.dispose = function () {
|
|
403
|
-
this._scene.
|
|
426
|
+
this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame);
|
|
404
427
|
this._datasetMeta.clear();
|
|
405
428
|
this._strategies.forEach(function (strategy) {
|
|
406
429
|
strategy.dispose();
|
|
407
430
|
});
|
|
408
431
|
this.datasetObservable.clear();
|
|
409
432
|
this.metadataObservable.clear();
|
|
433
|
+
this._isStarted = false;
|
|
410
434
|
this.datasets = null;
|
|
411
435
|
};
|
|
412
436
|
return PerformanceViewerCollector;
|