webgpu support
This commit is contained in:
parent
5352ef69a2
commit
dedf6b0467
22 changed files with 1656 additions and 324 deletions
26
project.cpp
26
project.cpp
|
|
@ -131,13 +131,14 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
// when its body is gated out. Vulkan-typed partitions stub to empty
|
||||
// modules under CRAFTER_GRAPHICS_WINDOW_DOM; the Dom/DomEvents/Router
|
||||
// partitions stub to empty modules in the opposite direction.
|
||||
std::array<fs::path, 32> ifaces = {
|
||||
std::array<fs::path, 37> ifaces = {
|
||||
"interfaces/Crafter.Graphics",
|
||||
"interfaces/Crafter.Graphics-Animation",
|
||||
"interfaces/Crafter.Graphics-Clipboard",
|
||||
"interfaces/Crafter.Graphics-ComputeShader",
|
||||
"interfaces/Crafter.Graphics-Decompress",
|
||||
"interfaces/Crafter.Graphics-DescriptorHeapVulkan",
|
||||
"interfaces/Crafter.Graphics-DescriptorHeapWebGPU",
|
||||
"interfaces/Crafter.Graphics-Device",
|
||||
"interfaces/Crafter.Graphics-Dom",
|
||||
"interfaces/Crafter.Graphics-DomEvents",
|
||||
|
|
@ -145,6 +146,7 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
"interfaces/Crafter.Graphics-FontAtlas",
|
||||
"interfaces/Crafter.Graphics-ForwardDeclarations",
|
||||
"interfaces/Crafter.Graphics-Gamepad",
|
||||
"interfaces/Crafter.Graphics-GraphicsTypes",
|
||||
"interfaces/Crafter.Graphics-ImageVulkan",
|
||||
"interfaces/Crafter.Graphics-Input",
|
||||
"interfaces/Crafter.Graphics-InputField",
|
||||
|
|
@ -163,29 +165,36 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
"interfaces/Crafter.Graphics-UIComponents",
|
||||
"interfaces/Crafter.Graphics-VulkanBuffer",
|
||||
"interfaces/Crafter.Graphics-VulkanTransition",
|
||||
"interfaces/Crafter.Graphics-WebGPU",
|
||||
"interfaces/Crafter.Graphics-WebGPUBuffer",
|
||||
"interfaces/Crafter.Graphics-WebGPUComputeShader",
|
||||
"interfaces/Crafter.Graphics-Window",
|
||||
};
|
||||
|
||||
if (dom) {
|
||||
// DOM impl set: only the files whose bodies do meaningful work
|
||||
// under CRAFTER_GRAPHICS_WINDOW_DOM. Vulkan-only impls (Mesh,
|
||||
// ComputeShader, Font, etc.) stay out — their interface stubs
|
||||
// mean no link-side references; including the impl would just
|
||||
// be dead code with no Vulkan headers to compile against.
|
||||
std::array<fs::path, 6> domImpls = {
|
||||
// DOM impl set. UI-Shared.cpp is backend-agnostic; UI-WebGPU.cpp
|
||||
// is the DOM-only implementation of UIRenderer's GPU-touching
|
||||
// methods. Font / FontAtlas / UIComponents are now portable.
|
||||
std::array<fs::path, 11> domImpls = {
|
||||
"implementations/Crafter.Graphics-Clipboard",
|
||||
"implementations/Crafter.Graphics-Dom",
|
||||
"implementations/Crafter.Graphics-Font",
|
||||
"implementations/Crafter.Graphics-FontAtlas",
|
||||
"implementations/Crafter.Graphics-Gamepad",
|
||||
"implementations/Crafter.Graphics-Input",
|
||||
"implementations/Crafter.Graphics-Router",
|
||||
"implementations/Crafter.Graphics-UI-Shared",
|
||||
"implementations/Crafter.Graphics-UI-WebGPU",
|
||||
"implementations/Crafter.Graphics-UIComponents",
|
||||
"implementations/Crafter.Graphics-Window",
|
||||
};
|
||||
cfg.GetInterfacesAndImplementations(ifaces, domImpls);
|
||||
// JS glue shipped alongside the .wasm so the loader has the
|
||||
// env-import surface the Window/Dom bindings expect.
|
||||
cfg.files.emplace_back(fs::path("additional/dom-env.js"));
|
||||
cfg.files.emplace_back(fs::path("additional/dom-webgpu.js"));
|
||||
} else {
|
||||
std::array<fs::path, 13> impls = {
|
||||
std::array<fs::path, 14> impls = {
|
||||
"implementations/Crafter.Graphics-Clipboard",
|
||||
"implementations/Crafter.Graphics-ComputeShader",
|
||||
"implementations/Crafter.Graphics-Device",
|
||||
|
|
@ -197,6 +206,7 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
"implementations/Crafter.Graphics-Mesh",
|
||||
"implementations/Crafter.Graphics-RenderingElement3D",
|
||||
"implementations/Crafter.Graphics-UI",
|
||||
"implementations/Crafter.Graphics-UI-Shared",
|
||||
"implementations/Crafter.Graphics-UIComponents",
|
||||
"implementations/Crafter.Graphics-Window",
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue