10#ifndef __GUIMEMPROFILE_H__
11#define __GUIMEMPROFILE_H__
13#include "GUIAnimatable.h"
14#include "GUICompositeObject.h"
19#include "eC_TList_doubleLinked.h"
21#include "GUIComponentManager.h"
23#define GETPROFILER CGUIComponentManager::GetInstance().GetProfiler()
93 INVALID_COUNTER_ID = -1,
132 return m_bDisplayActive;
145 return m_bConsoleActive;
160 return m_bCPUProfilingActive;
173 return m_bMemoryProfilingActive;
186 return m_bMemoryUsageBarActive;
199 return m_bGraphicsProfilingActive;
212 return m_bInvalidationActive;
238 return m_bRuntimeActive;
251 return m_bObjectCountActive;
363 virtual void DoAnimate(
const eC_Value& vTimes = eC_FromInt(1));
381 void StartMeasurementFPS();
385 void EndMeasurementFPS();
406 void DisplayInvalidation(
const CGUIRect& kRect);
428 void DrawMemoryBar()
const;
431 void ConsoleOutput()
const;
433 void CalcBackRectangle();
439 FPSCounterID AddCounter(
const eC_String& kFPSTextPrefix);
444 eC_UInt GetFPS(
const FPSCounterID& eCounterID = DEFAULT_FPS)
const;
449 void StartMeasurement(
const FPSCounterID& eCounterID)
const;
454 void StopMeasurement(
const FPSCounterID& eCounterID)
const;
460 class CGUIFramerateCounter
464 CGUIFramerateCounter();
472 CGUIFramerateCounter(eC_String kFPSTextPrefix);
475 virtual ~CGUIFramerateCounter();
480 eC_UInt GetFPS()
const;
486 eC_String GetText()
const;
492 void StartMeasurement();
495 void StopMeasurement();
502 eC_Time64 m_kStartTime;
503 eC_Time64 m_kDeltaTime;
505 eC_String m_kFPSTextPrefix;
506 eC_String m_kFPSText;
522 CGUIFramerateCounter* GetCounter(
const FPSCounterID& eCounterID)
const;
524 void CheckUpdateTimer();
526 void UpdateMemoryValues();
528 void UpdateObjectCount();
532 eC_Bool m_bDisplayActive;
533 eC_Bool m_bConsoleActive;
534 eC_Bool m_bCPUProfilingActive;
535 eC_Bool m_bMemoryProfilingActive;
536 eC_Bool m_bMemoryUsageBarActive;
537 eC_Bool m_bGraphicsProfilingActive;
538 eC_Bool m_bInvalidationActive;
539 eC_Bool m_bFPSActive;
540 eC_Bool m_bRuntimeActive;
541 eC_Bool m_bObjectCountActive;
543 eC_UInt m_uiUpdateInterval;
545 eC_UInt m_uiBackColor;
546 eC_UInt m_uiTextColor;
551 eC_UInt m_uiLineCount;
552 eC_Value m_vLineHeight;
554 eC_Value m_vMemoryBarPosX;
555 eC_Value m_vMemoryBarPosY;
556 eC_Value m_vMemoryBarWidth;
557 eC_Value m_vMemoryBarHeight;
561 eC_Time64 m_tLoopBegin;
562 eC_Time64 m_tProcessBegin;
564 eC_UInt m_uiCPUUsage;
565 eC_UInt m_uiLastCPUUsage;
566 size_t m_tMemoryUsed;
567 size_t m_tMemoryUsageWarning;
568 size_t m_tMemoryUsageAlert;
569 size_t m_tMemoryUsedMax;
570 size_t m_tMemoryUsedLargestBlock;
571 size_t m_tMemoryNumAllocs;
572 eC_UInt m_uiStartRedraw;
573 eC_UInt m_uiLastRedraw;
574 eC_UInt m_uiDurationRedraw;
575 eC_UInt m_uiStartRefresh;
576 eC_UInt m_uiLastRefresh;
577 eC_UInt m_uiDurationRefresh;
579 eC_String m_kCPUUsage;
580 eC_String m_kMemoryUsed;
581 eC_String m_kMemoryMax;
582 eC_String m_kMemoryLargestBlock;
583 eC_String m_kMemoryNumAllocs;
584 eC_String m_kTimeRedraw;
585 eC_String m_kTimeRefresh;
586 eC_String m_kTimeRuntime;
587 eC_String m_kObjectCount;
589 eC_Value m_vScreenWidth;
590 eC_Value m_vScreenHeight;
591 eC_Value m_vMemoryUsageCurrent;
592 eC_Value m_vMemoryUsageWarning;
593 eC_Value m_vMemoryUsageAlert;
594 eC_Value m_vMemoryUsageMax;
596 eC_UInt m_uiObjectCount;
598 eC_Bool m_bNeedsRedraw;
599 eC_Bool m_bRectChanged;
601 eC_Time64 m_tStartTime;
605 eC_Time64 m_kInternalTimer;
Helper Macros in Guiliani
FontResource_t
List of font resource ids.
Definition: GUIFontResource.h:54
Base interface for animation callbacks.
Definition: GUIAnimatable.h:51
central component-manager
Definition: GUIComponentManager.h:62
This is the Guiliani base class for all composite objects.
Definition: GUICompositeObject.h:70
GUI base class for any Guiliani application.
Definition: GUI.h:39
Definition: GUIProfiler.h:83
void SetCPUProfilingActive(const eC_Bool &bActive)
size_t GetMemoryAvailable() const
virtual void DoAnimate(const eC_Value &vTimes=eC_FromInt(1))
void SetFPSActive(const eC_Bool &bActive)
eC_UInt GetRedrawDuration() const
void SetTextColor(const eC_UInt &uiTextColor)
void SetMemoryUsageBarSize(const eC_Value &vWidth, const eC_Value &vHeight)
eC_Bool IsMemoryUsageBarActive() const
Definition: GUIProfiler.h:184
eC_Bool GetObjectCountActive() const
Definition: GUIProfiler.h:249
void SetBackColor(const eC_UInt &uiBackColor)
eC_Bool IsDisplayActive() const
Definition: GUIProfiler.h:130
void SetInvalidationActive(const eC_Bool &bActive)
static void DeleteInstance()
void SetFont(const FontResource_t &eFontID)
void SetMemoryAvailable(const size_t &tMemoryAvailable)
void SetActive(const eC_Bool &bActive)
size_t GetMemoryUsed() const
eC_UInt GetCPUUsage() const
eC_Bool IsInvalidationActive() const
Definition: GUIProfiler.h:210
void SetMemoryUsageBarPosition(const eC_Value &vX, const eC_Value &vY)
eC_Bool IsCPUProfilingActive() const
Definition: GUIProfiler.h:158
void SetMemoryUsageBarActive(const eC_Bool &bActive)
eC_Bool GetRuntimeActive() const
Definition: GUIProfiler.h:236
void SetMemoryProfilingActive(const eC_Bool &bActive)
size_t GetMemoryLargestBlock() const
size_t GetMemoryMax() const
void SetConsoleActive(const eC_Bool &bActive)
void ClearMemoryLargestBlock()
void GetMemoryThresholds(size_t &uiMemoryUsageWarning, size_t &uiMemoryUsageAlert)
void SetObjectCountActive(const eC_Bool &bActive)
void SetPosition(const eC_Value &vX, const eC_Value &vY)
eC_Bool IsGraphicsProfilingActive() const
Definition: GUIProfiler.h:197
static void CreateInstance()
void SetUpdateInterval(const eC_UInt &uiUpdateInterval)
eC_Bool IsFPSActive() const
Definition: GUIProfiler.h:223
void SetRuntimeActive(const eC_Bool &bActive)
eC_Bool IsMemoryProfilingActive() const
Definition: GUIProfiler.h:171
void SetMemoryThresholds(const size_t &uiMemoryUsageWarning, const size_t &uiMemoryUsageAlert)
void SetDisplayActive(const eC_Bool &bActive)
FPSCounterID
Definition: GUIProfiler.h:92
eC_Bool IsConsoleActive() const
Definition: GUIProfiler.h:143
eC_UInt GetRefreshDuration() const
eC_Bool IsActive() const
Definition: GUIProfiler.h:117
void SetGraphicsProfilingActive(const eC_Bool &bActive)
Helper class to supply a platform independent rectangle implementation.
Definition: GUIRect.h:63
The graphics wrapper base class.
Definition: GfxWrap.h:88