diff --git a/slangmosh/slangmosh.cpp b/slangmosh/slangmosh.cpp index 94f3b803..1cfc81ea 100644 --- a/slangmosh/slangmosh.cpp +++ b/slangmosh/slangmosh.cpp @@ -328,21 +328,21 @@ static std::string resolve_shader(const ProgramVariant &variant, const Shader *s return define.first == shader_variant.define; }); - if (itr == variant.defines.end()) - { - LOGE("Shader \"%s\" requires define \"%s\", but program variant does not define it.\n", - shader->name.c_str(), shader_variant.define.c_str()); - return {}; - } - else if (itr->second >= int(shader_variant.count) || itr->second < 0) + int value = 0; + + if (itr != variant.defines.end()) { - LOGE("Shader \"%s\" requires define \"%s\" in range [0, %u), but program variant requires value = %d.\n", - shader->name.c_str(), shader_variant.define.c_str(), - shader_variant.count, itr->second); - return {}; - } + if (itr->second >= int(shader_variant.count) || itr->second < 0) + { + LOGE("Shader \"%s\" requires define \"%s\" in range [0, %u), but program variant requires value = %d.\n", + shader->name.c_str(), shader_variant.define.c_str(), + shader_variant.count, itr->second); + return {}; + } - str + "[" + std::to_string(itr->second) + "]"; + value = itr->second; + } + str += "[" + std::to_string(value) + "]"; } return str;