@babylonjs/core 5.16.0 → 5.18.0

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 (175) hide show
  1. package/Animations/animatable.js +1 -1
  2. package/Animations/animatable.js.map +1 -1
  3. package/Animations/animation.d.ts +8 -1
  4. package/Animations/animation.js +8 -1
  5. package/Animations/animation.js.map +1 -1
  6. package/Animations/animationGroup.js +5 -4
  7. package/Animations/animationGroup.js.map +1 -1
  8. package/Bones/skeleton.js +1 -1
  9. package/Bones/skeleton.js.map +1 -1
  10. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +2 -2
  11. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  12. package/Cameras/Inputs/flyCameraKeyboardInput.js +3 -3
  13. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  14. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +2 -2
  15. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  16. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +3 -3
  17. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  18. package/Cameras/Inputs/freeCameraTouchInput.js +1 -1
  19. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  20. package/Cameras/VR/vrExperienceHelper.js +1 -1
  21. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  22. package/Cameras/VR/webVRCamera.js +1 -1
  23. package/Cameras/VR/webVRCamera.js.map +1 -1
  24. package/Cameras/camera.js +3 -3
  25. package/Cameras/camera.js.map +1 -1
  26. package/Engines/Extensions/engine.views.d.ts +13 -0
  27. package/Engines/Extensions/engine.views.js +16 -1
  28. package/Engines/Extensions/engine.views.js.map +1 -1
  29. package/Engines/Processors/shaderCodeCursor.js +2 -1
  30. package/Engines/Processors/shaderCodeCursor.js.map +1 -1
  31. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
  32. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  33. package/Engines/engine.d.ts +2 -10
  34. package/Engines/engine.js +0 -14
  35. package/Engines/engine.js.map +1 -1
  36. package/Engines/engineFeatures.d.ts +2 -0
  37. package/Engines/engineFeatures.js.map +1 -1
  38. package/Engines/nativeEngine.d.ts +6 -2
  39. package/Engines/nativeEngine.js +13 -6
  40. package/Engines/nativeEngine.js.map +1 -1
  41. package/Engines/nullEngine.js +1 -0
  42. package/Engines/nullEngine.js.map +1 -1
  43. package/Engines/thinEngine.d.ts +10 -0
  44. package/Engines/thinEngine.js +26 -6
  45. package/Engines/thinEngine.js.map +1 -1
  46. package/Engines/webgpuEngine.js +1 -0
  47. package/Engines/webgpuEngine.js.map +1 -1
  48. package/Gizmos/axisDragGizmo.d.ts +11 -8
  49. package/Gizmos/axisDragGizmo.js.map +1 -1
  50. package/Gizmos/axisScaleGizmo.d.ts +20 -13
  51. package/Gizmos/axisScaleGizmo.js.map +1 -1
  52. package/Gizmos/boundingBoxGizmo.d.ts +27 -18
  53. package/Gizmos/boundingBoxGizmo.js +6 -0
  54. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  55. package/Gizmos/cameraGizmo.d.ts +8 -5
  56. package/Gizmos/cameraGizmo.js.map +1 -1
  57. package/Gizmos/gizmo.d.ts +48 -6
  58. package/Gizmos/gizmo.js.map +1 -1
  59. package/Gizmos/gizmoManager.d.ts +17 -9
  60. package/Gizmos/gizmoManager.js.map +1 -1
  61. package/Gizmos/lightGizmo.d.ts +12 -7
  62. package/Gizmos/lightGizmo.js.map +1 -1
  63. package/Gizmos/planeDragGizmo.d.ts +10 -8
  64. package/Gizmos/planeDragGizmo.js.map +1 -1
  65. package/Gizmos/planeRotationGizmo.d.ts +23 -14
  66. package/Gizmos/planeRotationGizmo.js.map +1 -1
  67. package/Gizmos/positionGizmo.d.ts +9 -7
  68. package/Gizmos/positionGizmo.js +1 -1
  69. package/Gizmos/positionGizmo.js.map +1 -1
  70. package/Gizmos/rotationGizmo.d.ts +6 -4
  71. package/Gizmos/rotationGizmo.js.map +1 -1
  72. package/Gizmos/scaleGizmo.d.ts +15 -12
  73. package/Gizmos/scaleGizmo.js.map +1 -1
  74. package/Inputs/scene.inputManager.js +0 -3
  75. package/Inputs/scene.inputManager.js.map +1 -1
  76. package/Loading/sceneLoader.js +5 -5
  77. package/Loading/sceneLoader.js.map +1 -1
  78. package/Materials/Node/Blocks/Fragment/TBNBlock.d.ts +12 -0
  79. package/Materials/Node/Blocks/Fragment/TBNBlock.js +50 -0
  80. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  81. package/Materials/Node/Blocks/Vertex/lightInformationBlock.d.ts +18 -0
  82. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +85 -1
  83. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  84. package/Materials/Node/Blocks/gradientBlock.js +1 -1
  85. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  86. package/Materials/Node/nodeMaterial.d.ts +18 -2
  87. package/Materials/Node/nodeMaterial.js +56 -27
  88. package/Materials/Node/nodeMaterial.js.map +1 -1
  89. package/Materials/Textures/baseTexture.d.ts +2 -1
  90. package/Materials/Textures/baseTexture.js +4 -1
  91. package/Materials/Textures/baseTexture.js.map +1 -1
  92. package/Materials/Textures/prePassRenderTarget.js +1 -1
  93. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  94. package/Materials/Textures/renderTargetTexture.js +11 -3
  95. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  96. package/Materials/materialDefines.js +3 -1
  97. package/Materials/materialDefines.js.map +1 -1
  98. package/Materials/shaderMaterial.d.ts +10 -1
  99. package/Materials/shaderMaterial.js +10 -1
  100. package/Materials/shaderMaterial.js.map +1 -1
  101. package/Maths/math.color.d.ts +9 -1
  102. package/Maths/math.color.js +13 -1
  103. package/Maths/math.color.js.map +1 -1
  104. package/Maths/math.vector.d.ts +2 -2
  105. package/Maths/math.vector.js +18 -30
  106. package/Maths/math.vector.js.map +1 -1
  107. package/Meshes/Builders/icoSphereBuilder.js +2 -2
  108. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  109. package/Meshes/Compression/dracoCompression.js +1 -1
  110. package/Meshes/Compression/dracoCompression.js.map +1 -1
  111. package/Meshes/abstractMesh.js +1 -1
  112. package/Meshes/abstractMesh.js.map +1 -1
  113. package/Meshes/geometry.js +1 -2
  114. package/Meshes/geometry.js.map +1 -1
  115. package/Meshes/thinInstanceMesh.js +5 -0
  116. package/Meshes/thinInstanceMesh.js.map +1 -1
  117. package/Misc/basis.js +3 -0
  118. package/Misc/basis.js.map +1 -1
  119. package/Misc/fileTools.js +2 -2
  120. package/Misc/fileTools.js.map +1 -1
  121. package/Misc/khronosTextureContainer2.js +1 -1
  122. package/Misc/khronosTextureContainer2.js.map +1 -1
  123. package/Misc/smartArray.js +0 -1
  124. package/Misc/smartArray.js.map +1 -1
  125. package/Misc/tools.d.ts +2 -2
  126. package/Misc/tools.js +4 -1
  127. package/Misc/tools.js.map +1 -1
  128. package/Offline/database.js +6 -8
  129. package/Offline/database.js.map +1 -1
  130. package/Particles/computeShaderParticleSystem.js +2 -2
  131. package/Particles/computeShaderParticleSystem.js.map +1 -1
  132. package/Particles/particleHelper.d.ts +12 -1
  133. package/Particles/particleHelper.js +12 -1
  134. package/Particles/particleHelper.js.map +1 -1
  135. package/Particles/particleSystem.js +2 -2
  136. package/Particles/particleSystem.js.map +1 -1
  137. package/Particles/particleSystemSet.js +1 -1
  138. package/Particles/particleSystemSet.js.map +1 -1
  139. package/Particles/solidParticleSystem.d.ts +3 -0
  140. package/Particles/solidParticleSystem.js +3 -0
  141. package/Particles/solidParticleSystem.js.map +1 -1
  142. package/Particles/webgl2ParticleSystem.js +2 -2
  143. package/Particles/webgl2ParticleSystem.js.map +1 -1
  144. package/Physics/Plugins/ammoJSPlugin.d.ts +2 -2
  145. package/Physics/Plugins/ammoJSPlugin.js +29 -29
  146. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  147. package/Physics/Plugins/cannonJSPlugin.d.ts +2 -2
  148. package/Physics/Plugins/cannonJSPlugin.js +26 -26
  149. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  150. package/Physics/Plugins/oimoJSPlugin.js +9 -11
  151. package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
  152. package/Physics/physicsImpostor.d.ts +6 -6
  153. package/Physics/physicsImpostor.js +7 -6
  154. package/Physics/physicsImpostor.js.map +1 -1
  155. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +3 -3
  156. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  157. package/Rendering/utilityLayerRenderer.js +1 -1
  158. package/Rendering/utilityLayerRenderer.js.map +1 -1
  159. package/Shaders/sprites.fragment.js +1 -1
  160. package/Shaders/sprites.fragment.js.map +1 -1
  161. package/Sprites/spriteManager.d.ts +10 -1
  162. package/Sprites/spriteManager.js +10 -1
  163. package/Sprites/spriteManager.js.map +1 -1
  164. package/Sprites/spriteRenderer.js +1 -1
  165. package/Sprites/spriteRenderer.js.map +1 -1
  166. package/XR/features/WebXRLayers.js +1 -1
  167. package/XR/features/WebXRLayers.js.map +1 -1
  168. package/assetContainer.js +12 -12
  169. package/assetContainer.js.map +1 -1
  170. package/node.js +1 -1
  171. package/node.js.map +1 -1
  172. package/package.json +1 -1
  173. package/scene.d.ts +2 -0
  174. package/scene.js +15 -8
  175. package/scene.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuOcclusionQuery.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuOcclusionQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport type { WebGPUEngine } from \"../webgpuEngine\";\r\nimport type { WebGPUBufferManager } from \"./webgpuBufferManager\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport { WebGPUQuerySet } from \"./webgpuQuerySet\";\r\n\r\n/** @hidden */\r\nexport class WebGPUOcclusionQuery {\r\n private _engine: WebGPUEngine;\r\n private _device: GPUDevice;\r\n private _bufferManager: WebGPUBufferManager;\r\n\r\n private _currentTotalIndices: number;\r\n private _countIncrement: number;\r\n private _querySet: WebGPUQuerySet;\r\n private _availableIndices: number[] = [];\r\n private _lastBuffer: Nullable<BigUint64Array>;\r\n private _frameLastBuffer: number;\r\n\r\n public get querySet(): GPUQuerySet {\r\n return this._querySet.querySet;\r\n }\r\n\r\n public get hasQueries(): boolean {\r\n return this._currentTotalIndices !== this._availableIndices.length;\r\n }\r\n\r\n public get canBeginQuery(): boolean {\r\n const passIndex = this._engine._getCurrentRenderPassIndex();\r\n switch (passIndex) {\r\n case 0: {\r\n return this._engine._mainRenderPassWrapper.renderPassDescriptor!.occlusionQuerySet !== undefined;\r\n }\r\n case 1: {\r\n return this._engine._rttRenderPassWrapper.renderPassDescriptor!.occlusionQuerySet !== undefined;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n constructor(engine: WebGPUEngine, device: GPUDevice, bufferManager: WebGPUBufferManager, startCount = 50, incrementCount = 100) {\r\n this._engine = engine;\r\n this._device = device;\r\n this._bufferManager = bufferManager;\r\n\r\n this._frameLastBuffer = -1;\r\n this._currentTotalIndices = 0;\r\n this._countIncrement = incrementCount;\r\n\r\n this._allocateNewIndices(startCount);\r\n }\r\n\r\n public createQuery(): number {\r\n if (this._availableIndices.length === 0) {\r\n this._allocateNewIndices();\r\n }\r\n\r\n const index = this._availableIndices[this._availableIndices.length - 1];\r\n this._availableIndices.length--;\r\n\r\n return index;\r\n }\r\n\r\n public deleteQuery(index: number): void {\r\n this._availableIndices[this._availableIndices.length - 1] = index;\r\n }\r\n\r\n public isQueryResultAvailable(index: number): boolean {\r\n this._retrieveQueryBuffer();\r\n\r\n return !!this._lastBuffer && index < this._lastBuffer.length;\r\n }\r\n\r\n public getQueryResult(index: number): number {\r\n return Number(this._lastBuffer?.[index] ?? -1);\r\n }\r\n\r\n private _retrieveQueryBuffer(): void {\r\n if (this._lastBuffer && this._frameLastBuffer === this._engine.frameId) {\r\n return;\r\n }\r\n\r\n if (this._frameLastBuffer !== this._engine.frameId) {\r\n this._frameLastBuffer = this._engine.frameId;\r\n this._querySet.readValues(0, this._currentTotalIndices).then((arrayBuffer) => {\r\n this._lastBuffer = arrayBuffer;\r\n });\r\n }\r\n }\r\n\r\n private _allocateNewIndices(numIndices?: number): void {\r\n numIndices = numIndices ?? this._countIncrement;\r\n\r\n this._delayQuerySetDispose();\r\n\r\n for (let i = 0; i < numIndices; ++i) {\r\n this._availableIndices.push(this._currentTotalIndices + i);\r\n }\r\n\r\n this._currentTotalIndices += numIndices;\r\n this._querySet = new WebGPUQuerySet(this._currentTotalIndices, WebGPUConstants.QueryType.Occlusion, this._device, this._bufferManager, false);\r\n }\r\n\r\n private _delayQuerySetDispose(): void {\r\n const querySet = this._querySet;\r\n if (querySet) {\r\n // Wait a bit before disposing of the queryset, in case some queries are still running for it\r\n setTimeout(() => querySet.dispose, 1000);\r\n }\r\n }\r\n\r\n public dispose(): void {\r\n this._querySet?.dispose();\r\n this._availableIndices = [];\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"webgpuOcclusionQuery.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/WebGPU/webgpuOcclusionQuery.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport type { WebGPUEngine } from \"../webgpuEngine\";\r\nimport type { WebGPUBufferManager } from \"./webgpuBufferManager\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport { WebGPUQuerySet } from \"./webgpuQuerySet\";\r\n\r\n/** @hidden */\r\nexport class WebGPUOcclusionQuery {\r\n private _engine: WebGPUEngine;\r\n private _device: GPUDevice;\r\n private _bufferManager: WebGPUBufferManager;\r\n\r\n private _currentTotalIndices: number;\r\n private _countIncrement: number;\r\n private _querySet: WebGPUQuerySet;\r\n private _availableIndices: number[] = [];\r\n private _lastBuffer: Nullable<BigUint64Array>;\r\n private _frameLastBuffer: number;\r\n\r\n public get querySet(): GPUQuerySet {\r\n return this._querySet.querySet;\r\n }\r\n\r\n public get hasQueries(): boolean {\r\n return this._currentTotalIndices !== this._availableIndices.length;\r\n }\r\n\r\n public get canBeginQuery(): boolean {\r\n const passIndex = this._engine._getCurrentRenderPassIndex();\r\n switch (passIndex) {\r\n case 0: {\r\n return this._engine._mainRenderPassWrapper.renderPassDescriptor!.occlusionQuerySet !== undefined;\r\n }\r\n case 1: {\r\n return this._engine._rttRenderPassWrapper.renderPassDescriptor!.occlusionQuerySet !== undefined;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n constructor(engine: WebGPUEngine, device: GPUDevice, bufferManager: WebGPUBufferManager, startCount = 50, incrementCount = 100) {\r\n this._engine = engine;\r\n this._device = device;\r\n this._bufferManager = bufferManager;\r\n\r\n this._frameLastBuffer = -1;\r\n this._currentTotalIndices = 0;\r\n this._countIncrement = incrementCount;\r\n\r\n this._allocateNewIndices(startCount);\r\n }\r\n\r\n public createQuery(): number {\r\n if (this._availableIndices.length === 0) {\r\n this._allocateNewIndices();\r\n }\r\n\r\n const index = this._availableIndices[this._availableIndices.length - 1];\r\n this._availableIndices.length--;\r\n\r\n return index;\r\n }\r\n\r\n public deleteQuery(index: number): void {\r\n this._availableIndices[this._availableIndices.length - 1] = index;\r\n }\r\n\r\n public isQueryResultAvailable(index: number): boolean {\r\n this._retrieveQueryBuffer();\r\n\r\n return !!this._lastBuffer && index < this._lastBuffer.length;\r\n }\r\n\r\n public getQueryResult(index: number): number {\r\n return Number(this._lastBuffer?.[index] ?? -1);\r\n }\r\n\r\n private _retrieveQueryBuffer(): void {\r\n if (this._lastBuffer && this._frameLastBuffer === this._engine.frameId) {\r\n return;\r\n }\r\n\r\n if (this._frameLastBuffer !== this._engine.frameId) {\r\n this._frameLastBuffer = this._engine.frameId;\r\n this._querySet.readValues(0, this._currentTotalIndices).then((arrayBuffer) => {\r\n this._lastBuffer = arrayBuffer;\r\n });\r\n }\r\n }\r\n\r\n private _allocateNewIndices(numIndices?: number): void {\r\n numIndices = numIndices ?? this._countIncrement;\r\n\r\n this._delayQuerySetDispose();\r\n\r\n for (let i = 0; i < numIndices; ++i) {\r\n this._availableIndices.push(this._currentTotalIndices + i);\r\n }\r\n\r\n this._currentTotalIndices += numIndices;\r\n this._querySet = new WebGPUQuerySet(this._currentTotalIndices, WebGPUConstants.QueryType.Occlusion, this._device, this._bufferManager, false);\r\n }\r\n\r\n private _delayQuerySetDispose(): void {\r\n const querySet = this._querySet;\r\n if (querySet) {\r\n // Wait a bit before disposing of the queryset, in case some queries are still running for it\r\n setTimeout(() => querySet.dispose, 1000);\r\n }\r\n }\r\n\r\n public dispose(): void {\r\n this._querySet?.dispose();\r\n this._availableIndices.length = 0;\r\n }\r\n}\r\n"]}
@@ -477,16 +477,6 @@ export declare class Engine extends ThinEngine {
477
477
  */
478
478
  generateMipMapsForCubemap(texture: InternalTexture, unbind?: boolean): void;
479
479
  /** States */
480
- /**
481
- * Gets a boolean indicating if depth testing is enabled
482
- * @returns the current state
483
- */
484
- getDepthBuffer(): boolean;
485
- /**
486
- * Enable or disable depth buffering
487
- * @param enable defines the state to set
488
- */
489
- setDepthBuffer(enable: boolean): void;
490
480
  /**
491
481
  * Gets a boolean indicating if depth writing is enabled
492
482
  * @returns the current depth writing state
@@ -1277,6 +1267,8 @@ interface WebGLRenderingContext {
1277
1267
  clearBufferiv(buffer: number, drawbuffer: number, values: ArrayBufferView, srcOffset: number | null): void;
1278
1268
  clearBufferuiv(buffer: number, drawbuffer: number, values: ArrayBufferView, srcOffset: number | null): void;
1279
1269
  clearBufferfi(buffer: number, drawbuffer: number, depth: number, stencil: number): void;
1270
+
1271
+ vertexAttribIPointer(index: number, size: number, type: number, stride: number, offset: number): void;
1280
1272
  }
1281
1273
 
1282
1274
  interface ImageBitmap {
package/Engines/engine.js CHANGED
@@ -486,20 +486,6 @@ var Engine = /** @class */ (function (_super) {
486
486
  }
487
487
  };
488
488
  /** States */
489
- /**
490
- * Gets a boolean indicating if depth testing is enabled
491
- * @returns the current state
492
- */
493
- Engine.prototype.getDepthBuffer = function () {
494
- return this._depthCullingState.depthTest;
495
- };
496
- /**
497
- * Enable or disable depth buffering
498
- * @param enable defines the state to set
499
- */
500
- Engine.prototype.setDepthBuffer = function (enable) {
501
- this._depthCullingState.depthTest = enable;
502
- };
503
489
  /**
504
490
  * Gets a boolean indicating if depth writing is enabled
505
491
  * @returns the current depth writing state