From ff0862b5944bc3ce1bc816fc85f1bafe750e6610 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 14 Mar 2016 14:41:08 -0700 Subject: [PATCH] Emplace render engine jobs --- libraries/render/src/render/Task.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libraries/render/src/render/Task.h b/libraries/render/src/render/Task.h index 7d74529b64..eabdc99338 100644 --- a/libraries/render/src/render/Task.h +++ b/libraries/render/src/render/Task.h @@ -240,7 +240,9 @@ public: const Varying getInput() const { return _input; } const Varying getOutput() const { return _output; } - Model(const Varying& input, Data data = Data()) : Concept(std::make_shared()), _data(data), _input(input), _output(Output()) { + template + Model(const Varying& input, A&&... args) : + Concept(std::make_shared()), _data(Data(std::forward(args)...)), _input(input), _output(Output()) { applyConfiguration(); } @@ -308,7 +310,10 @@ public: const Varying getInput() const { return _input; } const Varying getOutput() const { return _output; } - Model(const Varying& input, Data data = Data()) : Concept(data._config), _data(data), _input(input), _output(Output()) { + template + Model(const Varying& input, A&&... args) : + Concept(nullptr), _data(Data(std::forward(args)...)), _input(input), _output(Output()) { + _config = _data._config; std::static_pointer_cast(_config)->init(&_data); applyConfiguration(); } @@ -337,9 +342,7 @@ public: // Create a new job in the container's queue; returns the job's output template const Varying addJob(std::string name, const Varying& input, A&&... args) { - _jobs.emplace_back(name, std::make_shared( - input, - typename T::JobModel::Data(std::forward(args)...))); + _jobs.emplace_back(name, std::make_shared(input, std::forward(args)...)); QConfigPointer config = _jobs.back().getConfiguration(); config->setParent(_config.get()); config->setObjectName(name.c_str());