Skip to content

Commit 135fb03

Browse files
ShaderMacroHelper: added initializer list constructor
1 parent 7313cc6 commit 135fb03

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

Graphics/GraphicsTools/interface/ShaderMacroHelper.hpp

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2019-2024 Diligent Graphics LLC
2+
* Copyright 2019-2025 Diligent Graphics LLC
33
* Copyright 2015-2019 Egor Yusov
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -70,12 +70,24 @@ class ShaderMacroHelper
7070
ShaderMacroHelper(const ShaderMacroHelper& rhs) :
7171
m_Macros{rhs.m_Macros}
7272
{
73-
for (auto& Macros : m_Macros)
73+
for (ShaderMacro& Macro : m_Macros)
7474
{
75-
if (Macros.Definition != nullptr)
76-
Macros.Definition = m_StringPool.insert(Macros.Definition).first->c_str();
77-
if (Macros.Name != nullptr)
78-
Macros.Name = m_StringPool.insert(Macros.Name).first->c_str();
75+
if (Macro.Definition != nullptr)
76+
Macro.Definition = m_StringPool.insert(Macro.Definition).first->c_str();
77+
if (Macro.Name != nullptr)
78+
Macro.Name = m_StringPool.insert(Macro.Name).first->c_str();
79+
}
80+
}
81+
82+
ShaderMacroHelper(const std::initializer_list<ShaderMacro>& Macros) :
83+
m_Macros{Macros}
84+
{
85+
for (ShaderMacro& Macro : m_Macros)
86+
{
87+
if (Macro.Definition != nullptr)
88+
Macro.Definition = m_StringPool.insert(Macro.Definition).first->c_str();
89+
if (Macro.Name != nullptr)
90+
Macro.Name = m_StringPool.insert(Macro.Name).first->c_str();
7991
}
8092
}
8193

@@ -141,15 +153,15 @@ class ShaderMacroHelper
141153

142154
ShaderMacroHelper& Add(const ShaderMacro& Macro)
143155
{
144-
const auto* PooledDefinition = m_StringPool.insert(Macro.Definition).first->c_str();
145-
const auto* PooledName = m_StringPool.insert(Macro.Name).first->c_str();
156+
const char* PooledDefinition = m_StringPool.insert(Macro.Definition).first->c_str();
157+
const char* PooledName = m_StringPool.insert(Macro.Name).first->c_str();
146158
m_Macros.emplace_back(PooledName, PooledDefinition);
147159
return *this;
148160
}
149161

150162
ShaderMacroHelper& operator+=(const ShaderMacroHelper& Macros)
151163
{
152-
for (const auto& Macro : Macros.m_Macros)
164+
for (const ShaderMacro& Macro : Macros.m_Macros)
153165
Add(Macro);
154166

155167
return *this;
@@ -181,7 +193,7 @@ class ShaderMacroHelper
181193
if (Name == nullptr)
182194
return nullptr;
183195

184-
for (const auto& Macro : m_Macros)
196+
for (const ShaderMacro& Macro : m_Macros)
185197
{
186198
if (strcmp(Macro.Name, Name) == 0)
187199
return Macro.Definition != nullptr ? Macro.Definition : "";

0 commit comments

Comments
 (0)