From 13a9d91f512d54b6c3cf6b4f1f40d650bfc35a3c Mon Sep 17 00:00:00 2001 From: Mark Oliver Mints <mmints@uni-koblenz.de> Date: Tue, 10 Aug 2021 17:05:49 +0200 Subject: [PATCH] [#71] Refactor: implement a create function for Pipeline Viewport State Create Info Struct --- src/vkcv/PipelineManager.cpp | 24 +++++++++++++++++++++--- src/vkcv/PipelineManager.hpp | 7 +++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/vkcv/PipelineManager.cpp b/src/vkcv/PipelineManager.cpp index d0cc95c3..e536895d 100644 --- a/src/vkcv/PipelineManager.cpp +++ b/src/vkcv/PipelineManager.cpp @@ -255,9 +255,8 @@ namespace vkcv createPipelineInputAssemblyStateCreateInfo(config); // viewport state - vk::Viewport viewport(0.f, 0.f, static_cast<float>(config.m_Width), static_cast<float>(config.m_Height), 0.f, 1.f); - vk::Rect2D scissor({ 0,0 }, { config.m_Width, config.m_Height }); - vk::PipelineViewportStateCreateInfo pipelineViewportStateCreateInfo({}, 1, &viewport, 1, &scissor); + vk::PipelineViewportStateCreateInfo pipelineViewportStateCreateInfo = + createPipelineViewportStateCreateInfo(config); vk::CullModeFlags cullMode; switch (config.m_culling) { @@ -595,4 +594,23 @@ namespace vkcv ); return pipelineInputAssemblyStateCreateInfo; } + + vk::PipelineViewportStateCreateInfo + PipelineManager::createPipelineViewportStateCreateInfo(const PipelineConfig &config) { + vk::Viewport viewport(0.f, 0.f, + static_cast<float>(config.m_Width), + static_cast<float>(config.m_Height), + 0.f, 1.f); + + vk::Rect2D scissor({ 0,0 }, + { config.m_Width, + config.m_Height }); + + vk::PipelineViewportStateCreateInfo pipelineViewportStateCreateInfo({}, + 1, + &viewport, + 1, + &scissor); + return pipelineViewportStateCreateInfo; + } } diff --git a/src/vkcv/PipelineManager.hpp b/src/vkcv/PipelineManager.hpp index d0c7f333..0e80b02e 100644 --- a/src/vkcv/PipelineManager.hpp +++ b/src/vkcv/PipelineManager.hpp @@ -80,5 +80,12 @@ namespace vkcv * @return Pipeline Input Assembly State Create Info Struct */ vk::PipelineInputAssemblyStateCreateInfo createPipelineInputAssemblyStateCreateInfo(const PipelineConfig &config); + + /** + * Create a Pipeline Viewport State Create Info Struct with default set viewport and scissor settings + * @param config provides with and height of the output window + * @return Pipeline Viewport State Create Info Struct + */ + vk::PipelineViewportStateCreateInfo createPipelineViewportStateCreateInfo(const PipelineConfig &config); }; } -- GitLab