diff options
Diffstat (limited to 'src/osd/modules/render/bgfx/entryuniformreader.cpp')
-rw-r--r-- | src/osd/modules/render/bgfx/entryuniformreader.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/osd/modules/render/bgfx/entryuniformreader.cpp b/src/osd/modules/render/bgfx/entryuniformreader.cpp index 949fc202bc3..c9a11086817 100644 --- a/src/osd/modules/render/bgfx/entryuniformreader.cpp +++ b/src/osd/modules/render/bgfx/entryuniformreader.cpp @@ -17,12 +17,18 @@ bgfx_entry_uniform* entry_uniform_reader::read_from_value(const Value& value, std::string prefix, bgfx_effect* effect, std::map<std::string, bgfx_slider*>& sliders, std::map<std::string, bgfx_parameter*>& params) { - validate_parameters(value, prefix); + if (!validate_parameters(value, prefix)) + { + return nullptr; + } std::string name = value["uniform"].GetString(); bgfx_uniform* uniform = effect->uniform(name); - READER_ASSERT(uniform != nullptr, (prefix + "Uniform '" + name + " does not appear to exist\n").c_str()); + if (!READER_CHECK(uniform != nullptr, (prefix + "Uniform '" + name + " does not appear to exist\n").c_str())) + { + return nullptr; + } if (value.HasMember("slider")) { @@ -36,12 +42,18 @@ bgfx_entry_uniform* entry_uniform_reader::read_from_value(const Value& value, st { return param_uniform_reader::read_from_value(value, prefix, uniform, params); } + else + { + READER_CHECK(false, (prefix + "Unrecognized uniform type for uniform binding " + name).c_str()); + } + return nullptr; } -void entry_uniform_reader::validate_parameters(const Value& value, std::string prefix) +bool entry_uniform_reader::validate_parameters(const Value& value, std::string prefix) { - READER_ASSERT(value.HasMember("uniform"), (prefix + "Must have string value 'uniform' (what uniform are we mapping?)\n").c_str()); - READER_ASSERT(value["uniform"].IsString(), (prefix + "Value 'effect' must be a string\n").c_str()); + if (!READER_CHECK(value.HasMember("uniform"), (prefix + "Must have string value 'uniform' (what uniform are we mapping?)\n").c_str())) return false; + if (!READER_CHECK(value["uniform"].IsString(), (prefix + "Value 'effect' must be a string\n").c_str())) return false; + return true; } |