Skip to content

Commit 5f34371

Browse files
authored
TSL: Fix setName() for attributes (#33432)
1 parent 35ff62b commit 5f34371

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

src/nodes/accessors/BufferAttributeNode.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,11 @@ class BufferAttributeNode extends InputNode {
265265
generate( builder ) {
266266

267267
const nodeType = this.getNodeType( builder );
268+
const nodeName = builder.context.nodeName;
268269

269-
const nodeAttribute = builder.getBufferAttributeFromNode( this, nodeType );
270+
if ( nodeName !== undefined ) delete builder.context.nodeName; // deleting when consumed
271+
272+
const nodeAttribute = builder.getBufferAttributeFromNode( this, nodeType, nodeName );
270273
const propertyName = builder.getPropertyName( nodeAttribute );
271274

272275
let output = null;
@@ -279,7 +282,15 @@ class BufferAttributeNode extends InputNode {
279282

280283
} else {
281284

282-
const nodeVarying = varying( this );
285+
let varyingName;
286+
287+
if ( nodeName ) {
288+
289+
varyingName = nodeName + 'Varying';
290+
291+
}
292+
293+
const nodeVarying = varying( this, varyingName );
283294

284295
output = nodeVarying.build( builder, nodeType );
285296

src/nodes/core/NodeBuilder.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1839,9 +1839,10 @@ class NodeBuilder {
18391839
*
18401840
* @param {BufferAttributeNode} node - The buffer attribute node.
18411841
* @param {string} type - The node type.
1842+
* @param {?string} [name=null] - The name of the buffer attribute.
18421843
* @return {NodeAttribute} The node attribute.
18431844
*/
1844-
getBufferAttributeFromNode( node, type ) {
1845+
getBufferAttributeFromNode( node, type, name = null ) {
18451846

18461847
const nodeData = this.getDataFromNode( node, 'vertex' );
18471848

@@ -1851,7 +1852,13 @@ class NodeBuilder {
18511852

18521853
const index = this.uniforms.index ++;
18531854

1854-
bufferAttribute = new NodeAttribute( 'nodeAttribute' + index, type, node );
1855+
if ( name === null ) {
1856+
1857+
name = 'nodeAttribute' + index;
1858+
1859+
}
1860+
1861+
bufferAttribute = new NodeAttribute( name, type, node );
18551862

18561863
this.bufferAttributes.push( bufferAttribute );
18571864

0 commit comments

Comments
 (0)