From b2787756f8558dfe2c1dc6653ef5311cd6fb1fb9 Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Wed, 13 Jul 2022 01:15:23 +0200
Subject: [PATCH] Adjusted header and function names for multisampling

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 config/Sources.cmake                          |  4 +-
 include/vkcv/GraphicsPipelineConfig.hpp       |  2 +-
 include/vkcv/Image.hpp                        |  2 +-
 .../{ImageConfig.hpp => Multisampling.hpp}    |  9 ++++-
 include/vkcv/PassConfig.hpp                   |  2 +-
 projects/voxelization/src/ShadowMapping.cpp   |  2 +-
 src/vkcv/GraphicsPipelineManager.cpp          |  3 +-
 src/vkcv/ImageConfig.cpp                      | 26 -------------
 src/vkcv/ImageManager.cpp                     |  5 +--
 src/vkcv/ImageManager.hpp                     |  2 +-
 src/vkcv/Multisampling.cpp                    | 38 +++++++++++++++++++
 src/vkcv/PassManager.cpp                      |  2 +-
 12 files changed, 57 insertions(+), 40 deletions(-)
 rename include/vkcv/{ImageConfig.hpp => Multisampling.hpp} (81%)
 delete mode 100644 src/vkcv/ImageConfig.cpp
 create mode 100644 src/vkcv/Multisampling.cpp

diff --git a/config/Sources.cmake b/config/Sources.cmake
index c3231e7a..23d9df0f 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 93fe553a..e4257735 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 6e7b6e57..dc74a011 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 d031f790..3bcf5d7b 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 ad3e3c0d..26c4f815 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 1d4fb1b8..78cf1fda 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 09288ebf..95a33c08 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 5fe3f0a9..00000000
--- 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 fe01a57b..e28cfce8 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 bda9a6a0..de91245c 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 00000000..7b64dd06
--- /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 20ba600c..740ab333 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,
-- 
GitLab