38 lines
		
	
	
		
			892 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			892 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import ViewportTextureNode from './ViewportTextureNode.js'; | ||
|  | import { addNodeClass } from '../core/Node.js'; | ||
|  | import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js'; | ||
|  | import { viewportTopLeft } from './ViewportNode.js'; | ||
|  | import { FramebufferTexture } from 'three'; | ||
|  | 
 | ||
|  | let _sharedFramebuffer = null; | ||
|  | 
 | ||
|  | class ViewportSharedTextureNode extends ViewportTextureNode { | ||
|  | 
 | ||
|  | 	constructor( uvNode = viewportTopLeft, levelNode = null ) { | ||
|  | 
 | ||
|  | 		if ( _sharedFramebuffer === null ) { | ||
|  | 
 | ||
|  | 			_sharedFramebuffer = new FramebufferTexture(); | ||
|  | 
 | ||
|  | 		} | ||
|  | 
 | ||
|  | 		super( uvNode, levelNode, _sharedFramebuffer ); | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	updateReference() { | ||
|  | 
 | ||
|  | 		return this; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | export default ViewportSharedTextureNode; | ||
|  | 
 | ||
|  | export const viewportSharedTexture = nodeProxy( ViewportSharedTextureNode ); | ||
|  | 
 | ||
|  | addNodeElement( 'viewportSharedTexture', viewportSharedTexture ); | ||
|  | 
 | ||
|  | addNodeClass( 'ViewportSharedTextureNode', ViewportSharedTextureNode ); |