diff --git a/config/Sources.cmake b/config/Sources.cmake index c3231e7a7f0ab6c47dddb085b46a702d3e76d698..23d9df0ff764daf64b37e9e2637fb4b1c5877421 100644 --- a/config/Sources.cmake +++ b/config/Sources.cmake @@ -114,8 +114,8 @@ set(vkcv_sources ${vkcv_include}/vkcv/CommandRecordingFunctionTypes.hpp - ${vkcv_include}/vkcv/ImageConfig.hpp - ${vkcv_source}/vkcv/ImageConfig.cpp + ${vkcv_include}/vkcv/Multisampling.hpp + ${vkcv_source}/vkcv/Multisampling.cpp ${vkcv_include}/vkcv/Downsampler.hpp ${vkcv_source}/vkcv/Downsampler.cpp diff --git a/include/vkcv/GraphicsPipelineConfig.hpp b/include/vkcv/GraphicsPipelineConfig.hpp index 93fe553a84d53044fc138fa64948759c9cae4f24..e425773508c0b59fc75594c7d4f6bd220f57bae0 100644 --- a/include/vkcv/GraphicsPipelineConfig.hpp +++ b/include/vkcv/GraphicsPipelineConfig.hpp @@ -10,7 +10,7 @@ #include "PipelineConfig.hpp" #include "VertexLayout.hpp" -#include "ImageConfig.hpp" +#include "Multisampling.hpp" namespace vkcv { diff --git a/include/vkcv/Image.hpp b/include/vkcv/Image.hpp index 6e7b6e57950b3ccdbc341d660a223bd7885ddb1b..dc74a011bdb56f0ceaeffd985a2442c7d8cd7a61 100644 --- a/include/vkcv/Image.hpp +++ b/include/vkcv/Image.hpp @@ -8,7 +8,7 @@ #include <vulkan/vulkan.hpp> #include "Handles.hpp" -#include "ImageConfig.hpp" +#include "Multisampling.hpp" namespace vkcv { diff --git a/include/vkcv/ImageConfig.hpp b/include/vkcv/Multisampling.hpp similarity index 81% rename from include/vkcv/ImageConfig.hpp rename to include/vkcv/Multisampling.hpp index d031f790622f1f0595c540c5bbcf0d8795f5fd95..3bcf5d7b2a8dd838fcb18817a611086f33b06b68 100644 --- a/include/vkcv/ImageConfig.hpp +++ b/include/vkcv/Multisampling.hpp @@ -9,7 +9,12 @@ namespace vkcv { - enum class Multisampling { None, MSAA2X, MSAA4X, MSAA8X }; + enum class Multisampling { + None, + MSAA2X, + MSAA4X, + MSAA8X + }; /** * @brief Returns the sample count flag bits of a given @@ -18,7 +23,7 @@ namespace vkcv { * @param[in] msaa MSAA mode * @return Sample count flag bits */ - vk::SampleCountFlagBits msaaToVkSampleCountFlag(Multisampling msaa); + vk::SampleCountFlagBits msaaToSampleCountFlagBits(Multisampling msaa); /** * @brief Returns the amount of samples of a given diff --git a/include/vkcv/PassConfig.hpp b/include/vkcv/PassConfig.hpp index ad3e3c0dff150f5ba41859477d4bb5a53c4365f8..26c4f8156a4e7d7d7f2576435c474727699a112f 100644 --- a/include/vkcv/PassConfig.hpp +++ b/include/vkcv/PassConfig.hpp @@ -8,7 +8,7 @@ #include <vector> #include <vulkan/vulkan.hpp> -#include "ImageConfig.hpp" +#include "Multisampling.hpp" namespace vkcv { diff --git a/projects/voxelization/src/ShadowMapping.cpp b/projects/voxelization/src/ShadowMapping.cpp index 1d4fb1b8ad6013492f7f9c0b343ca3f4e736780f..78cf1fda1ed6eaa98cf33ea51fd471ec87974ff7 100644 --- a/projects/voxelization/src/ShadowMapping.cpp +++ b/projects/voxelization/src/ShadowMapping.cpp @@ -283,7 +283,7 @@ void ShadowMapping::recordShadowMapRendering( dispatchCount[1] = static_cast<uint32_t>(std::ceil(shadowMapResolution / 8.f)); dispatchCount[2] = 1; - const uint32_t msaaSampleCount = msaaToSampleCount(msaa); + const uint32_t msaaSampleCount = vkcv::msaaToSampleCount(msaa); vkcv::PushConstants msaaPushConstants = vkcv::pushConstants<uint32_t>(); msaaPushConstants.appendDrawcall(msaaSampleCount); diff --git a/src/vkcv/GraphicsPipelineManager.cpp b/src/vkcv/GraphicsPipelineManager.cpp index 09288ebffde9873363399fe78160f2cfef00f436..95a33c08c577d270476ac5d5611a436b1f6dd625 100644 --- a/src/vkcv/GraphicsPipelineManager.cpp +++ b/src/vkcv/GraphicsPipelineManager.cpp @@ -3,6 +3,7 @@ #include "vkcv/Core.hpp" #include "vkcv/Image.hpp" #include "vkcv/Logger.hpp" +#include "vkcv/Multisampling.hpp" namespace vkcv { @@ -328,7 +329,7 @@ namespace vkcv { vk::PipelineMultisampleStateCreateInfo createPipelineMultisampleStateCreateInfo(const GraphicsPipelineConfig &config) { vk::PipelineMultisampleStateCreateInfo pipelineMultisampleStateCreateInfo( {}, - msaaToVkSampleCountFlag(config.getMultisampling()), + msaaToSampleCountFlagBits(config.getMultisampling()), false, 0.f, nullptr, diff --git a/src/vkcv/ImageConfig.cpp b/src/vkcv/ImageConfig.cpp deleted file mode 100644 index 5fe3f0a9a998040064be36ea03c20c17080c26e5..0000000000000000000000000000000000000000 --- a/src/vkcv/ImageConfig.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include <vkcv/ImageConfig.hpp> -#include <vkcv/Logger.hpp> - -namespace vkcv { - - vk::SampleCountFlagBits msaaToVkSampleCountFlag(Multisampling msaa) { - switch (msaa) { - case Multisampling::None: return vk::SampleCountFlagBits::e1; - case Multisampling::MSAA2X: return vk::SampleCountFlagBits::e2; - case Multisampling::MSAA4X: return vk::SampleCountFlagBits::e4; - case Multisampling::MSAA8X: return vk::SampleCountFlagBits::e8; - default: vkcv_log(vkcv::LogLevel::ERROR, "Unknown Multisampling enum setting"); return vk::SampleCountFlagBits::e1; - } - } - - uint32_t msaaToSampleCount(Multisampling msaa) { - switch (msaa) { - case Multisampling::None: return 1; - case Multisampling::MSAA2X: return 2; - case Multisampling::MSAA4X: return 4; - case Multisampling::MSAA8X: return 8; - default: vkcv_log(vkcv::LogLevel::ERROR, "Unknown Multisampling enum setting"); return 1; - } - } - -} \ No newline at end of file diff --git a/src/vkcv/ImageManager.cpp b/src/vkcv/ImageManager.cpp index fe01a57bb58e536d651da28138458abb2c573318..e28cfce8b696ae1440156bcfa577751376512e00 100644 --- a/src/vkcv/ImageManager.cpp +++ b/src/vkcv/ImageManager.cpp @@ -6,6 +6,7 @@ #include "ImageManager.hpp" #include "vkcv/Core.hpp" #include "vkcv/Logger.hpp" +#include "vkcv/Multisampling.hpp" #include "vkcv/TypeGuard.hpp" #include <algorithm> @@ -241,8 +242,6 @@ namespace vkcv { const uint32_t arrayLayers = std::min<uint32_t>(1, imageFormatProperties.maxArrayLayers); - vk::SampleCountFlagBits sampleCountFlag = msaaToVkSampleCountFlag(msaa); - const vk::ImageCreateInfo imageCreateInfo ( createFlags, imageType, @@ -250,7 +249,7 @@ namespace vkcv { vk::Extent3D(width, height, depth), mipCount, arrayLayers, - sampleCountFlag, + msaaToSampleCountFlagBits(msaa), imageTiling, imageUsageFlags, vk::SharingMode::eExclusive, diff --git a/src/vkcv/ImageManager.hpp b/src/vkcv/ImageManager.hpp index bda9a6a0c7600c96dfdb257a4e0de382c0ca6d10..de91245c76a76ea0658a1fb69472d5f9059215e6 100644 --- a/src/vkcv/ImageManager.hpp +++ b/src/vkcv/ImageManager.hpp @@ -10,7 +10,7 @@ #include "BufferManager.hpp" #include "HandleManager.hpp" -#include "vkcv/ImageConfig.hpp" +#include "vkcv/Multisampling.hpp" namespace vkcv { diff --git a/src/vkcv/Multisampling.cpp b/src/vkcv/Multisampling.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7b64dd06cbfbabf74ca777a840512d6eeffeb1ed --- /dev/null +++ b/src/vkcv/Multisampling.cpp @@ -0,0 +1,38 @@ +#include <vkcv/Multisampling.hpp> +#include <vkcv/Logger.hpp> + +namespace vkcv { + + vk::SampleCountFlagBits msaaToSampleCountFlagBits(Multisampling msaa) { + switch (msaa) { + case Multisampling::None: + return vk::SampleCountFlagBits::e1; + case Multisampling::MSAA2X: + return vk::SampleCountFlagBits::e2; + case Multisampling::MSAA4X: + return vk::SampleCountFlagBits::e4; + case Multisampling::MSAA8X: + return vk::SampleCountFlagBits::e8; + default: + vkcv_log(vkcv::LogLevel::ERROR, "Unknown Multisampling enum setting"); + return vk::SampleCountFlagBits::e1; + } + } + + uint32_t msaaToSampleCount(Multisampling msaa) { + switch (msaa) { + case Multisampling::None: + return 1; + case Multisampling::MSAA2X: + return 2; + case Multisampling::MSAA4X: + return 4; + case Multisampling::MSAA8X: + return 8; + default: + vkcv_log(vkcv::LogLevel::ERROR, "Unknown Multisampling enum setting"); + return 1; + } + } + +} \ No newline at end of file diff --git a/src/vkcv/PassManager.cpp b/src/vkcv/PassManager.cpp index 20ba600c07a0638f7a72b7aaa97606121861d641..740ab333e797e968b7a307a552ec4a4117f3aba9 100644 --- a/src/vkcv/PassManager.cpp +++ b/src/vkcv/PassManager.cpp @@ -85,7 +85,7 @@ namespace vkcv vk::AttachmentDescription attachmentDesc( {}, format, - msaaToVkSampleCountFlag(config.msaa), + msaaToSampleCountFlagBits(config.msaa), getVKLoadOpFromAttachOp(config.attachments[i].load_operation), getVkStoreOpFromAttachOp(config.attachments[i].store_operation), vk::AttachmentLoadOp::eDontCare,