three
Version:
JavaScript 3D library
69 lines (49 loc) • 1.46 kB
JavaScript
import Renderer from '../common/Renderer.js';
import WebGLBackend from '../webgl-fallback/WebGLBackend.js';
import WebGPUBackend from './WebGPUBackend.js';
import BasicNodeLibrary from './nodes/BasicNodeLibrary.js';
/**
* This alternative version of {@link WebGPURenderer} only supports node materials.
* So classes like `MeshBasicMaterial` are not compatible.
*
* @private
* @augments Renderer
*/
class WebGPURenderer extends Renderer {
/**
* Constructs a new WebGPU renderer.
*
* @param {WebGPURenderer~Options} [parameters] - The configuration parameter.
*/
constructor( parameters = {} ) {
let BackendClass;
if ( parameters.forceWebGL ) {
BackendClass = WebGLBackend;
} else {
BackendClass = WebGPUBackend;
parameters.getFallback = () => {
console.warn( 'THREE.WebGPURenderer: WebGPU is not available, running under WebGL2 backend.' );
return new WebGLBackend( parameters );
};
}
const backend = new BackendClass( parameters );
super( backend, parameters );
/**
* The generic default value is overwritten with the
* standard node library for type mapping. Material
* mapping is not supported with this version.
*
* @type {BasicNodeLibrary}
*/
this.library = new BasicNodeLibrary();
/**
* This flag can be used for type testing.
*
* @type {boolean}
* @readonly
* @default true
*/
this.isWebGPURenderer = true;
}
}
export default WebGPURenderer;