A PxBaseTask implementation with immediate execution and simple dependencies. More...
#include <PxTask.h>
Public Member Functions | |
PxLightCpuTask () | |
virtual | ~PxLightCpuTask () |
PX_INLINE void | setContinuation (PxTaskManager &tm, PxBaseTask *c) |
Initialize this task and specify the task that will have its ref count decremented on completion. More... | |
PX_INLINE void | setContinuation (PxBaseTask *c) |
Initialize this task and specify the task that will have its ref count decremented on completion. More... | |
PX_INLINE PxBaseTask * | getContinuation () const |
Retrieves continuation task. More... | |
PX_INLINE void | removeReference () |
Manually decrement this task's reference count. If the reference count reaches zero, the task will be dispatched. More... | |
PX_INLINE int32_t | getReference () const |
Return the ref-count for this task. More... | |
PX_INLINE void | addReference () |
Manually increment this task's reference count. The task will not be allowed to run until removeReference() is called. More... | |
PX_INLINE void | release () |
called by CpuDispatcher after run method has completed More... | |
Public Member Functions inherited from physx::PxBaseTask | |
PxBaseTask () | |
virtual | ~PxBaseTask () |
virtual void | run ()=0 |
The user-implemented run method where the task's work should be performed. More... | |
virtual const char * | getName () const =0 |
Return a user-provided task name for profiling purposes. More... | |
PX_FORCE_INLINE PxTaskManager * | getTaskManager () const |
Return PxTaskManager to which this task was submitted. More... | |
PX_FORCE_INLINE void | setContextId (PxU64 id) |
PX_FORCE_INLINE PxU64 | getContextId () const |
Protected Attributes | |
PxBaseTask * | mCont |
Continuation task, can be NULL. More... | |
volatile int32_t | mRefCount |
PxTask is dispatched when reaches 0. More... | |
Protected Attributes inherited from physx::PxBaseTask | |
PxU64 | mContextID |
Context ID for profiler interface. More... | |
PxTaskManager * | mTm |
Owning PxTaskManager instance. More... | |
Friends | |
class | PxTaskMgr |
A PxBaseTask implementation with immediate execution and simple dependencies.
A PxLightCpuTask bypasses the PxTaskManager launch dependencies and will be submitted directly to your scene's CpuDispatcher. When the run() function completes, it will decrement the reference count of the specified continuation task.
You must use a full-blown PxTask if you want your task to be resolved by another PxTask, or you need more than a single dependency to be resolved when your task completes, or your task will not run on the CpuDispatcher.
|
inline |
|
inlinevirtual |
References physx::PxBaseTask::mTm.
|
inlinevirtual |
Manually increment this task's reference count. The task will not be allowed to run until removeReference() is called.
Implements physx::PxBaseTask.
References physx::PxBaseTask::mTm.
|
inline |
Retrieves continuation task.
References mCont.
|
inlinevirtual |
|
inlinevirtual |
called by CpuDispatcher after run method has completed
Decrements the continuation task's reference count, if specified.
Implements physx::PxBaseTask.
References mCont, and physx::PxBaseTask::removeReference().
|
inlinevirtual |
Manually decrement this task's reference count. If the reference count reaches zero, the task will be dispatched.
Implements physx::PxBaseTask.
References physx::PxBaseTask::mTm.
|
inline |
Initialize this task and specify the task that will have its ref count decremented on completion.
Submission is deferred until the task's mRefCount is decremented to zero. Note that we only use the PxTaskManager to query the appropriate dispatcher.
[in] | tm | The PxTaskManager this task is managed by |
[in] | c | The task to be executed when this task has finished running |
References physx::PxBaseTask::addReference(), mCont, mRefCount, physx::PxBaseTask::mTm, and PX_ASSERT.
|
inline |
Initialize this task and specify the task that will have its ref count decremented on completion.
This overload of setContinuation() queries the PxTaskManager from the continuation task, which cannot be NULL.
[in] | c | The task to be executed after this task has finished running |
References physx::PxBaseTask::addReference(), physx::PxBaseTask::getTaskManager(), mCont, mRefCount, physx::PxBaseTask::mTm, and PX_ASSERT.
|
friend |
|
protected |
Continuation task, can be NULL.
Referenced by getContinuation(), release(), and setContinuation().
|
protected |
PxTask is dispatched when reaches 0.
Referenced by getReference(), and setContinuation().