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