| Top |
|
|
(*UfoTaskProcessFunc) () |
|
|
(*UfoTaskGenerateFunc) () |
|
|
ufo_task_setup () |
|
|
ufo_task_get_num_inputs () |
|
|
ufo_task_get_num_dimensions () |
| UfoTaskMode | ufo_task_get_mode () |
|
|
ufo_task_get_requisition () |
|
|
ufo_task_set_json_object_property () |
|
|
ufo_task_process () |
|
|
ufo_task_generate () |
|
|
ufo_task_uses_gpu () |
|
|
ufo_task_uses_cpu () |
|
|
ufo_task_error_quark () |
Interface that defines the behaviour of all tasks. Each scheduler uses the
same policy to run a task: First, ufo_task_setup(), ufo_task_get_num_inputs()
and ufo_task_get_num_dimensions() is called for each tasks. Then in each
iteration the task is asked about its size requirements using
ufo_task_get_requisition() and then executed using ufo_task_process() and/or
ufo_task_generate().
gboolean (*UfoTaskProcessFunc) (UfoTask *task,UfoBuffer **inputs,UfoBuffer *output,UfoRequisition *requisition);
gboolean (*UfoTaskGenerateFunc) (UfoTask *task,UfoBuffer *output,UfoRequisition *requisition);
void ufo_task_get_requisition (UfoTask *task,UfoBuffer **inputs,UfoRequisition *requisition);
void ufo_task_set_json_object_property (UfoTask *task,const,gchar *prop_name);JsonObject *object
gboolean ufo_task_process (UfoTask *task,UfoBuffer **inputs,UfoBuffer *output,UfoRequisition *requisition);
gboolean ufo_task_generate (UfoTask *task,UfoBuffer *output,UfoRequisition *requisition);
Task modes describe how a task operates considering the input data.
|
invalid |
||
|
one-by-one processing |
||
|
do not receive any data but produce a stream. |
||
|
receive fininite stream and generate a reduced stream |
||
|
receives data but does not produce any, |
||
|
runs on CPU |
||
|
runs on GPU |
||
|
sibling tasks share the same input data |
||
|
mask to get type from UfoTaskMode |
||
|
mask to get processor from UfoTaskMode |