From 5e7afc4ec3b5ddb34b71cf8e25a86e5c6a53da10 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Wed, 13 Jul 2022 04:03:22 +0200 Subject: [PATCH] Shortened potential push constants filling Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- include/vkcv/PushConstants.hpp | 20 ++++++++++++++++++++ projects/first_triangle/src/main.cpp | 5 +---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/include/vkcv/PushConstants.hpp b/include/vkcv/PushConstants.hpp index e02e5e69..8d441bfc 100644 --- a/include/vkcv/PushConstants.hpp +++ b/include/vkcv/PushConstants.hpp @@ -140,4 +140,24 @@ namespace vkcv { return PushConstants(typeGuard<T>()); } + template<typename T> + PushConstants pushConstants(const T& value) { + auto pc = pushConstants<T>(); + pc.template appendDrawcall(value); + return pc; + } + + template<typename T> + PushConstants pushConstants(const std::vector<T>& values) { + auto pc = pushConstants<T>(); + + for (const T& value : values) { + if (!(pc.template appendDrawcall(value))) { + break; + } + } + + return pc; + } + } diff --git a/projects/first_triangle/src/main.cpp b/projects/first_triangle/src/main.cpp index c3824b49..bfbc9909 100644 --- a/projects/first_triangle/src/main.cpp +++ b/projects/first_triangle/src/main.cpp @@ -100,9 +100,6 @@ int main(int argc, const char** argv) { cameraManager.update(0.000001 * static_cast<double>(deltatime.count())); glm::mat4 mvp = cameraManager.getActiveCamera().getMVP(); - - vkcv::PushConstants pushConstants = vkcv::pushConstants<glm::mat4>(); - pushConstants.appendDrawcall(mvp); auto cmdStream = core.createCommandStream(vkcv::QueueType::Graphics); core.setDebugLabel(cmdStream, "Render Commands"); @@ -111,7 +108,7 @@ int main(int argc, const char** argv) { cmdStream, trianglePass, trianglePipeline, - pushConstants, + vkcv::pushConstants<glm::mat4>(mvp), { drawcall }, { swapchainInput }, windowHandle); -- GitLab