summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/slideruniformreader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/bgfx/slideruniformreader.cpp')
-rw-r--r--src/osd/modules/render/bgfx/slideruniformreader.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/osd/modules/render/bgfx/slideruniformreader.cpp b/src/osd/modules/render/bgfx/slideruniformreader.cpp
new file mode 100644
index 00000000000..0f02d1021e3
--- /dev/null
+++ b/src/osd/modules/render/bgfx/slideruniformreader.cpp
@@ -0,0 +1,42 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+//==================================================================
+//
+// slideruniformreader.cpp - BGFX chain entry slider mapper reader
+//
+//==================================================================
+
+#include "slideruniformreader.h"
+
+#include <vector>
+
+#include "slideruniform.h"
+#include "entryuniform.h"
+#include "slider.h"
+
+bgfx_entry_uniform* slider_uniform_reader::read_from_value(const Value& value, bgfx_uniform* uniform, std::map<std::string, bgfx_slider*>& sliders)
+{
+ validate_parameters(value);
+
+ std::string name = value["slider"].GetString();
+ std::vector<bgfx_slider*> slider_list;
+ slider_list.push_back(sliders[name + "0"]);
+
+ if (slider_list[0]->type() == bgfx_slider::slider_type::SLIDER_VEC2)
+ {
+ slider_list.push_back(sliders[name + "1"]);
+ }
+ else if (slider_list[0]->type() == bgfx_slider::slider_type::SLIDER_COLOR)
+ {
+ slider_list.push_back(sliders[name + "1"]);
+ slider_list.push_back(sliders[name + "2"]);
+ }
+
+ return new bgfx_slider_uniform(uniform, slider_list);
+}
+
+void slider_uniform_reader::validate_parameters(const Value& value)
+{
+ assert(value.HasMember("slider"));
+ assert(value["slider"].IsString());
+}