+#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_INLINE void | runProfiled (uint32_t threadId=0) |
| Execute user run method with wrapping profiling events. | |
| PX_INLINE void | setProfileStat (uint16_t stat) |
| Specify stop event statistic. | |
| PX_INLINE PxTaskManager * | getTaskManager () const |
| Return PxTaskManager to which this task was submitted. | |
Protected Attributes | |
| uint16_t | mEventID |
| Registered profile event ID. | |
| uint16_t | mProfileStat |
| Profiling statistic. | |
| 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().
+ +| 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_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. +
Referenced by runProfiled().
+ +| PX_INLINE void physx::PxBaseTask::runProfiled | +( | +uint32_t | + threadId = 0 |
+ ) | + [inline] |
+
| PX_INLINE void physx::PxBaseTask::setProfileStat | +( | +uint16_t | +stat | +) | + [inline] |
+
+Specify stop event statistic. +
+If called before or while the task is executing, the given value will appear in the task's event bar in the profile viewer
+
| [in] | stat | The stat to signal when the task is finished |
References mProfileStat.
+ ++
friend class PxTaskMgr [friend] |
+
+ +
Reimplemented in physx::PxTask, and physx::PxLightCpuTask.
+ ++
uint16_t physx::PxBaseTask::mEventID [protected] |
+
+Registered profile event ID. +
+ +
uint16_t physx::PxBaseTask::mProfileStat [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(), runProfiled(), physx::PxLightCpuTask::setContinuation(), physx::PxTask::startAfter(), and physx::PxLightCpuTask::~PxLightCpuTask().
+ ++