@onerjs/core 8.55.9 → 8.56.1

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.
Files changed (187) hide show
  1. package/AudioV2/webAudio/webAudioEngine.d.ts +7 -0
  2. package/AudioV2/webAudio/webAudioEngine.js +6 -5
  3. package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
  4. package/Culling/Helper/boundingInfoHelper.js +8 -4
  5. package/Culling/Helper/boundingInfoHelper.js.map +1 -1
  6. package/Engines/AbstractEngine/abstractEngine.textureLoaders.d.ts +5 -1
  7. package/Engines/AbstractEngine/abstractEngine.textureLoaders.js +7 -3
  8. package/Engines/AbstractEngine/abstractEngine.textureLoaders.js.map +1 -1
  9. package/Engines/AbstractEngine/abstractEngine.textureLoaders.pure.d.ts +6 -0
  10. package/Engines/AbstractEngine/abstractEngine.textureLoaders.pure.js +16 -0
  11. package/Engines/AbstractEngine/abstractEngine.textureLoaders.pure.js.map +1 -0
  12. package/Engines/AbstractEngine/pure.d.ts +1 -0
  13. package/Engines/AbstractEngine/pure.js +1 -0
  14. package/Engines/AbstractEngine/pure.js.map +1 -1
  15. package/Engines/IDrawContext.d.ts +2 -0
  16. package/Engines/IDrawContext.js.map +1 -1
  17. package/Engines/WebGPU/webgpuDrawContext.d.ts +8 -0
  18. package/Engines/WebGPU/webgpuDrawContext.js +15 -0
  19. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  20. package/Engines/abstractEngine.pure.js +2 -2
  21. package/Engines/abstractEngine.pure.js.map +1 -1
  22. package/Engines/engine.d.ts +11 -3
  23. package/Engines/webgpuEngine.d.ts +1 -0
  24. package/Engines/webgpuEngine.js +1 -0
  25. package/Engines/webgpuEngine.js.map +1 -1
  26. package/Engines/webgpuEngine.pure.d.ts +10 -0
  27. package/Engines/webgpuEngine.pure.js +15 -1
  28. package/Engines/webgpuEngine.pure.js.map +1 -1
  29. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +2 -5
  30. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
  31. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +2 -0
  32. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
  33. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1 -0
  34. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
  35. package/Materials/Node/Blocks/powBlock.pure.js +2 -1
  36. package/Materials/Node/Blocks/powBlock.pure.js.map +1 -1
  37. package/Materials/Node/Blocks/triPlanarBlock.pure.js +14 -12
  38. package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
  39. package/Materials/Node/nodeMaterial.pure.d.ts +1 -0
  40. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
  41. package/Materials/PBR/openpbrMaterial.pure.d.ts +1 -0
  42. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -0
  43. package/Materials/Textures/index.d.ts +1 -0
  44. package/Materials/Textures/index.js +1 -0
  45. package/Materials/Textures/index.js.map +1 -1
  46. package/Materials/drawWrapper.js +3 -0
  47. package/Materials/drawWrapper.js.map +1 -1
  48. package/Materials/imageProcessingConfiguration.defines.d.ts +3 -0
  49. package/Materials/imageProcessingConfiguration.defines.js +2 -0
  50. package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
  51. package/Materials/imageProcessingConfiguration.functions.js +3 -0
  52. package/Materials/imageProcessingConfiguration.functions.js.map +1 -1
  53. package/Materials/imageProcessingConfiguration.pure.d.ts +58 -0
  54. package/Materials/imageProcessingConfiguration.pure.js +123 -2
  55. package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
  56. package/Materials/standardMaterial.pure.d.ts +1 -0
  57. package/Materials/uniformBuffer.d.ts +29 -0
  58. package/Materials/uniformBuffer.js +146 -0
  59. package/Materials/uniformBuffer.js.map +1 -1
  60. package/Maths/colorTemperature.functions.d.ts +29 -0
  61. package/Maths/colorTemperature.functions.js +196 -0
  62. package/Maths/colorTemperature.functions.js.map +1 -0
  63. package/Maths/index.d.ts +1 -0
  64. package/Maths/index.js +1 -0
  65. package/Maths/index.js.map +1 -1
  66. package/Maths/pure.d.ts +1 -0
  67. package/Maths/pure.js +1 -0
  68. package/Maths/pure.js.map +1 -1
  69. package/Misc/observable.pure.js +1 -3
  70. package/Misc/observable.pure.js.map +1 -1
  71. package/Misc/tools.pure.js +1 -1
  72. package/Misc/tools.pure.js.map +1 -1
  73. package/PostProcesses/imageProcessingPostProcess.d.ts +41 -1
  74. package/PostProcesses/imageProcessingPostProcess.js +41 -1
  75. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  76. package/PostProcesses/thinImageProcessingPostProcess.d.ts +50 -0
  77. package/PostProcesses/thinImageProcessingPostProcess.js +65 -0
  78. package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
  79. package/Rendering/IBLShadows/iblShadowsMaterialCompatibility.pure.d.ts +12 -0
  80. package/Rendering/IBLShadows/iblShadowsMaterialCompatibility.pure.js +22 -0
  81. package/Rendering/IBLShadows/iblShadowsMaterialCompatibility.pure.js.map +1 -0
  82. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -0
  83. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +39 -0
  84. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
  85. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +2 -4
  86. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  87. package/Rendering/IBLShadows/pure.d.ts +1 -0
  88. package/Rendering/IBLShadows/pure.js +1 -0
  89. package/Rendering/IBLShadows/pure.js.map +1 -1
  90. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +11 -0
  91. package/Rendering/fluidRenderer/fluidRenderingObject.js +36 -14
  92. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  93. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +5 -0
  94. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +16 -3
  95. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  96. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +5 -0
  97. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +12 -0
  98. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  99. package/Rendering/iblCdfGenerator.js +10 -1
  100. package/Rendering/iblCdfGenerator.js.map +1 -1
  101. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
  102. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  103. package/Shaders/ShadersInclude/helperFunctions.js +2 -2
  104. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  105. package/Shaders/ShadersInclude/imageProcessingDeclaration.js +3 -0
  106. package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  107. package/Shaders/ShadersInclude/imageProcessingFunctions.js +3 -0
  108. package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  109. package/Shaders/ShadersInclude/openpbrDirectLighting.js +34 -4
  110. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  111. package/Shaders/ShadersInclude/openpbrIblFunctions.js +8 -2
  112. package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  113. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +5 -0
  114. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  115. package/Shaders/fluidRenderingParticleDepth.vertex.js +7 -1
  116. package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
  117. package/Shaders/fluidRenderingParticleDiffuse.vertex.js +7 -1
  118. package/Shaders/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
  119. package/Shaders/fluidRenderingParticleThickness.vertex.js +7 -1
  120. package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
  121. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js +3 -0
  122. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  123. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +3 -0
  124. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  125. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +35 -5
  126. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  127. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js +1 -1
  128. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js.map +1 -1
  129. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +8 -2
  130. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  131. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +5 -0
  132. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  133. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +16 -4
  134. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
  135. package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js +15 -3
  136. package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
  137. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -3
  138. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
  139. package/XR/features/Layers/WebXRCompositionLayer.d.ts +52 -0
  140. package/XR/features/Layers/WebXRCompositionLayer.js +80 -0
  141. package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
  142. package/XR/features/WebXRControllerPointerSelection.pure.js +2 -1
  143. package/XR/features/WebXRControllerPointerSelection.pure.js.map +1 -1
  144. package/XR/features/WebXRControllerTeleportation.pure.js +2 -1
  145. package/XR/features/WebXRControllerTeleportation.pure.js.map +1 -1
  146. package/XR/features/WebXRDepthSensing.pure.d.ts +21 -0
  147. package/XR/features/WebXRDepthSensing.pure.js +42 -0
  148. package/XR/features/WebXRDepthSensing.pure.js.map +1 -1
  149. package/XR/features/WebXRHandTracking.pure.js +2 -0
  150. package/XR/features/WebXRHandTracking.pure.js.map +1 -1
  151. package/XR/features/WebXRLayers.pure.d.ts +12 -0
  152. package/XR/features/WebXRLayers.pure.js +31 -1
  153. package/XR/features/WebXRLayers.pure.js.map +1 -1
  154. package/XR/features/WebXRTrackedSources.d.ts +5 -0
  155. package/XR/features/WebXRTrackedSources.js +8 -0
  156. package/XR/features/WebXRTrackedSources.js.map +1 -0
  157. package/XR/features/WebXRTrackedSources.pure.d.ts +70 -0
  158. package/XR/features/WebXRTrackedSources.pure.js +153 -0
  159. package/XR/features/WebXRTrackedSources.pure.js.map +1 -0
  160. package/XR/features/index.d.ts +1 -0
  161. package/XR/features/index.js +1 -0
  162. package/XR/features/index.js.map +1 -1
  163. package/XR/features/pure.d.ts +1 -0
  164. package/XR/features/pure.js +1 -0
  165. package/XR/features/pure.js.map +1 -1
  166. package/XR/motionController/webXRAbstractMotionController.d.ts +53 -1
  167. package/XR/motionController/webXRAbstractMotionController.js +61 -0
  168. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  169. package/XR/webXRDefaultExperience.js +8 -4
  170. package/XR/webXRDefaultExperience.js.map +1 -1
  171. package/XR/webXRExperienceHelper.js +86 -44
  172. package/XR/webXRExperienceHelper.js.map +1 -1
  173. package/XR/webXRFeaturesManager.d.ts +9 -0
  174. package/XR/webXRFeaturesManager.js +4 -0
  175. package/XR/webXRFeaturesManager.js.map +1 -1
  176. package/XR/webXRGraphicsBinding.d.ts +29 -0
  177. package/XR/webXRGraphicsBinding.js +40 -0
  178. package/XR/webXRGraphicsBinding.js.map +1 -1
  179. package/XR/webXRInputSource.js +1 -1
  180. package/XR/webXRInputSource.js.map +1 -1
  181. package/XR/webXRLayerWrapper.d.ts +7 -5
  182. package/XR/webXRLayerWrapper.js +10 -7
  183. package/XR/webXRLayerWrapper.js.map +1 -1
  184. package/XR/webXRSessionManager.d.ts +45 -0
  185. package/XR/webXRSessionManager.js +174 -29
  186. package/XR/webXRSessionManager.js.map +1 -1
  187. package/package.json +1 -1
@@ -440,6 +440,8 @@ interface XRInputSource {
440
440
  readonly gamepad?: Gamepad | undefined;
441
441
  readonly profiles: string[];
442
442
  readonly hand?: XRHand;
443
+ /** Indicates that the user agent recommends omitting the application's input source representation. */
444
+ readonly skipRendering?: boolean;
443
445
  }
444
446
 
445
447
  abstract class XRInputSource implements XRInputSource {}
@@ -631,6 +633,7 @@ interface XRSession extends EventTarget {
631
633
  readonly visibilityState: XRVisibilityState;
632
634
  readonly frameRate?: number | undefined;
633
635
  readonly supportedFrameRates?: Float32Array | undefined;
636
+ readonly maxRenderLayers?: number | undefined;
634
637
 
635
638
  /**
636
639
  * Removes a callback from the animation frame painting callback from
@@ -726,8 +729,8 @@ interface XRView {
726
729
  readonly eye: XREye;
727
730
  readonly projectionMatrix: Float32Array;
728
731
  readonly transform: XRRigidTransform;
729
- readonly recommendedViewportScale?: number | undefined;
730
- requestViewportScale(scale: number): void;
732
+ readonly recommendedViewportScale?: number | null | undefined;
733
+ requestViewportScale(scale: number | null): void;
731
734
  }
732
735
 
733
736
  abstract class XRView implements XRView {}
@@ -1007,8 +1010,11 @@ interface XRCompositionLayer extends XRLayer {
1007
1010
  readonly layout: XRLayerLayout;
1008
1011
  blendTextureSourceAlpha: boolean;
1009
1012
  chromaticAberrationCorrection?: boolean | undefined;
1013
+ forceMonoPresentation?: boolean | undefined;
1014
+ opacity?: number | undefined;
1010
1015
  readonly mipLevels: number;
1011
1016
  readonly needsRedraw: boolean;
1017
+ quality?: XRLayerQuality | undefined;
1012
1018
  destroy(): void;
1013
1019
 
1014
1020
  space: XRSpace;
@@ -1034,6 +1040,8 @@ type XRTextureType = "texture" | "texture-array";
1034
1040
 
1035
1041
  type XRLayerLayout = "default" | "mono" | "stereo" | "stereo-left-right" | "stereo-top-bottom";
1036
1042
 
1043
+ type XRLayerQuality = "default" | "text-optimized" | "graphics-optimized";
1044
+
1037
1045
  interface XRProjectionLayerInit {
1038
1046
  scaleFactor?: number | undefined;
1039
1047
  textureType?: XRTextureType | undefined;
@@ -1047,7 +1055,7 @@ interface XRProjectionLayer extends XRCompositionLayer {
1047
1055
  readonly textureHeight: number;
1048
1056
  readonly textureArrayLength: number;
1049
1057
  readonly ignoreDepthValues: number;
1050
- fixedFoveation: number;
1058
+ fixedFoveation?: number | null | undefined;
1051
1059
  }
1052
1060
 
1053
1061
  abstract class XRProjectionLayer implements XRProjectionLayer {}
@@ -21,3 +21,4 @@ import "./WebGPU/Extensions/engine.renderTarget.js";
21
21
  import "./WebGPU/Extensions/engine.renderTargetTexture.js";
22
22
  import "./WebGPU/Extensions/engine.renderTargetCube.js";
23
23
  import "./WebGPU/Extensions/engine.query.js";
24
+ import "./WebGPU/Extensions/engine.dynamicTexture.js";
@@ -21,4 +21,5 @@ import "./WebGPU/Extensions/engine.renderTarget.js";
21
21
  import "./WebGPU/Extensions/engine.renderTargetTexture.js";
22
22
  import "./WebGPU/Extensions/engine.renderTargetCube.js";
23
23
  import "./WebGPU/Extensions/engine.query.js";
24
+ import "./WebGPU/Extensions/engine.dynamicTexture.js";
24
25
  //# sourceMappingURL=webgpuEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuEngine.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/webgpuEngine.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AAEpC,OAAO,iCAAiC,CAAC;AACzC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,yBAAyB,CAAC;AACjC,OAAO,+CAA+C,CAAC;AACvD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,4CAA4C,CAAC;AACpD,OAAO,yCAAyC,CAAC;AACjD,OAAO,0CAA0C,CAAC;AAClD,OAAO,gDAAgD,CAAC;AACxD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4CAA4C,CAAC;AACpD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,gDAAgD,CAAC;AACxD,OAAO,6CAA6C,CAAC;AACrD,OAAO,kCAAkC,CAAC","sourcesContent":["export * from \"./webgpuEngine.pure\";\n\nimport \"../ShadersWGSL/clearQuad.vertex\";\nimport \"../ShadersWGSL/clearQuad.fragment\";\nimport \"./WebGPU/webgpuShaderProcessorsWGSL\";\nimport \"../Buffers/buffer.align\";\nimport \"./AbstractEngine/abstractEngine.loadingScreen\";\nimport \"./AbstractEngine/abstractEngine.dom\";\nimport \"./AbstractEngine/abstractEngine.states\";\nimport \"./AbstractEngine/abstractEngine.stencil\";\nimport \"./AbstractEngine/abstractEngine.renderPass\";\nimport \"./AbstractEngine/abstractEngine.texture\";\nimport \"./AbstractEngine/abstractEngine.loadFile\";\nimport \"./AbstractEngine/abstractEngine.textureLoaders\";\nimport \"../Audio/audioEngine\";\nimport \"./WebGPU/Extensions/engine.alpha\";\nimport \"./WebGPU/Extensions/engine.alphaToCoverage\";\nimport \"./WebGPU/Extensions/engine.rawTexture\";\nimport \"./WebGPU/Extensions/engine.readTexture\";\nimport \"./WebGPU/Extensions/engine.cubeTexture\";\nimport \"./WebGPU/Extensions/engine.renderTarget\";\nimport \"./WebGPU/Extensions/engine.renderTargetTexture\";\nimport \"./WebGPU/Extensions/engine.renderTargetCube\";\nimport \"./WebGPU/Extensions/engine.query\";\n"]}
1
+ {"version":3,"file":"webgpuEngine.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/webgpuEngine.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AAEpC,OAAO,iCAAiC,CAAC;AACzC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,yBAAyB,CAAC;AACjC,OAAO,+CAA+C,CAAC;AACvD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,4CAA4C,CAAC;AACpD,OAAO,yCAAyC,CAAC;AACjD,OAAO,0CAA0C,CAAC;AAClD,OAAO,gDAAgD,CAAC;AACxD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4CAA4C,CAAC;AACpD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,gDAAgD,CAAC;AACxD,OAAO,6CAA6C,CAAC;AACrD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,2CAA2C,CAAC","sourcesContent":["export * from \"./webgpuEngine.pure\";\n\nimport \"../ShadersWGSL/clearQuad.vertex\";\nimport \"../ShadersWGSL/clearQuad.fragment\";\nimport \"./WebGPU/webgpuShaderProcessorsWGSL\";\nimport \"../Buffers/buffer.align\";\nimport \"./AbstractEngine/abstractEngine.loadingScreen\";\nimport \"./AbstractEngine/abstractEngine.dom\";\nimport \"./AbstractEngine/abstractEngine.states\";\nimport \"./AbstractEngine/abstractEngine.stencil\";\nimport \"./AbstractEngine/abstractEngine.renderPass\";\nimport \"./AbstractEngine/abstractEngine.texture\";\nimport \"./AbstractEngine/abstractEngine.loadFile\";\nimport \"./AbstractEngine/abstractEngine.textureLoaders\";\nimport \"../Audio/audioEngine\";\nimport \"./WebGPU/Extensions/engine.alpha\";\nimport \"./WebGPU/Extensions/engine.alphaToCoverage\";\nimport \"./WebGPU/Extensions/engine.rawTexture\";\nimport \"./WebGPU/Extensions/engine.readTexture\";\nimport \"./WebGPU/Extensions/engine.cubeTexture\";\nimport \"./WebGPU/Extensions/engine.renderTarget\";\nimport \"./WebGPU/Extensions/engine.renderTargetTexture\";\nimport \"./WebGPU/Extensions/engine.renderTargetCube\";\nimport \"./WebGPU/Extensions/engine.query\";\nimport \"./WebGPU/Extensions/engine.dynamicTexture\";\n"]}
@@ -83,6 +83,7 @@ export interface WebGPUEngineOptions extends AbstractEngineOptions, GPURequestAd
83
83
  * created (adapter-request time): WebGPU has no post-hoc "make XR compatible" step, so it cannot
84
84
  * be toggled on later. Leave unset/false for the default non-XR path.
85
85
  * Default: false
86
+ * @experimental WebGPU-XR support is experimental and may change.
86
87
  */
87
88
  xrCompatible?: boolean;
88
89
  /**
@@ -308,6 +309,15 @@ export declare class WebGPUEngine extends ThinWebGPUEngine {
308
309
  */
309
310
  get disableCacheRenderPipelines(): boolean;
310
311
  set disableCacheRenderPipelines(disable: boolean);
312
+ /**
313
+ * When true (default), the "leftover" uniform buffer of an effect (the buffer that holds the uniforms not declared in a named
314
+ * uniform block) keeps one GPU buffer per draw context, so a given draw call always binds the same buffer for a given effect.
315
+ * When false, the GPU buffers are assigned in draw order: the buffer bound by a draw call then changes with the order in which
316
+ * meshes are drawn, and every new (draw context, buffer) pair is a new entry in the bind group cache.
317
+ * Change it before rendering the first frame. You should set it to false only for testing purpose!
318
+ * @internal
319
+ */
320
+ _useOwnerKeyedUniformBufferSlots: boolean;
311
321
  /**
312
322
  * Sets this to true to disable the cache for the bind groups. You should do it only for testing purpose!
313
323
  */
@@ -320,6 +320,15 @@ export class WebGPUEngine extends ThinWebGPUEngine {
320
320
  this._colorWriteLocal = true;
321
321
  this._forceEnableEffect = false;
322
322
  this._internalFrameCounter = 0;
323
+ /**
324
+ * When true (default), the "leftover" uniform buffer of an effect (the buffer that holds the uniforms not declared in a named
325
+ * uniform block) keeps one GPU buffer per draw context, so a given draw call always binds the same buffer for a given effect.
326
+ * When false, the GPU buffers are assigned in draw order: the buffer bound by a draw call then changes with the order in which
327
+ * meshes are drawn, and every new (draw context, buffer) pair is a new entry in the bind group cache.
328
+ * Change it before rendering the first frame. You should set it to false only for testing purpose!
329
+ * @internal
330
+ */
331
+ this._useOwnerKeyedUniformBufferSlots = true;
323
332
  /**
324
333
  * Indicates if the z range in NDC space is 0..1 (value: true) or -1..1 (value: false)
325
334
  */
@@ -2835,7 +2844,12 @@ export class WebGPUEngine extends ThinWebGPUEngine {
2835
2844
  this._currentDrawContext.setVertexPulling(this._currentMaterialContext.useVertexPulling, webgpuPipelineContext, this._currentVertexBuffers, this._cacheRenderPipeline.indexBuffer, // don't use this._currentIndexBuffer, it will have been set to null by _drawArraysType!
2836
2845
  this._currentOverrideVertexBuffers);
2837
2846
  if (webgpuPipelineContext.uniformBuffer) {
2838
- webgpuPipelineContext.uniformBuffer.update();
2847
+ if (this._useOwnerKeyedUniformBufferSlots) {
2848
+ webgpuPipelineContext.uniformBuffer._updateOwnerKeyed(this._currentDrawContext);
2849
+ }
2850
+ else {
2851
+ webgpuPipelineContext.uniformBuffer.update();
2852
+ }
2839
2853
  this.bindUniformBufferBase(webgpuPipelineContext.uniformBuffer.getBuffer(), 0, WebGPUShaderProcessor.LeftOvertUBOName);
2840
2854
  }
2841
2855
  if (this._snapshotRendering.play) {