|
1 | 1 | /* |
2 | | - * Copyright 2019-2024 Diligent Graphics LLC |
| 2 | + * Copyright 2019-2025 Diligent Graphics LLC |
3 | 3 | * Copyright 2015-2019 Egor Yusov |
4 | 4 | * |
5 | 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
@@ -70,12 +70,24 @@ class ShaderMacroHelper |
70 | 70 | ShaderMacroHelper(const ShaderMacroHelper& rhs) : |
71 | 71 | m_Macros{rhs.m_Macros} |
72 | 72 | { |
73 | | - for (auto& Macros : m_Macros) |
| 73 | + for (ShaderMacro& Macro : m_Macros) |
74 | 74 | { |
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(); |
79 | 91 | } |
80 | 92 | } |
81 | 93 |
|
@@ -141,15 +153,15 @@ class ShaderMacroHelper |
141 | 153 |
|
142 | 154 | ShaderMacroHelper& Add(const ShaderMacro& Macro) |
143 | 155 | { |
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(); |
146 | 158 | m_Macros.emplace_back(PooledName, PooledDefinition); |
147 | 159 | return *this; |
148 | 160 | } |
149 | 161 |
|
150 | 162 | ShaderMacroHelper& operator+=(const ShaderMacroHelper& Macros) |
151 | 163 | { |
152 | | - for (const auto& Macro : Macros.m_Macros) |
| 164 | + for (const ShaderMacro& Macro : Macros.m_Macros) |
153 | 165 | Add(Macro); |
154 | 166 |
|
155 | 167 | return *this; |
@@ -181,7 +193,7 @@ class ShaderMacroHelper |
181 | 193 | if (Name == nullptr) |
182 | 194 | return nullptr; |
183 | 195 |
|
184 | | - for (const auto& Macro : m_Macros) |
| 196 | + for (const ShaderMacro& Macro : m_Macros) |
185 | 197 | { |
186 | 198 | if (strcmp(Macro.Name, Name) == 0) |
187 | 199 | return Macro.Definition != nullptr ? Macro.Definition : ""; |
|
0 commit comments