30 lines
		
	
	
		
			709 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			709 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import ReferenceNode from './ReferenceNode.js';
 | |
| import { addNodeClass } from '../core/Node.js';
 | |
| import { nodeObject } from '../shadernode/ShaderNode.js';
 | |
| 
 | |
| class RendererReferenceNode extends ReferenceNode {
 | |
| 
 | |
| 	constructor( property, inputType, renderer = null ) {
 | |
| 
 | |
| 		super( property, inputType, renderer );
 | |
| 
 | |
| 		this.renderer = renderer;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	updateReference( state ) {
 | |
| 
 | |
| 		this.reference = this.renderer !== null ? this.renderer : state.renderer;
 | |
| 
 | |
| 		return this.reference;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| export default RendererReferenceNode;
 | |
| 
 | |
| export const rendererReference = ( name, type, renderer ) => nodeObject( new RendererReferenceNode( name, type, renderer ) );
 | |
| 
 | |
| addNodeClass( 'RendererReferenceNode', RendererReferenceNode );
 |