#include <NvBlastExtPxTask.h>
Public Member Functions | |
| virtual uint32_t | process (uint32_t workerCount=0)=0 |
| virtual void | release ()=0 |
| virtual void | setGroup (TkGroup *)=0 |
| virtual bool | wait (bool block=true)=0 |
Static Public Member Functions | |
| static ExtGroupTaskManager * | create (physx::PxTaskManager &, TkGroup *=nullptr) |
Protected Member Functions | |
| virtual | ~ExtGroupTaskManager () |
| virtual Nv::Blast::ExtGroupTaskManager::~ExtGroupTaskManager | ( | ) | [inline, protected, virtual] |
| static ExtGroupTaskManager* Nv::Blast::ExtGroupTaskManager::create | ( | physx::PxTaskManager & | , | |
| TkGroup * | = nullptr | |||
| ) | [static] |
Construct using existing physx::PxTaskManager and TkGroup. The TkGroup can be set later with setGroup().
| virtual uint32_t Nv::Blast::ExtGroupTaskManager::process | ( | uint32_t | workerCount = 0 |
) | [pure virtual] |
Start processing the group. The parallelizing strategy is to have all worker tasks running concurrently. The number of started tasks may be smaller than the requested value, when the task manager's dispatcher thread count or the number of group jobs are smaller.
| [in] | workerCount | The number of worker tasks to start, 0 uses the dispatcher's worker thread count. |
| virtual void Nv::Blast::ExtGroupTaskManager::release | ( | ) | [pure virtual] |
Release this object.
| virtual void Nv::Blast::ExtGroupTaskManager::setGroup | ( | TkGroup * | ) | [pure virtual] |
Set the group to process. Cannot be changed while a group being processed.
| virtual bool Nv::Blast::ExtGroupTaskManager::wait | ( | bool | block = true |
) | [pure virtual] |
Wait for the group to end processing. When processing has finished, TkGroup::endProcess is executed.
| [in] | block | true: does not return until the group has been processed. false: return immediately if workers are still processing the group. |