From 26a40fd8ba59b0861b81b9ff0d9c3800656b910b Mon Sep 17 00:00:00 2001 From: assiduous Date: Sun, 13 Dec 2020 18:07:22 -0800 Subject: Updated ShaderMacroHelper --- Graphics/GraphicsTools/interface/ShaderMacroHelper.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Graphics/GraphicsTools') diff --git a/Graphics/GraphicsTools/interface/ShaderMacroHelper.hpp b/Graphics/GraphicsTools/interface/ShaderMacroHelper.hpp index fb964abd..0fee26b0 100644 --- a/Graphics/GraphicsTools/interface/ShaderMacroHelper.hpp +++ b/Graphics/GraphicsTools/interface/ShaderMacroHelper.hpp @@ -59,6 +59,15 @@ public: template void AddShaderMacro(const Char* Name, DefintionType Definition) { +#if DILIGENT_DEBUG + for (size_t i = 0; i < m_Macros.size() && m_Macros[i].Definition != nullptr; ++i) + { + if (strcmp(m_Macros[i].Name, Name) == 0) + { + UNEXPECTED("Macro '", Name, "' already exists. Use UpdateMacro() to update the macro value."); + } + } +#endif std::ostringstream ss; ss << Definition; AddShaderMacro(Name, ss.str().c_str()); @@ -171,4 +180,6 @@ inline void ShaderMacroHelper::AddShaderMacro(const Char* Name, Uint8 Definition AddShaderMacro(Name, Uint32{Definition}); } +#define ADD_SHADER_MACRO_ENUM_VALUE(Helper, EnumValue) Helper.AddShaderMacro(#EnumValue, static_cast(EnumValue)); + } // namespace Diligent -- cgit v1.2.3