From cdbfa86363d3186ab51e98eb83a918b8e33f42ee Mon Sep 17 00:00:00 2001
From: Lars Hoerttrich <larshoerttrich@uni-koblenz.de>
Date: Sun, 13 Jun 2021 12:22:42 +0200
Subject: [PATCH] [#57] moved descriptorSetHandle to material-class

---
 .../include/vkcv/material/Material.hpp        |  4 ++++
 .../vkcv/material/pbrMetallicRoughness.hpp    | 19 +++++++++----------
 .../material/src/vkcv/material/Material.cpp   |  4 ++++
 .../vkcv/material/pbrMetallicRoughness.cpp    |  2 +-
 4 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/modules/material/include/vkcv/material/Material.hpp b/modules/material/include/vkcv/material/Material.hpp
index fe7a250a..00b49207 100644
--- a/modules/material/include/vkcv/material/Material.hpp
+++ b/modules/material/include/vkcv/material/Material.hpp
@@ -1,10 +1,14 @@
 #pragma once
+#include <vkcv/Handles.hpp>
 
 namespace vkcv::material {
 
 	class Material {
 	private:
 	public:
+		const DescriptorSetHandle m_DescriptorSetHandle;
+	protected:
+		Material(const DescriptorSetHandle& setHandle); 
 	};
 	
 }
diff --git a/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp b/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp
index 35fb5016..353143b7 100644
--- a/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp
+++ b/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp
@@ -2,7 +2,6 @@
 
 #include <vector>
 
-#include <vkcv/Handles.hpp>
 #include <vkcv/DescriptorConfig.hpp>
 #include <vkcv/Core.hpp>
 
@@ -13,15 +12,17 @@ namespace vkcv::material
 {
     class PBRMaterial : Material
     {
+    private:
+        PBRMaterial(const ImageHandle& colorImg,
+            const SamplerHandle& colorSmp,
+            const ImageHandle& normalImg,
+            const SamplerHandle& normalSmp,
+            const ImageHandle& metRoughImg,
+            const SamplerHandle& metRoughSmp,
+            const DescriptorSetHandle& setHandle) noexcept;
     public:
         PBRMaterial() = delete;
-        PBRMaterial(const ImageHandle           &colorImg,
-                    const SamplerHandle         &colorSmp,
-                    const ImageHandle           &normalImg,
-                    const SamplerHandle         &normalSmp,
-                    const ImageHandle           &metRoughImg,
-                    const SamplerHandle         &metRoughSmp,
-                    const DescriptorSetHandle   &setHandle) noexcept;
+       
 
         const ImageHandle   m_ColorTexture;
         const SamplerHandle m_ColorSampler;
@@ -35,8 +36,6 @@ namespace vkcv::material
         // ImageHandle m_OcclusionTexture;
         // SamplerHandle m_EmissiveTexture;
 
-        const DescriptorSetHandle m_DescriptorSetHandle;
-
         /*
         * Returns the material's necessary descriptor bindings which serves as its descriptor layout
         * The binding is in the following order:
diff --git a/modules/material/src/vkcv/material/Material.cpp b/modules/material/src/vkcv/material/Material.cpp
index 373c46fe..9168bcfb 100644
--- a/modules/material/src/vkcv/material/Material.cpp
+++ b/modules/material/src/vkcv/material/Material.cpp
@@ -5,4 +5,8 @@ namespace vkcv::material {
 
 	//TODO
 
+	Material::Material(const DescriptorSetHandle& setHandle) : m_DescriptorSetHandle(setHandle)
+	{
+	}
+
 }
diff --git a/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp b/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp
index 05481b52..03470236 100644
--- a/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp
+++ b/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp
@@ -17,7 +17,7 @@ namespace vkcv::material
         m_NormalSampler(normalSmp),
         m_MetRoughTexture(metRoughImg),
         m_MetRoughSampler(metRoughSmp),
-        m_DescriptorSetHandle(setHandle)
+        Material(setHandle)        
     {
     }
 
-- 
GitLab