working mesh shader

This commit is contained in:
Jorijn van der Graaf 2025-04-26 20:49:56 +02:00
commit 27ba32cdf5
11 changed files with 175 additions and 30 deletions

View file

@ -5,6 +5,10 @@
import Crafter.Graphics;
using namespace Crafter;
typedef VulkanShader<"test.spirv", "main", VK_SHADER_STAGE_MESH_BIT_EXT, 1, {{VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0}}> MeshShader;
typedef VulkanShader<"test2.spirv", "main", VK_SHADER_STAGE_FRAGMENT_BIT, 0, {}> FragmentShader;
typedef VulkanPipeline<VulkanShader<"test.spirv", "main", VK_SHADER_STAGE_MESH_BIT_EXT, 1, {{VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0}}>, VulkanShader<"test2.spirv", "main", VK_SHADER_STAGE_FRAGMENT_BIT, 0, {}>> Pipeline;
int main() {
// WindowWaylandWayland window("test", 128, 128);
// UiElement test(
@ -28,10 +32,12 @@ int main() {
// }
VulkanDevice::CreateDevice();
WindowWaylandVulkan window("bruh", 128, 128);
VulkanShader<"test.spirv", "main", VK_SHADER_STAGE_MESH_BIT_EXT>::CreateShader();
VulkanShader<"test2.spirv", "main", VK_SHADER_STAGE_FRAGMENT_BIT>::CreateShader();
VulkanPipeline<VulkanShader<"test.spirv", "main", VK_SHADER_STAGE_MESH_BIT_EXT>, VulkanShader<"test2.spirv", "main", VK_SHADER_STAGE_FRAGMENT_BIT>>::CreatePipeline();
WindowWaylandVulkan window("Crafter.Graphics", 128, 128);
MeshShader::CreateShader();
FragmentShader::CreateShader();
Pipeline::CreatePipeline();
VulkanElement test = VulkanElement::FromPipeline<Pipeline>(3, 1, 1);
window.vulkanElements.AddComponent(&test);
window.Start();
while(true) {