54 lines
		
	
	
		
			989 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			989 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import WebGPU from '../../capabilities/WebGPU.js'; | ||
|  | 
 | ||
|  | import Renderer from '../common/Renderer.js'; | ||
|  | import WebGLBackend from '../webgl/WebGLBackend.js'; | ||
|  | import WebGPUBackend from './WebGPUBackend.js'; | ||
|  | /* | ||
|  | const debugHandler = { | ||
|  | 
 | ||
|  | 	get: function ( target, name ) { | ||
|  | 
 | ||
|  | 		// Add |update
 | ||
|  | 		if ( /^(create|destroy)/.test( name ) ) console.log( 'WebGPUBackend.' + name ); | ||
|  | 
 | ||
|  | 		return target[ name ]; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | }; | ||
|  | */ | ||
|  | class WebGPURenderer extends Renderer { | ||
|  | 
 | ||
|  | 	constructor( parameters = {} ) { | ||
|  | 
 | ||
|  | 		let BackendClass; | ||
|  | 
 | ||
|  | 		if ( parameters.forceWebGL ) { | ||
|  | 
 | ||
|  | 			BackendClass = WebGLBackend; | ||
|  | 
 | ||
|  | 		} else if ( WebGPU.isAvailable() ) { | ||
|  | 
 | ||
|  | 			BackendClass = WebGPUBackend; | ||
|  | 
 | ||
|  | 		} else { | ||
|  | 
 | ||
|  | 			BackendClass = WebGLBackend; | ||
|  | 
 | ||
|  | 			console.warn( 'THREE.WebGPURenderer: WebGPU is not available, running under WebGL2 backend.' ); | ||
|  | 
 | ||
|  | 		} | ||
|  | 
 | ||
|  | 		const backend = new BackendClass( parameters ); | ||
|  | 
 | ||
|  | 		//super( new Proxy( backend, debugHandler ) );
 | ||
|  | 		super( backend, parameters ); | ||
|  | 
 | ||
|  | 		this.isWebGPURenderer = true; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | export default WebGPURenderer; |