The profiling system was setup in the expectation that there would be several systems that each had its own island of profile information. PhysX, client code, and APEX would be the first examples of these. Each one of these islands is represented by a profile zone.
More...
|
| virtual const char * | getName ()=0 |
| | Get profile zone name.
|
| |
| virtual void | release ()=0 |
| | Release the profile zone.
|
| |
| virtual void | setProfileZoneManager (PxProfileZoneManager *inMgr)=0 |
| | Set profile zone manager for the zone.
|
| |
| virtual PxProfileZoneManager * | getProfileZoneManager ()=0 |
| | Get profile zone manager for the zone.
|
| |
| virtual uint16_t | getEventIdForName (const char *inName)=0 |
| | Get or create a new event id for a given name. If you pass in a previously defined event name (including one returned) from the name provider) you will just get the same event id back.
|
| |
| virtual void | flushEventIdNameMap ()=0 |
| | Specifies that it is a safe point to flush read-write name map into read-only map. Make sure getEventIdForName is not called from a different thread.
|
| |
| virtual uint16_t | getEventIdsForNames (const char **inNames, uint32_t inLen)=0 |
| | Reserve a contiguous set of profile event ids for a set of names.
|
| |
| virtual void | addClient (PxProfileZoneClient &inClient)=0 |
| | Adds new client.
|
| |
| virtual void | removeClient (PxProfileZoneClient &inClient)=0 |
| | Removes a client.
|
| |
| virtual bool | hasClients () const =0 |
| | Check if manager has clients.
|
| |
| virtual PxProfileNames | getProfileNames () const =0 |
| | Returns profile event names.
|
| |
| virtual void | startEvent (uint16_t inId, uint64_t contextId)=0 |
| | Send a start profile event, optionally with a context. Events are sorted by thread and context in the client side.
|
| |
| virtual void | stopEvent (uint16_t inId, uint64_t contextId)=0 |
| | Send a stop profile event, optionally with a context. Events are sorted by thread and context in the client side.
|
| |
| virtual void | startEvent (uint16_t inId, uint64_t contextId, uint32_t threadId)=0 |
| | Send a start profile event, optionally with a context. Events are sorted by thread and context in the client side.
|
| |
| virtual void | stopEvent (uint16_t inId, uint64_t contextId, uint32_t threadId)=0 |
| | Send a stop profile event, optionally with a context. Events are sorted by thread and context in the client side.
|
| |
|
virtual void | atEvent (uint16_t inId, uint64_t contextId, uint32_t threadId, uint64_t start, uint64_t stop)=0 |
| |
| virtual void | eventValue (uint16_t inId, uint64_t contextId, int64_t inValue)=0 |
| | Set an specific events value. This is different than the profiling value for the event; it is a value recorded and kept around without a timestamp associated with it. This value is displayed when the event itself is processed.
|
| |
| virtual void | flushProfileEvents ()=0 |
| | Flush profile events. Sends the profile event buffer to hooked clients.
|
| |
The profiling system was setup in the expectation that there would be several systems that each had its own island of profile information. PhysX, client code, and APEX would be the first examples of these. Each one of these islands is represented by a profile zone.
A profile zone combines a name, a place where all the events coming from its interface can flushed, and a mapping from event number to full event name.
It also provides a top level filtering service where profile events can be filtered by event id.
The profile zone implements a system where if there is no one listening to events it doesn't provide a mechanism to send them. In this way the event system is short circuited when there aren't any clients.
All functions on this interface should be considered threadsafe.
- See also
- PxProfileZoneClientManager, PxProfileNameProvider, PxProfileEventSender, PxProfileEventFlusher
| virtual uint16_t physx::profile::PxProfileZone::getEventIdsForNames |
( |
const char ** |
inNames, |
|
|
uint32_t |
inLen |
|
) |
| |
|
pure virtual |
Reserve a contiguous set of profile event ids for a set of names.
This function does not do any meaningful error checking other than to ensure that if it does generate new ids they are contiguous. If the first name is already registered, that is the ID that will be returned regardless of what other names are registered. Thus either use this function alone (without the above function) or don't use it.
If you register "one","two","three" and the function returns an id of 4, then "one" is mapped to 4, "two" is mapped to 5, and "three" is mapped to 6.
- Parameters
-
| inNames | set of names to register. |
| inLen | Length of the name list. |
- Returns
- The first id associated with the first name. The rest of the names will be associated with monotonically incrementing uint16_t values from the first id.
Implemented in physx::profile::ZoneImpl< TNameProvider >.