From 610b8c63c9347986e7bd7bb80ef23f9ba276588c Mon Sep 17 00:00:00 2001 From: Alexander Gauggel <agauggel@uni-koblenz.de> Date: Sat, 5 Jun 2021 16:25:49 +0200 Subject: [PATCH] [#66] Fix triangle project main --- projects/first_triangle/src/main.cpp | 41 +++++++++++++++------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/projects/first_triangle/src/main.cpp b/projects/first_triangle/src/main.cpp index 40e8a3e2..b4a08659 100644 --- a/projects/first_triangle/src/main.cpp +++ b/projects/first_triangle/src/main.cpp @@ -79,9 +79,6 @@ int main(int argc, const char** argv) { // an example attachment for passes that output to the window const vkcv::AttachmentDescription present_color_attachment( - vkcv::AttachmentLayout::UNDEFINED, - vkcv::AttachmentLayout::COLOR_ATTACHMENT, - vkcv::AttachmentLayout::PRESENTATION, vkcv::AttachmentOperation::STORE, vkcv::AttachmentOperation::CLEAR, core.getSwapchainImageFormat()); @@ -103,21 +100,21 @@ int main(int argc, const char** argv) { const vkcv::PipelineConfig trianglePipelineDefinition( triangleShaderProgram, - windowWidth, - windowHeight, + (uint32_t)windowWidth, + (uint32_t)windowHeight, trianglePass, {}, - {}); + {}, + false); + vkcv::PipelineHandle trianglePipeline = core.createGraphicsPipeline(trianglePipelineDefinition); - + if (!trianglePipeline) { std::cout << "Error. Could not create graphics pipeline. Exiting." << std::endl; return EXIT_FAILURE; } - std::vector<vkcv::VertexBufferBinding> vertexBufferBindings; - /* * BufferHandle triangleVertices = core.createBuffer(vertices); * BufferHandle triangleIndices = core.createBuffer(indices); @@ -133,10 +130,15 @@ int main(int argc, const char** argv) { * * PipelineHandle trianglePipeline = core.CreatePipeline(trianglePipeline); */ - auto start = std::chrono::system_clock::now(); + auto start = std::chrono::system_clock::now(); vkcv::ImageHandle swapchainImageHandle = vkcv::ImageHandle::createSwapchainImageHandle(); + const vkcv::Mesh renderMesh({}, triangleIndexBuffer.getVulkanHandle(), 3); + vkcv::DrawcallInfo drawcall(renderMesh, {}); + + const vkcv::ImageHandle swapchainInput = vkcv::ImageHandle::createSwapchainImageHandle(); + while (window.isWindowOpen()) { window.pollEvents(); @@ -147,17 +149,18 @@ int main(int argc, const char** argv) { cameraManager.getCamera().updateView(std::chrono::duration<double>(deltatime).count()); const glm::mat4 mvp = cameraManager.getCamera().getProjection() * cameraManager.getCamera().getView(); - core.recordDrawcallsToCmdStream( + vkcv::PushConstantData pushConstantData((void*)&mvp, sizeof(glm::mat4)); + auto cmdStream = core.createCommandStream(vkcv::QueueType::Graphics); + + core.recordDrawcallsToCmdStream( + cmdStream, trianglePass, trianglePipeline, - sizeof(mvp), - &mvp, - vertexBufferBindings, - triangleIndexBuffer.getHandle(), - 3, - vkcv::DescriptorSetHandle(), - 0, - {swapchainImageHandle}); + pushConstantData, + { drawcall }, + { swapchainInput }); + core.prepareSwapchainImageForPresent(cmdStream); + core.submitCommandStream(cmdStream); core.endFrame(); } -- GitLab