#include #include #include #include import Crafter.Graphics; using namespace Crafter; typedef VulkanShader<"test.spirv", "main", VK_SHADER_STAGE_MESH_BIT_EXT, 3, {{{VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0}, {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, {VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2}}}> MeshShader; typedef VulkanShader<"test2.spirv", "main", VK_SHADER_STAGE_FRAGMENT_BIT, 0, {}> FragmentShader; typedef VulkanPipeline Pipeline; int main() { // WindowWaylandWayland window("test", 128, 128); // UiElement test( // 0.5, //anchorX // 0.5, //anchorY // 2, //bufferWidth // 1, //bufferHeight // std::uint32_t(30), //absoluteSizeX // std::uint32_t(30), //absoluteSizeY // 0.5, //anchorOffsetX // 0.5, //anchorOffsetY // 0, //z // false //ignoreScaling // ); // window.scale = 1; // test.buffer = {{255, 0, 0 ,255}, {0, 255, 0 ,255}}; // window.elements.AddComponent(&test); // window.Start(); // while(true) { // } //WriteDescriptor(0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor); VulkanDevice::CreateDevice(); MeshShader::CreateShader(); FragmentShader::CreateShader(); Pipeline::CreatePipeline(); WindowWaylandVulkan window("Crafter.Graphics", 128, 128); VulkanElement test = VulkanElementFromPipeline(1, 1, 1); Camera camera; test.WriteDescriptor(0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &camera.buffer.descriptor); Mesh mesh(3, 3); mesh.verticies.value[0] = {0.0f, -1.0f, 0.0f, 1.0f}; mesh.verticies.value[1] = {-1.0f, 1.0f, 0.0f, 1.0f}; mesh.verticies.value[2] = {1.0f, 1.0f, 0.0f, 1.0f}; mesh.indicies.value[0] = 0; mesh.indicies.value[0] = 1; mesh.indicies.value[0] = 2; test.WriteDescriptor(0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, &mesh.verticies.descriptor); test.WriteDescriptor(0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2, &mesh.indicies.descriptor); window.vulkanElements.AddComponent(&test); window.Start(); while(true) { } }