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