summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/chainreader.cpp
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-03-10 16:03:43 +0100
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-03-13 15:51:17 +0100
commitad1e6ef899eb856f14354fa952b2a2b0c8aafaa7 (patch)
treeb744f9d5ca18d6a56c7e5e1d543623983094c493 /src/osd/modules/render/bgfx/chainreader.cpp
parent47bdc0f2541571e3032b0b951783e9838680cedd (diff)
Add dynamic skipping of shader chain passes, nw
Diffstat (limited to 'src/osd/modules/render/bgfx/chainreader.cpp')
-rw-r--r--src/osd/modules/render/bgfx/chainreader.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/osd/modules/render/bgfx/chainreader.cpp b/src/osd/modules/render/bgfx/chainreader.cpp
index 19e476ccb03..00eb77eaa59 100644
--- a/src/osd/modules/render/bgfx/chainreader.cpp
+++ b/src/osd/modules/render/bgfx/chainreader.cpp
@@ -71,6 +71,7 @@ bgfx_chain* chain_reader::read_from_value(const Value& value, running_machine& m
if (value.HasMember("targets"))
{
const Value& target_array = value["targets"];
+ // TODO: Move into its own reader
for (UINT32 i = 0; i < target_array.Size(); i++)
{
assert(target_array[i].HasMember("name"));
@@ -115,14 +116,18 @@ bgfx_chain* chain_reader::read_from_value(const Value& value, running_machine& m
// Parse chain entries
std::vector<bgfx_chain_entry*> entries;
- if (value.HasMember("passes")) {
+ if (value.HasMember("passes"))
+ {
const Value& entry_array = value["passes"];
- for (UINT32 i = 0; i < entry_array.Size(); i++) {
+ for (UINT32 i = 0; i < entry_array.Size(); i++)
+ {
entries.push_back(chain_entry_reader::read_from_value(entry_array[i], textures, targets, effects, slider_map));
}
}
- return new bgfx_chain(name, author, sliders, parameters, entries);
+ std::string output = value["output"].GetString();
+
+ return new bgfx_chain(name, author, sliders, parameters, entries, output);
}
void chain_reader::validate_parameters(const Value& value)
@@ -132,4 +137,7 @@ void chain_reader::validate_parameters(const Value& value)
assert(value.HasMember("author"));
assert(value["author"].IsString());
assert(value.HasMember("passes"));
+ assert(value["passes"].IsArray());
+ assert(value.HasMember("output"));
+ assert(value["output"].IsString());
}