Skip to content

Commit c223631

Browse files
committed
Add data parameter to task functions
1 parent 1c7f5f5 commit c223631

File tree

5 files changed

+25
-14
lines changed

5 files changed

+25
-14
lines changed

render_pipeline/rppanda/showbase/direct_object.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ class RENDER_PIPELINE_DECL DirectObject : public TypedReferenceCount
9090
* @see TaskManager::add
9191
*/
9292
FunctionalTask* add_task(const FunctionalTask::TaskFunc& func, const std::string& name = {},
93-
boost::optional<int> sort = boost::none, boost::optional<int> priority = boost::none,
93+
boost::optional<int> sort = boost::none, const FunctionalTask::UserDataType& data = {},
94+
boost::optional<int> priority = boost::none,
9495
const boost::optional<std::string>& task_chain = boost::none,
9596
const FunctionalTask::DeathFunc& upon_death = nullptr);
9697

@@ -107,7 +108,8 @@ class RENDER_PIPELINE_DECL DirectObject : public TypedReferenceCount
107108
*/
108109
FunctionalTask* do_method_later(float delay_time,
109110
const FunctionalTask::TaskFunc& func, const std::string& name,
110-
boost::optional<int> sort = boost::none, boost::optional<int> priority = boost::none,
111+
boost::optional<int> sort = boost::none, const FunctionalTask::UserDataType& data = {},
112+
boost::optional<int> priority = boost::none,
111113
const boost::optional<std::string>& task_chain = boost::none,
112114
const FunctionalTask::DeathFunc& upon_death = nullptr);
113115

render_pipeline/rppanda/task/task_manager.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ class RENDER_PIPELINE_DECL TaskManager : public TypedObject
138138
*/
139139
FunctionalTask* do_method_later(float delay_time,
140140
const FunctionalTask::TaskFunc& func, const std::string& name,
141-
boost::optional<int> sort = boost::none, boost::optional<int> priority = boost::none,
141+
boost::optional<int> sort = boost::none, const FunctionalTask::UserDataType& data = {},
142+
boost::optional<int> priority = boost::none,
142143
const boost::optional<std::string>& task_chain = boost::none,
143144
const FunctionalTask::DeathFunc& upon_death=nullptr);
144145

@@ -181,7 +182,8 @@ class RENDER_PIPELINE_DECL TaskManager : public TypedObject
181182
* @return pointer of a new task object
182183
*/
183184
FunctionalTask* add(const FunctionalTask::TaskFunc& func, const std::string& name,
184-
boost::optional<int> sort = boost::none, boost::optional<int> priority = boost::none,
185+
boost::optional<int> sort = boost::none, const FunctionalTask::UserDataType& data = {},
186+
boost::optional<int> priority = boost::none,
185187
const boost::optional<std::string>& task_chain = boost::none,
186188
const FunctionalTask::DeathFunc& upon_death = nullptr);
187189

src/rpcore/gui/draggable_window.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ void DraggableWindow::start_drag()
113113

114114
Globals::base->get_task_mgr()->add(
115115
[this](rppanda::FunctionalTask* task) { return on_tick(task); },
116-
"UIWindowDrag", boost::none, boost::none, boost::none,
116+
"UIWindowDrag", boost::none, {}, boost::none, boost::none,
117117
[this](rppanda::FunctionalTask*, bool) { stop_drag(); });
118118

119119
drag_offset_ = pos_ - get_mouse_pos();

src/rppanda/showbase/direct_object.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,13 @@ AsyncTask* DirectObject::add_task(AsyncTask* task, const std::string& name,
104104
}
105105

106106
FunctionalTask* DirectObject::add_task(const FunctionalTask::TaskFunc& func, const std::string& name,
107-
boost::optional<int> sort, boost::optional<int> priority,
107+
boost::optional<int> sort, const FunctionalTask::UserDataType& data,
108+
boost::optional<int> priority,
108109
const boost::optional<std::string>& task_chain,
109110
const FunctionalTask::DeathFunc& upon_death)
110111
{
111-
auto new_task = TaskManager::get_global_instance()->add(func, name, sort, priority, task_chain, upon_death);
112+
auto new_task = TaskManager::get_global_instance()->add(
113+
func, name, sort, data, priority, task_chain, upon_death);
112114
do_add_task(new_task);
113115
return new_task;
114116
}
@@ -118,18 +120,21 @@ AsyncTask* DirectObject::do_method_later(float delay_time, AsyncTask* task,
118120
boost::optional<int> sort, boost::optional<int> priority,
119121
const boost::optional<std::string>& task_chain)
120122
{
121-
auto new_task = TaskManager::get_global_instance()->do_method_later(delay_time, task, name, sort, priority, task_chain);
123+
auto new_task = TaskManager::get_global_instance()->do_method_later(
124+
delay_time, task, name, sort, priority, task_chain);
122125
do_add_task(new_task);
123126
return new_task;
124127
}
125128

126129
FunctionalTask* DirectObject::do_method_later(float delay_time,
127130
const FunctionalTask::TaskFunc& func, const std::string& name,
128-
boost::optional<int> sort, boost::optional<int> priority,
131+
boost::optional<int> sort, const FunctionalTask::UserDataType& data,
132+
boost::optional<int> priority,
129133
const boost::optional<std::string>& task_chain,
130134
const FunctionalTask::DeathFunc& upon_death)
131135
{
132-
auto new_task = TaskManager::get_global_instance()->do_method_later(delay_time, func, name, sort, priority, task_chain, upon_death);
136+
auto new_task = TaskManager::get_global_instance()->do_method_later(
137+
delay_time, func, name, sort, data, priority, task_chain, upon_death);
133138
do_add_task(new_task);
134139
return new_task;
135140
}

src/rppanda/task/task_manager.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,12 @@ AsyncTask* TaskManager::do_method_later(float delay_time, AsyncTask* task,
136136

137137
FunctionalTask* TaskManager::do_method_later(float delay_time,
138138
const FunctionalTask::TaskFunc& func, const std::string& name,
139-
boost::optional<int> sort, boost::optional<int> priority,
139+
boost::optional<int> sort, const FunctionalTask::UserDataType& data,
140+
boost::optional<int> priority,
140141
const boost::optional<std::string>& task_chain,
141142
const FunctionalTask::DeathFunc& upon_death)
142143
{
143-
PT(FunctionalTask) task = new FunctionalTask(func, name);
144+
PT(FunctionalTask) task = new FunctionalTask(func, data, name);
144145
if (upon_death)
145146
task->set_upon_death(upon_death);
146147

@@ -163,11 +164,12 @@ AsyncTask* TaskManager::add(AsyncTask* task, const std::string& name,
163164
}
164165

165166
FunctionalTask* TaskManager::add(const FunctionalTask::TaskFunc& func, const std::string& name,
166-
boost::optional<int> sort, boost::optional<int> priority,
167+
boost::optional<int> sort, const FunctionalTask::UserDataType& data,
168+
boost::optional<int> priority,
167169
const boost::optional<std::string>& task_chain,
168170
const FunctionalTask::DeathFunc& upon_death)
169171
{
170-
PT(FunctionalTask) task = new FunctionalTask(func, name);
172+
PT(FunctionalTask) task = new FunctionalTask(func, data, name);
171173
if (upon_death)
172174
task->set_upon_death(upon_death);
173175

0 commit comments

Comments
 (0)