62 lines
2.4 KiB
JavaScript
62 lines
2.4 KiB
JavaScript
import { extensions, ExtensionType } from '../../../extensions/Extensions.mjs';
|
|
import { GpuGraphicsAdaptor } from '../../../scene/graphics/gpu/GpuGraphicsAdaptor.mjs';
|
|
import { GpuMeshAdapter } from '../../../scene/mesh/gpu/GpuMeshAdapter.mjs';
|
|
import { GpuBatchAdaptor } from '../../batcher/gpu/GpuBatchAdaptor.mjs';
|
|
import { AbstractRenderer } from '../shared/system/AbstractRenderer.mjs';
|
|
import { SharedSystems, SharedRenderPipes } from '../shared/system/SharedSystems.mjs';
|
|
import { RendererType } from '../types.mjs';
|
|
import { BindGroupSystem } from './BindGroupSystem.mjs';
|
|
import { GpuBufferSystem } from './buffer/GpuBufferSystem.mjs';
|
|
import { GpuColorMaskSystem } from './GpuColorMaskSystem.mjs';
|
|
import { GpuDeviceSystem } from './GpuDeviceSystem.mjs';
|
|
import { GpuEncoderSystem } from './GpuEncoderSystem.mjs';
|
|
import { GpuStencilSystem } from './GpuStencilSystem.mjs';
|
|
import { GpuUboSystem } from './GpuUboSystem.mjs';
|
|
import { GpuUniformBatchPipe } from './GpuUniformBatchPipe.mjs';
|
|
import { PipelineSystem } from './pipeline/PipelineSystem.mjs';
|
|
import { GpuRenderTargetSystem } from './renderTarget/GpuRenderTargetSystem.mjs';
|
|
import { GpuShaderSystem } from './shader/GpuShaderSystem.mjs';
|
|
import { GpuStateSystem } from './state/GpuStateSystem.mjs';
|
|
import { GpuTextureSystem } from './texture/GpuTextureSystem.mjs';
|
|
|
|
"use strict";
|
|
const DefaultWebGPUSystems = [
|
|
...SharedSystems,
|
|
GpuUboSystem,
|
|
GpuEncoderSystem,
|
|
GpuDeviceSystem,
|
|
GpuBufferSystem,
|
|
GpuTextureSystem,
|
|
GpuRenderTargetSystem,
|
|
GpuShaderSystem,
|
|
GpuStateSystem,
|
|
PipelineSystem,
|
|
GpuColorMaskSystem,
|
|
GpuStencilSystem,
|
|
BindGroupSystem
|
|
];
|
|
const DefaultWebGPUPipes = [...SharedRenderPipes, GpuUniformBatchPipe];
|
|
const DefaultWebGPUAdapters = [GpuBatchAdaptor, GpuMeshAdapter, GpuGraphicsAdaptor];
|
|
const systems = [];
|
|
const renderPipes = [];
|
|
const renderPipeAdaptors = [];
|
|
extensions.handleByNamedList(ExtensionType.WebGPUSystem, systems);
|
|
extensions.handleByNamedList(ExtensionType.WebGPUPipes, renderPipes);
|
|
extensions.handleByNamedList(ExtensionType.WebGPUPipesAdaptor, renderPipeAdaptors);
|
|
extensions.add(...DefaultWebGPUSystems, ...DefaultWebGPUPipes, ...DefaultWebGPUAdapters);
|
|
class WebGPURenderer extends AbstractRenderer {
|
|
constructor() {
|
|
const systemConfig = {
|
|
name: "webgpu",
|
|
type: RendererType.WEBGPU,
|
|
systems,
|
|
renderPipes,
|
|
renderPipeAdaptors
|
|
};
|
|
super(systemConfig);
|
|
}
|
|
}
|
|
|
|
export { WebGPURenderer };
|
|
//# sourceMappingURL=WebGPURenderer.mjs.map
|