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 ); |