cleaned up renderer

This commit is contained in:
Jorijn van der Graaf 2026-03-09 20:10:19 +01:00
commit d661c88ee2
58 changed files with 3030 additions and 4722 deletions

View file

@ -3,33 +3,68 @@
"configurations": [
{
"name": "base",
"implementations": ["implementations/Crafter.Graphics-Font", "implementations/Crafter.Graphics-Window", "implementations/Crafter.Graphics-MouseElement", "implementations/Crafter.Graphics-Transform", "implementations/Crafter.Graphics-GridElement", "implementations/Crafter.Graphics-Image"],
"interfaces": ["interfaces/Crafter.Graphics-Window", "interfaces/Crafter.Graphics", "interfaces/Crafter.Graphics-Types", "interfaces/Crafter.Graphics-Font", "interfaces/Crafter.Graphics-Image", "interfaces/Crafter.Graphics-Shm", "interfaces/Crafter.Graphics-Animation", "interfaces/Crafter.Graphics-RenderingElement", "interfaces/Crafter.Graphics-MouseElement", "interfaces/Crafter.Graphics-Transform", "interfaces/Crafter.Graphics-GridElement", "interfaces/Crafter.Graphics-VulkanDevice", "interfaces/Crafter.Graphics-VulkanTransition", "interfaces/Crafter.Graphics-Mesh", "interfaces/Crafter.Graphics-VulkanBuffer", "interfaces/Crafter.Graphics-RenderingElement3DVulkan", "interfaces/Crafter.Graphics-DescriptorPoolVulkan", "interfaces/Crafter.Graphics-ShaderVulkan", "interfaces/Crafter.Graphics-PipelineRTVulkan", "interfaces/Crafter.Graphics-ShaderBindingTableVulkan", "interfaces/Crafter.Graphics-ImageVulkan", "interfaces/Crafter.Graphics-SamplerVulkan", "interfaces/Crafter.Graphics-DescriptorSetLayoutVulkan"],
"implementations": [
"implementations/Crafter.Graphics-Font",
"implementations/Crafter.Graphics-Window",
"implementations/Crafter.Graphics-MouseElement",
"implementations/Crafter.Graphics-Transform2D",
"implementations/Crafter.Graphics-GridElement",
"implementations/Crafter.Graphics-Rendertarget",
"implementations/Crafter.Graphics-Device"
],
"interfaces": [
"interfaces/Crafter.Graphics-Window",
"interfaces/Crafter.Graphics",
"interfaces/Crafter.Graphics-Types",
"interfaces/Crafter.Graphics-Font",
"interfaces/Crafter.Graphics-Animation",
"interfaces/Crafter.Graphics-RenderingElement2D",
"interfaces/Crafter.Graphics-MouseElement",
"interfaces/Crafter.Graphics-Transform2D",
"interfaces/Crafter.Graphics-GridElement",
"interfaces/Crafter.Graphics-Device",
"interfaces/Crafter.Graphics-VulkanTransition",
"interfaces/Crafter.Graphics-Mesh",
"interfaces/Crafter.Graphics-VulkanBuffer",
"interfaces/Crafter.Graphics-RenderingElement3D",
"interfaces/Crafter.Graphics-DescriptorPoolVulkan",
"interfaces/Crafter.Graphics-ShaderVulkan",
"interfaces/Crafter.Graphics-PipelineRTVulkan",
"interfaces/Crafter.Graphics-ShaderBindingTableVulkan",
"interfaces/Crafter.Graphics-ImageVulkan",
"interfaces/Crafter.Graphics-SamplerVulkan",
"interfaces/Crafter.Graphics-DescriptorSetLayoutVulkan",
"interfaces/Crafter.Graphics-Rendertarget"
],
"type": "library"
},
{
"name": "wayland",
"implementations": ["implementations/Crafter.Graphics-Window_wayland", "implementations/Crafter.Graphics-Shm"],
"interfaces": [],
"libs": ["wayland-client", "xkbcommon"],
"c_files": ["lib/xdg-shell-protocol", "lib/wayland-xdg-decoration-unstable-v1-client-protocol", "lib/fractional-scale-v1", "lib/viewporter"],
"extends": ["base"],
"defines": [
{
"name": "CRAFTER_GRAPHICS_WAYLAND"
"name": "CRAFTER_GRAPHICS_WINDOW_WAYLAND"
}
]
},
{
"name": "win32",
"libs": ["kernel32", "user32"],
"extends": ["base"],
"defines": [
{
"name": "CRAFTER_GRAPHICS_WINDOW_WIN32"
}
]
},
{
"name": "vulkan",
"implementations": ["implementations/Crafter.Graphics-VulkanDevice", "implementations/Crafter.Graphics-Shm", "implementations/Crafter.Graphics-Window_vulkan", "implementations/Crafter.Graphics-Mesh_vulkan", "implementations/Crafter.Graphics-RenderingElement3DVulkan"],
"interfaces": [],
"libs": ["wayland-client", "xkbcommon", "vulkan"],
"c_files": ["lib/xdg-shell-protocol", "lib/wayland-xdg-decoration-unstable-v1-client-protocol", "lib/fractional-scale-v1", "lib/viewporter"],
"extends": ["base"],
"implementations": ["implementations/Crafter.Graphics-Mesh", "implementations/Crafter.Graphics-RenderingElement3D"],
"defines": [
{
"name": "CRAFTER_GRAPHICS_VULKAN"
"name": "CRAFTER_GRAPHICS_RENDERER_VULKAN"
}
],
"dependencies": [
@ -44,27 +79,10 @@
]
},
{
"name": "vulkan-windows",
"implementations": ["implementations/Crafter.Graphics-VulkanDevice", "implementations/Crafter.Graphics-Window_vulkan_windows", "implementations/Crafter.Graphics-Mesh_vulkan", "implementations/Crafter.Graphics-RenderingElement3DVulkan"],
"interfaces": [],
"libs": ["kernel32", "user32"],
"extends": ["base"],
"name": "software",
"defines": [
{
"name": "CRAFTER_GRAPHICS_VULKAN"
},
{
"name": "CRAFTER_GRAPHICS_WINDOWS"
}
],
"dependencies": [
{
"path":"https://github.com/KhronosGroup/Vulkan-Headers.git",
"type":"include"
},
{
"path":"https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git",
"type":"include"
"name": "CRAFTER_GRAPHICS_RENDERER_SOFTWARE"
}
]
},
@ -92,7 +110,8 @@
"path":"https://forgejo.catcrafts.net/Catcrafts/Crafter.Math.git",
"configuration":"lib"
}
]
],
"defines": [{ "name": "CRAFTER_TIMING" }]
},
{
"name": "deps-debug",
@ -112,52 +131,57 @@
},
{
"name": "lib-wayland",
"extends": ["wayland", "deps"],
"type": "library"
"extends": ["wayland", "software", "deps"]
},
{
"name": "lib-wayland-timing",
"extends": ["wayland", "deps-timing"],
"type": "library",
"defines": [{ "name": "CRAFTER_TIMING" }]
"extends": ["wayland", "software", "deps-timing"]
},
{
"name": "lib-wayland-debug",
"type": "library",
"extends": ["wayland", "deps-debug"]
"extends": ["wayland", "software", "deps-debug"]
},
{
"name": "lib-vulkan",
"extends": ["vulkan", "deps"],
"type": "library"
"name": "lib-wayland-vulkan",
"extends": ["wayland", "vulkan", "deps"],
"libs": ["vulkan"]
},
{
"name": "lib-vulkan-windows",
"extends": ["vulkan-windows", "deps"],
"type": "library"
"name": "lib-wayland-vulkan-timing",
"extends": ["wayland", "vulkan", "deps-timing"],
"libs": ["vulkan"]
},
{
"name": "lib-vulkan-windows-debug",
"extends": ["vulkan-windows", "deps-debug"],
"type": "library",
"debug": true
"name": "lib-wayland-vulkan-debug",
"extends": ["wayland", "vulkan", "deps-debug"],
"libs": ["vulkan"]
},
{
"name": "lib-vulkan-windows-timing",
"extends": ["vulkan-windows", "deps-timing"],
"type": "library",
"defines": [{ "name": "CRAFTER_TIMING" }]
"name": "lib-win32",
"extends": ["win32", "software", "deps"]
},
{
"name": "lib-vulkan-timing",
"extends": ["vulkan", "deps-timing"],
"type": "library",
"defines": [{ "name": "CRAFTER_TIMING" }]
"name": "lib-win32-timing",
"extends": ["win32", "software", "deps-timing"]
},
{
"name": "lib-vulkan-debug",
"type": "library",
"extends": ["vulkan", "deps-debug"]
"name": "lib-win32-debug",
"extends": ["win32", "software", "deps-debug"]
},
{
"name": "lib-win32-vulkan",
"extends": ["win32", "vulkan", "deps"],
"libs": ["vulkan-1"]
},
{
"name": "lib-win32-vulkan-timing",
"extends": ["win32", "vulkan", "deps-timing"],
"libs": ["vulkan-1"]
},
{
"name": "lib-win32-vulkan-debug",
"extends": ["win32", "vulkan", "deps-debug"],
"libs": ["vulkan-1"]
}
]
}