new UI system
This commit is contained in:
parent
d840a81448
commit
216972e73a
82 changed files with 4837 additions and 3243 deletions
61
project.cpp
61
project.cpp
|
|
@ -47,49 +47,50 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
cfg.cFiles.push_back("lib/viewporter");
|
||||
}
|
||||
|
||||
// Renderer: --vulkan opts in (clones Vulkan-Headers + Vulkan-Utility-Libraries
|
||||
// for headers and links libvulkan); default is the software path.
|
||||
if (opts.Has("--vulkan")) {
|
||||
cfg.defines.push_back({"CRAFTER_GRAPHICS_RENDERER_VULKAN", ""});
|
||||
ExternalDependency& vkHeaders = cfg.externalDependencies.emplace_back();
|
||||
vkHeaders.name = "Vulkan-Headers";
|
||||
vkHeaders.source.url = "https://github.com/KhronosGroup/Vulkan-Headers.git";
|
||||
vkHeaders.builder = ExternalBuilder::None;
|
||||
vkHeaders.includeDirs = { "include" };
|
||||
ExternalDependency& vkUtility = cfg.externalDependencies.emplace_back();
|
||||
vkUtility.name = "Vulkan-Utility-Libraries";
|
||||
vkUtility.source.url = "https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git";
|
||||
vkUtility.builder = ExternalBuilder::None;
|
||||
vkUtility.includeDirs = { "include" };
|
||||
cfg.linkFlags.push_back(windows ? "-lvulkan-1" : "-lvulkan");
|
||||
} else {
|
||||
cfg.defines.push_back({"CRAFTER_GRAPHICS_RENDERER_SOFTWARE", ""});
|
||||
}
|
||||
// Vulkan is the only renderer. Software fallback is provided externally
|
||||
// via the Vulkan loader (e.g. llvmpipe / lavapipe) — no separate code path.
|
||||
ExternalDependency& vkHeaders = cfg.externalDependencies.emplace_back();
|
||||
vkHeaders.name = "Vulkan-Headers";
|
||||
vkHeaders.source.url = "https://github.com/KhronosGroup/Vulkan-Headers.git";
|
||||
vkHeaders.builder = ExternalBuilder::None;
|
||||
vkHeaders.includeDirs = { "include" };
|
||||
ExternalDependency& vkUtility = cfg.externalDependencies.emplace_back();
|
||||
vkUtility.name = "Vulkan-Utility-Libraries";
|
||||
vkUtility.source.url = "https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git";
|
||||
vkUtility.builder = ExternalBuilder::None;
|
||||
vkUtility.includeDirs = { "include" };
|
||||
cfg.linkFlags.push_back(windows ? "-lvulkan-1" : "-lvulkan");
|
||||
|
||||
if (opts.Has("--timing")) cfg.defines.push_back({"CRAFTER_TIMING", ""});
|
||||
|
||||
std::array<fs::path, 24> ifaces = {
|
||||
std::array<fs::path, 30> ifaces = {
|
||||
"interfaces/Crafter.Graphics",
|
||||
"interfaces/Crafter.Graphics-Animation",
|
||||
"interfaces/Crafter.Graphics-DescriptorHeapVulkan",
|
||||
"interfaces/Crafter.Graphics-Device",
|
||||
"interfaces/Crafter.Graphics-Font",
|
||||
"interfaces/Crafter.Graphics-ForwardDeclarations",
|
||||
"interfaces/Crafter.Graphics-GridElement",
|
||||
"interfaces/Crafter.Graphics-ImageVulkan",
|
||||
"interfaces/Crafter.Graphics-Mesh",
|
||||
"interfaces/Crafter.Graphics-MouseElement",
|
||||
"interfaces/Crafter.Graphics-PipelineRTVulkan",
|
||||
"interfaces/Crafter.Graphics-RenderingElement2D",
|
||||
"interfaces/Crafter.Graphics-RenderingElement2DBase",
|
||||
"interfaces/Crafter.Graphics-RenderingElement2DVulkan",
|
||||
"interfaces/Crafter.Graphics-RenderingElement3D",
|
||||
"interfaces/Crafter.Graphics-Rendertarget",
|
||||
"interfaces/Crafter.Graphics-RenderPass",
|
||||
"interfaces/Crafter.Graphics-RTPass",
|
||||
"interfaces/Crafter.Graphics-SamplerVulkan",
|
||||
"interfaces/Crafter.Graphics-ShaderBindingTableVulkan",
|
||||
"interfaces/Crafter.Graphics-ShaderVulkan",
|
||||
"interfaces/Crafter.Graphics-Transform2D",
|
||||
"interfaces/Crafter.Graphics-Types",
|
||||
"interfaces/Crafter.Graphics-UI",
|
||||
"interfaces/Crafter.Graphics-UIAtlas",
|
||||
"interfaces/Crafter.Graphics-UIDrawList",
|
||||
"interfaces/Crafter.Graphics-UIHit",
|
||||
"interfaces/Crafter.Graphics-UILayout",
|
||||
"interfaces/Crafter.Graphics-UILength",
|
||||
"interfaces/Crafter.Graphics-UIRenderer",
|
||||
"interfaces/Crafter.Graphics-UIScene",
|
||||
"interfaces/Crafter.Graphics-UITheme",
|
||||
"interfaces/Crafter.Graphics-UIWidget",
|
||||
"interfaces/Crafter.Graphics-UIWidgets",
|
||||
"interfaces/Crafter.Graphics-VulkanBuffer",
|
||||
"interfaces/Crafter.Graphics-VulkanTransition",
|
||||
"interfaces/Crafter.Graphics-Window",
|
||||
|
|
@ -98,13 +99,15 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
"implementations/Crafter.Graphics-Device",
|
||||
"implementations/Crafter.Graphics-Font",
|
||||
"implementations/Crafter.Graphics-Mesh",
|
||||
"implementations/Crafter.Graphics-MouseElement",
|
||||
"implementations/Crafter.Graphics-Rendertarget",
|
||||
"implementations/Crafter.Graphics-RenderingElement3D",
|
||||
"implementations/Crafter.Graphics-Transform2D",
|
||||
"implementations/Crafter.Graphics-UIAtlas",
|
||||
"implementations/Crafter.Graphics-UIRenderer",
|
||||
"implementations/Crafter.Graphics-UIScene",
|
||||
"implementations/Crafter.Graphics-Window",
|
||||
};
|
||||
cfg.GetInterfacesAndImplementations(ifaces, impls);
|
||||
|
||||
cfg.shaders.emplace_back(fs::path("shaders/ui.comp.glsl"), std::string("main"), ShaderType::Compute);
|
||||
|
||||
return cfg;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue