diff --git a/package-lock.json b/package-lock.json index 261b849ff364e8..c79c754f6f51f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1197,9 +1197,9 @@ } }, "node_modules/basic-ftp": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.1.0.tgz", - "integrity": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", + "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", "dev": true, "license": "MIT", "engines": { diff --git a/src/loaders/MaterialLoader.js b/src/loaders/MaterialLoader.js index 6a6c08d39ea650..2422c4a0af4626 100644 --- a/src/loaders/MaterialLoader.js +++ b/src/loaders/MaterialLoader.js @@ -215,7 +215,7 @@ class MaterialLoader extends Loader { if ( typeof json.vertexColors === 'number' ) { - material.vertexColors = ( json.vertexColors > 0 ) ? true : false; + material.vertexColors = json.vertexColors > 0; } else { diff --git a/src/math/Triangle.js b/src/math/Triangle.js index d568d443686b88..02128369e7370f 100644 --- a/src/math/Triangle.js +++ b/src/math/Triangle.js @@ -228,7 +228,7 @@ class Triangle { _v1.subVectors( a, b ); // strictly front facing - return ( _v0.cross( _v1 ).dot( direction ) < 0 ) ? true : false; + return _v0.cross( _v1 ).dot( direction ) < 0; } diff --git a/src/renderers/common/Animation.js b/src/renderers/common/Animation.js index 50d57b30d4102f..9fc359f4edc022 100644 --- a/src/renderers/common/Animation.js +++ b/src/renderers/common/Animation.js @@ -10,7 +10,7 @@ class Animation { * Constructs a new animation loop management component. * * @param {Renderer} renderer - A reference to the main renderer. - * @param {Nodes} nodes - Renderer component for managing nodes related logic. + * @param {NodeManager} nodes - Renderer component for managing nodes related logic. * @param {Info} info - Renderer component for managing metrics and monitoring data. */ constructor( renderer, nodes, info ) { @@ -25,7 +25,7 @@ class Animation { /** * Renderer component for managing nodes related logic. * - * @type {Nodes} + * @type {NodeManager} */ this.nodes = nodes; diff --git a/src/renderers/common/Background.js b/src/renderers/common/Background.js index 358958762d4ca2..65bf6e475fc04a 100644 --- a/src/renderers/common/Background.js +++ b/src/renderers/common/Background.js @@ -22,7 +22,7 @@ class Background extends DataMap { * Constructs a new background management component. * * @param {Renderer} renderer - The renderer. - * @param {Nodes} nodes - Renderer component for managing nodes related logic. + * @param {NodeManager} nodes - Renderer component for managing nodes related logic. */ constructor( renderer, nodes ) { @@ -38,7 +38,7 @@ class Background extends DataMap { /** * Renderer component for managing nodes related logic. * - * @type {Nodes} + * @type {NodeManager} */ this.nodes = nodes; diff --git a/src/renderers/common/Bindings.js b/src/renderers/common/Bindings.js index 6c188fc1cf3787..3ccc9191836b40 100644 --- a/src/renderers/common/Bindings.js +++ b/src/renderers/common/Bindings.js @@ -13,7 +13,7 @@ class Bindings extends DataMap { * Constructs a new bindings management component. * * @param {Backend} backend - The renderer's backend. - * @param {Nodes} nodes - Renderer component for managing nodes related logic. + * @param {NodeManager} nodes - Renderer component for managing nodes related logic. * @param {Textures} textures - Renderer component for managing textures. * @param {Attributes} attributes - Renderer component for managing attributes. * @param {Pipelines} pipelines - Renderer component for managing pipelines. @@ -54,7 +54,7 @@ class Bindings extends DataMap { /** * Renderer component for managing nodes related logic. * - * @type {Nodes} + * @type {NodeManager} */ this.nodes = nodes; diff --git a/src/renderers/common/CubeRenderTarget.js b/src/renderers/common/CubeRenderTarget.js index 596c8bdb7d1021..b88f962490a21e 100644 --- a/src/renderers/common/CubeRenderTarget.js +++ b/src/renderers/common/CubeRenderTarget.js @@ -109,7 +109,7 @@ class CubeRenderTarget extends RenderTarget { renderer.setMRT( currentMRT ); texture.minFilter = currentMinFilter; - texture.currentGenerateMipmaps = currentGenerateMipmaps; + texture.generateMipmaps = currentGenerateMipmaps; mesh.geometry.dispose(); mesh.material.dispose(); diff --git a/src/renderers/common/Pipelines.js b/src/renderers/common/Pipelines.js index a965abe9a11219..89cb7db33206b6 100644 --- a/src/renderers/common/Pipelines.js +++ b/src/renderers/common/Pipelines.js @@ -15,7 +15,7 @@ class Pipelines extends DataMap { * Constructs a new pipeline management component. * * @param {Backend} backend - The renderer's backend. - * @param {Nodes} nodes - Renderer component for managing nodes related logic. + * @param {NodeManager} nodes - Renderer component for managing nodes related logic. */ constructor( backend, nodes ) { @@ -31,7 +31,7 @@ class Pipelines extends DataMap { /** * Renderer component for managing nodes related logic. * - * @type {Nodes} + * @type {NodeManager} */ this.nodes = nodes; diff --git a/src/renderers/common/RenderObject.js b/src/renderers/common/RenderObject.js index cadb07fb572539..14bf7600751605 100644 --- a/src/renderers/common/RenderObject.js +++ b/src/renderers/common/RenderObject.js @@ -59,7 +59,7 @@ class RenderObject { /** * Constructs a new render object. * - * @param {Nodes} nodes - Renderer component for managing nodes related logic. + * @param {NodeManager} nodes - Renderer component for managing nodes related logic. * @param {Geometries} geometries - Renderer component for managing geometries. * @param {Renderer} renderer - The renderer. * @param {Object3D} object - The 3D object. @@ -77,7 +77,7 @@ class RenderObject { /** * Renderer component for managing nodes related logic. * - * @type {Nodes} + * @type {NodeManager} * @private */ this._nodes = nodes; diff --git a/src/renderers/common/RenderObjects.js b/src/renderers/common/RenderObjects.js index fc742b42a2f967..676cc2bd416942 100644 --- a/src/renderers/common/RenderObjects.js +++ b/src/renderers/common/RenderObjects.js @@ -14,7 +14,7 @@ class RenderObjects { * Constructs a new render object management component. * * @param {Renderer} renderer - The renderer. - * @param {Nodes} nodes - Renderer component for managing nodes related logic. + * @param {NodeManager} nodes - Renderer component for managing nodes related logic. * @param {Geometries} geometries - Renderer component for managing geometries. * @param {Pipelines} pipelines - Renderer component for managing pipelines. * @param {Bindings} bindings - Renderer component for managing bindings. @@ -32,7 +32,7 @@ class RenderObjects { /** * Renderer component for managing nodes related logic. * - * @type {Nodes} + * @type {NodeManager} */ this.nodes = nodes; @@ -179,7 +179,7 @@ class RenderObjects { /** * Factory method for creating render objects with the given list of parameters. * - * @param {Nodes} nodes - Renderer component for managing nodes related logic. + * @param {NodeManager} nodes - Renderer component for managing nodes related logic. * @param {Geometries} geometries - Renderer component for managing geometries. * @param {Renderer} renderer - The renderer. * @param {Object3D} object - The 3D object. diff --git a/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js b/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js index 3997207f0ccdf7..96973bc28a3ec4 100644 --- a/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +++ b/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js @@ -61,7 +61,7 @@ class WebGLTimestampQueryPool extends TimestampQueryPool { // Check if we have enough space for a new query pair if ( this.currentQueryIndex + 2 > this.maxQueries ) { - warnOnce( `WebGPUTimestampQueryPool [${ this.type }]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${ this.type.toUpperCase() } ).` ); + warnOnce( `WebGLTimestampQueryPool [${ this.type }]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${ this.type.toUpperCase() } ).` ); return null; } diff --git a/src/renderers/webgpu/utils/WebGPUTextureUtils.js b/src/renderers/webgpu/utils/WebGPUTextureUtils.js index 6aff79ec827e5f..9a23d4250fc2c3 100644 --- a/src/renderers/webgpu/utils/WebGPUTextureUtils.js +++ b/src/renderers/webgpu/utils/WebGPUTextureUtils.js @@ -538,9 +538,23 @@ class WebGPUTextureUtils { } else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isData3DTexture ) { - for ( let i = 0; i < options.image.depth; i ++ ) { + if ( texture.layerUpdates.size > 0 ) { - this._copyBufferToTexture( options.image, textureData.texture, textureDescriptorGPU, i, texture.flipY, i ); + for ( const layerIndex of texture.layerUpdates ) { + + this._copyBufferToTexture( options.image, textureData.texture, textureDescriptorGPU, layerIndex, texture.flipY, layerIndex ); + + } + + texture.clearLayerUpdates(); + + } else { + + for ( let i = 0; i < options.image.depth; i ++ ) { + + this._copyBufferToTexture( options.image, textureData.texture, textureDescriptorGPU, i, texture.flipY, i ); + + } }