50 lines
		
	
	
		
			767 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			767 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import { SampledTexture } from '../SampledTexture.js'; | ||
|  | 
 | ||
|  | class NodeSampledTexture extends SampledTexture { | ||
|  | 
 | ||
|  | 	constructor( name, textureNode ) { | ||
|  | 
 | ||
|  | 		super( name, textureNode ? textureNode.value : null ); | ||
|  | 
 | ||
|  | 		this.textureNode = textureNode; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	get needsBindingsUpdate() { | ||
|  | 
 | ||
|  | 		return this.textureNode.value !== this.texture || super.needsBindingsUpdate; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	update() { | ||
|  | 
 | ||
|  | 		const { textureNode } = this; | ||
|  | 
 | ||
|  | 		if ( this.texture !== textureNode.value ) { | ||
|  | 
 | ||
|  | 			this.texture = textureNode.value; | ||
|  | 
 | ||
|  | 			return true; | ||
|  | 
 | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return super.update(); | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | class NodeSampledCubeTexture extends NodeSampledTexture { | ||
|  | 
 | ||
|  | 	constructor( name, textureNode ) { | ||
|  | 
 | ||
|  | 		super( name, textureNode ); | ||
|  | 
 | ||
|  | 		this.isSampledCubeTexture = true; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | export { NodeSampledTexture, NodeSampledCubeTexture }; |