summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/chainentryreader.cpp
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-04-14 17:22:08 +0200
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-04-14 17:22:24 +0200
commit99aa7eacd7a2bb7a3711f8ff3f918e8fbe1f2819 (patch)
treea681a4407878fcf7cc89973e6bb5bc09dcb22c3c /src/osd/modules/render/bgfx/chainentryreader.cpp
parent0ff1223fe85b054b3b8ef3a8e5ca6ad859154ed8 (diff)
bgfx: Add data-driven render target clearing [Ryan Holtz]
Diffstat (limited to 'src/osd/modules/render/bgfx/chainentryreader.cpp')
-rw-r--r--src/osd/modules/render/bgfx/chainentryreader.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/osd/modules/render/bgfx/chainentryreader.cpp b/src/osd/modules/render/bgfx/chainentryreader.cpp
index 0aa7085cb7f..c3f214f1d3e 100644
--- a/src/osd/modules/render/bgfx/chainentryreader.cpp
+++ b/src/osd/modules/render/bgfx/chainentryreader.cpp
@@ -26,6 +26,8 @@
#include "entryuniformreader.h"
#include "suppressor.h"
#include "suppressorreader.h"
+#include "clear.h"
+#include "clearreader.h"
bgfx_chain_entry* chain_entry_reader::read_from_value(const Value& value, std::string prefix, osd_options& options, texture_manager& textures, target_manager& targets, effect_manager& effects, std::map<std::string, bgfx_slider*>& sliders, std::map<std::string, bgfx_parameter*>& params, uint32_t screen_index)
{
@@ -134,8 +136,19 @@ bgfx_chain_entry* chain_entry_reader::read_from_value(const Value& value, std::s
}
}
+ // Parse clear state
+ clear_state* clear = nullptr;
+ if (value.HasMember("clear"))
+ {
+ clear = clear_reader::read_from_value(value["clear"], prefix + "clear state: ");
+ }
+ else
+ {
+ clear = new clear_state(BGFX_CLEAR_COLOR | BGFX_CLEAR_DEPTH, 0x00000000, 1.0f, 0);
+ }
+
std::string output = value["output"].GetString();
- return new bgfx_chain_entry(name, effect, suppressors, inputs, uniforms, targets, output);
+ return new bgfx_chain_entry(name, effect, clear, suppressors, inputs, uniforms, targets, output);
}
bool chain_entry_reader::validate_parameters(const Value& value, std::string prefix)