diff --git a/modules/material/include/vkcv/material/Material.hpp b/modules/material/include/vkcv/material/Material.hpp index fe7a250aa1e914fe4c675d1b89896f00a412fcb5..00b492072fa4ef8b7b41f70202d515ee4ac828fa 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 35fb50169c8d4af326747d1d00de4a15645666f6..353143b70aa29b4588799c3f679d7df9a2502b45 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 373c46feef1173476b80e3fd2fa916cb76a33623..9168bcfbf924e9868ceaaff74aef5d3c6b99739c 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 05481b5275f6a6c8e86e1923d01c7999cc004617..034702360db512669254127b4e86fb4730fb24ad 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) { }