49#if OGRE_PROFILING == 1
50# define OgreProfile( a ) Ogre::Profile _OgreProfileInstance( (a) )
51# define OgreProfileBegin( a ) Ogre::Profiler::getSingleton().beginProfile( (a) )
52# define OgreProfileEnd( a ) Ogre::Profiler::getSingleton().endProfile( (a) )
53# define OgreProfileGroup( a, g ) Ogre::Profile _OgreProfileInstance( (a), (g) )
54# define OgreProfileBeginGroup( a, g ) Ogre::Profiler::getSingleton().beginProfile( (a), (g) )
55# define OgreProfileEndGroup( a, g ) Ogre::Profiler::getSingleton().endProfile( (a), (g) )
56# define OgreProfileBeginGPUEvent( g ) Ogre::Profiler::getSingleton().beginGPUEvent(g)
57# define OgreProfileEndGPUEvent( g ) Ogre::Profiler::getSingleton().endGPUEvent(g)
58# define OgreProfileMarkGPUEvent( e ) Ogre::Profiler::getSingleton().markGPUEvent(e)
60# define OgreProfile( a )
61# define OgreProfileBegin( a )
62# define OgreProfileEnd( a )
63# define OgreProfileGroup( a, g )
64# define OgreProfileBeginGroup( a, g )
65# define OgreProfileEndGroup( a, g )
66# define OgreProfileBeginGPUEvent( e )
67# define OgreProfileEndGPUEvent( e )
68# define OgreProfileMarkGPUEvent( e )
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Represents an individual profile call.
bool watchForMax(const String &profileName)
Ogre::map< String, ProfileInstance * >::type ProfileChildren
bool watchForLimit(const String &profileName, Real limit, bool greaterThan=true)
uint hierarchicalLvl
The hierarchical level of this profile, 0 being the root profile.
String name
The name of the profile.
bool watchForMin(const String &profileName)
ProfileInstance * parent
The name of the parent, null if root.
ulong currTime
The time this profile was started.
ulong accum
Represents the total time of all child profiles to subtract from this profile.
virtual ~ProfileInstance(void)
bool watchForLimit(Real limit, bool greaterThan=true)
ProfileSessionListener should be used to visualize profile results.
void setDisplayMode(DisplayMode d)
Set the display mode for the overlay.
virtual void displayResults(const ProfileInstance &instance, ulong maxTotalFrameTime)
Here we get the real profiling information which we can use.
virtual void initializeSession()=0
Create the internal resources.
virtual void finializeSession()=0
All internal resources should be deleted here.
@ DISPLAY_PERCENTAGE
Display % frame usage on the overlay.
DisplayMode mDisplayMode
How to display the overlay.
virtual void changeEnableState(bool enabled)
If the profiler disables this listener then it should hide its panels (if any exists) or stop sending...
virtual ~ProfileSessionListener()
DisplayMode getDisplayMode() const
Get the display mode for the overlay.
An individual profile that will be processed by the Profiler.
String mName
The name of this profile.
uint32 mGroupID
The group ID.
Profile(const String &profileName, uint32 groupID=(uint32) OGREPROF_USER_DEFAULT)
The profiler allows you to measure the performance of your code.
void addListener(ProfileSessionListener *listener)
ulong mTotalFrameTime
The total time each frame takes.
bool mEnabled
Whether this profiler is enabled.
void disableProfile(const String &profileName)
Disables a profile.
static Profiler * getSingletonPtr(void)
Override standard Singleton retrieval.
bool mNewEnableState
Keeps track of the new enabled/disabled state that the user has requested which will be applied after...
void markGPUEvent(const String &event)
Mark a specific, ungrouped, GPU event.
ProfileInstance::ProfileChildren ProfileChildren
void processFrameStats(void)
Processes frame stats for all of the mRoot's children.
void changeEnableState()
Handles a change of the profiler's enabled state.
set< String >::type DisabledProfileMap
uint mCurrentFrame
The number of elapsed frame, used with mUpdateDisplayFrequency.
Timer * mTimer
The timer used for profiling.
DisabledProfileMap mDisabledProfiles
Holds the names of disabled profiles.
Real mAverageFrameTime
Rolling average of millisecs.
bool getEnabled() const
Gets whether this profiler is enabled.
void logResults()
Outputs current profile statistics to the log.
void initialize()
Initializes the profiler's GUI elements.
void enableProfile(const String &profileName)
Enables a previously disabled profile.
void setTimer(Timer *t)
Sets the timer for the profiler.
void beginGPUEvent(const String &event)
Mark the beginning of a GPU event group.
TProfileSessionListener mListeners
uint mUpdateDisplayFrequency
The number of frames that must elapse before the current frame display is updated.
Timer * getTimer()
Retrieves the timer for the profiler.
uint32 mProfileMask
Mask to decide whether a type of profile is enabled or not.
void removeListener(ProfileSessionListener *listener)
static Profiler & getSingleton(void)
Override standard Singleton retrieval.
bool mInitialized
Whether the GUI elements have been initialized.
void processFrameStats(ProfileInstance *instance, Real &maxFrameTime)
Processes specific ProfileInstance and it's children recursively.
uint32 getProfileGroupMask() const
Get the mask which all profiles must pass to be enabled.
void setEnabled(bool enabled)
Sets whether this profiler is enabled.
void beginProfile(const String &profileName, uint32 groupID=(uint32) OGREPROF_USER_DEFAULT)
Begins a profile.
ulong mMaxTotalFrameTime
The max frame time recorded.
void endProfile(const String &profileName, uint32 groupID=(uint32) OGREPROF_USER_DEFAULT)
Ends a profile.
ProfileInstance * mCurrent
void setUpdateDisplayFrequency(uint freq)
Sets the Profiler so the display of results are updated every n frames.
void endGPUEvent(const String &event)
Mark the end of a GPU event group.
void setProfileGroupMask(uint32 mask)
Set the mask which all profiles must pass to be enabled.
bool watchForMin(const String &profileName)
Returns true if the specified profile reaches a new frame time minimum.
void reset()
Clears the profiler statistics.
bool watchForLimit(const String &profileName, Real limit, bool greaterThan=true)
Returns true if the specified profile goes over or under the given limit frame time.
vector< ProfileSessionListener * >::type TProfileSessionListener
uint getUpdateDisplayFrequency() const
Gets the frequency that the Profiler display is updated.
bool watchForMax(const String &profileName)
Returns true if the specified profile reaches a new frame time maximum.
Reference-counted shared pointer, used for objects where implicit destruction is required.
Template class for creating single-instance global classes.
ProfileGroupMask
List of reserved profiling masks.
@ OGREPROF_CULLING
Culling.
@ OGREPROF_RENDERING
Rendering.
@ OGREPROF_USER_DEFAULT
User default profile.
@ OGREPROF_GENERAL
General processing.
@ OGREPROF_ALL
All in-built Ogre profiling will match this mask.
Represents the total timing information of a profile since profiles can be called more than once each...
uint calls
The number of times this profile was called this frame.
ulong frameTime
The total time this profile has taken this frame.
uint hierarchicalLvl
The hierarchical level of this profile, 0 being the main loop.
Represents a history of each profile during the duration of the app.
uint numCallsThisFrame
The number of times this profile has been called each frame.
Real currentTimePercent
The current percentage of frame time this profile has taken.
Real maxTimeMillisecs
The maximum frame time this profile has taken in milliseconds.
Real minTimeMillisecs
The minimum frame time this profile has taken in milliseconds.
ulong totalCalls
The total number of times this profile was called (used to calculate average)
Real totalTimePercent
The total percentage of frame time this profile has taken.
Real maxTimePercent
The maximum percentage of frame time this profile has taken.
Real minTimePercent
The minimum percentage of frame time this profile has taken.
uint hierarchicalLvl
The hierarchical level of this profile, 0 being the root profile.
Real currentTimeMillisecs
The current frame time this profile has taken in milliseconds.
Real totalTimeMillisecs
The total frame time this profile has taken in milliseconds.
std::map< K, V, P, A > type