3D-Demo/jsm/nodes/core/UniformNode.js

41 lines
794 B
JavaScript

import InputNode from './InputNode.js';
class UniformNode extends InputNode {
getUniformHash( builder ) {
return this.getHash( builder );
}
generate( builder, output ) {
const type = this.getNodeType( builder );
const hash = this.getUniformHash( builder );
let sharedNode = builder.getNodeFromHash( hash );
if ( sharedNode === undefined ) {
builder.setHashNode( this, hash );
sharedNode = this;
}
const sharedNodeType = sharedNode.getInputType( builder );
const nodeUniform = builder.getUniformFromNode( sharedNode, builder.shaderStage, sharedNodeType );
const propertyName = builder.getPropertyName( nodeUniform );
return builder.format( propertyName, type, output );
}
}
UniformNode.prototype.isUniformNode = true;
export default UniformNode;