#include <PxTask.h>
Public Member Functions | |
PxBaseTask () | |
virtual | ~PxBaseTask () |
virtual void | run ()=0 |
The user-implemented run method where the task's work should be performed. | |
virtual const char * | getName () const =0 |
Return a user-provided task name for profiling purposes. | |
virtual void | addReference ()=0 |
Implemented by derived implementation classes. | |
virtual void | removeReference ()=0 |
Implemented by derived implementation classes. | |
virtual int32_t | getReference () const =0 |
Implemented by derived implementation classes. | |
virtual void | release ()=0 |
Implemented by derived implementation classes. | |
PX_FORCE_INLINE PxTaskManager * | getTaskManager () const |
Return PxTaskManager to which this task was submitted. | |
PX_FORCE_INLINE void | setContextId (PxU64 id) |
PX_FORCE_INLINE PxU64 | getContextId () const |
Protected Attributes | |
PxU64 | mContextID |
Context ID for profiler interface. | |
PxTaskManager * | mTm |
Owning PxTaskManager instance. | |
Friends | |
class | PxTaskMgr |
PxBaseTask defines a runnable reference counted task with built-in profiling.
physx::PxBaseTask::PxBaseTask | ( | ) | [inline] |
virtual physx::PxBaseTask::~PxBaseTask | ( | ) | [inline, virtual] |
virtual void physx::PxBaseTask::addReference | ( | ) | [pure virtual] |
Implemented by derived implementation classes.
Implemented in physx::PxTask, and physx::PxLightCpuTask.
Referenced by physx::PxLightCpuTask::setContinuation().
PX_FORCE_INLINE PxU64 physx::PxBaseTask::getContextId | ( | ) | const [inline] |
References mContextID.
virtual const char* physx::PxBaseTask::getName | ( | ) | const [pure virtual] |
Return a user-provided task name for profiling purposes.
It does not have to be unique, but unique names are helpful.
virtual int32_t physx::PxBaseTask::getReference | ( | ) | const [pure virtual] |
Implemented by derived implementation classes.
Implemented in physx::PxTask, and physx::PxLightCpuTask.
PX_FORCE_INLINE PxTaskManager* physx::PxBaseTask::getTaskManager | ( | ) | const [inline] |
Return PxTaskManager to which this task was submitted.
Note, can return NULL if task was not submitted, or has been completed.
References mTm.
Referenced by physx::PxLightCpuTask::setContinuation().
virtual void physx::PxBaseTask::release | ( | ) | [pure virtual] |
Implemented by derived implementation classes.
A task may assume in its release() method that the task system no longer holds references to it - so it may safely run its destructor, recycle itself, etc. provided no additional user references to the task exist
Implemented in physx::PxGpuTask, physx::PxTask, and physx::PxLightCpuTask.
virtual void physx::PxBaseTask::removeReference | ( | ) | [pure virtual] |
Implemented by derived implementation classes.
Implemented in physx::PxTask, and physx::PxLightCpuTask.
Referenced by physx::PxLightCpuTask::release(), and physx::PxGpuTask::release().
virtual void physx::PxBaseTask::run | ( | ) | [pure virtual] |
The user-implemented run method where the task's work should be performed.
run() methods must be thread safe, stack friendly (no alloca, etc), and must never block.
PX_FORCE_INLINE void physx::PxBaseTask::setContextId | ( | PxU64 | id | ) | [inline] |
References mContextID.
friend class PxTaskMgr [friend] |
Reimplemented in physx::PxTask, and physx::PxLightCpuTask.
PxU64 physx::PxBaseTask::mContextID [protected] |
PxTaskManager* physx::PxBaseTask::mTm [protected] |
Owning PxTaskManager instance.
Referenced by physx::PxLightCpuTask::addReference(), physx::PxTask::addReference(), physx::PxTask::finishBefore(), physx::PxTask::getReference(), getTaskManager(), physx::PxTask::release(), physx::PxLightCpuTask::removeReference(), physx::PxTask::removeReference(), physx::PxLightCpuTask::setContinuation(), physx::PxTask::startAfter(), and physx::PxLightCpuTask::~PxLightCpuTask().