BVB Source Codes

CRYENGINE Show DebugHistory.h Source code

Return Download CRYENGINE: download DebugHistory.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #ifndef __DebugHistory_H__
  4. #define __DebugHistory_H__
  5.  
  6. #pragma once
  7.  
  8. #include <CryAction/IDebugHistory.h>
  9.  
  10. //--------------------------------------------------------------------------------
  11.  
  12. extern void Draw2DLine(float x1, float y1, float x2, float y2, ColorF color, float fThickness = 1.f);
  13.  
  14. //--------------------------------------------------------------------------------
  15.  
  16. class CDebugHistory : public IDebugHistory
  17. {
  18. public:
  19.  
  20.         CDebugHistory(const char* name, int size);
  21.         ~CDebugHistory();
  22.  
  23.         virtual void SetName(const char* newName);
  24.  
  25.         virtual void SetVisibility(bool show);
  26.  
  27.         virtual void SetupLayoutAbs(float leftx, float topy, float width, float height, float margin);
  28.         virtual void SetupLayoutRel(float leftx, float topy, float width, float height, float margin);
  29.         virtual void SetupScopeExtent(float outermin, float outermax, float innermin, float innermax);
  30.         virtual void SetupScopeExtent(float outermin, float outermax);
  31.         virtual void SetupColors(ColorF curvenormal, ColorF curveclamped, ColorF box, ColorF gridline, ColorF gridnumber, ColorF name);
  32.         virtual void SetGridlineCount(int nGridlinesX, int nGridlinesY);
  33.  
  34.         virtual void AddValue(float value);
  35.         virtual void ClearHistory();
  36.  
  37.         void         GetMemoryStatistics(ICrySizer* s)       { s->Add(*this); }
  38.         void         GetMemoryUsage(ICrySizer* pSizer) const { /*nothing*/ }
  39.         void         Render();
  40.         bool         IsVisible() const                       { return m_show; }
  41.  
  42.         void         SetDefaultValue(float x)                { m_hasDefaultValue = true; m_defaultValue = x; }
  43.  
  44. private:
  45.  
  46.         CDebugHistory() {};
  47.  
  48.         void UpdateExtent();
  49.         void UpdateGridLines();
  50.  
  51.         const char*        m_szName;
  52.  
  53.         bool               m_show;
  54.  
  55.         Vec2               m_layoutTopLeft;
  56.         Vec2               m_layoutExtent;
  57.         float              m_layoutMargin;
  58.  
  59.         float              m_scopeOuterMax;
  60.         float              m_scopeOuterMin;
  61.         float              m_scopeInnerMax;
  62.         float              m_scopeInnerMin;
  63.         float              m_scopeCurMax;
  64.         float              m_scopeCurMin;
  65.  
  66.         ColorF             m_colorCurveNormal;
  67.         ColorF             m_colorCurveClamped;
  68.         ColorF             m_colorBox;
  69.         ColorF             m_colorGridLine;
  70.         ColorF             m_colorGridNumber;
  71.         ColorF             m_colorName;
  72.  
  73.         int                m_wantedGridLineCountX;
  74.         int                m_wantedGridLineCountY;
  75.         static const uint8 GRIDLINE_MAXCOUNT = 10;
  76.         int                m_gridLineCount;
  77.         float              m_gridLine[GRIDLINE_MAXCOUNT];
  78.  
  79.         float*             m_pValues;
  80.         int                m_maxCount;
  81.         int                m_head;
  82.         int                m_count;
  83.  
  84.         int                m_scopeRefreshDelay;
  85.         int                m_gridRefreshDelay;
  86.  
  87.         bool               m_hasDefaultValue;
  88.         float              m_defaultValue;
  89.         bool               m_gotValue;
  90. };
  91.  
  92. //--------------------------------------------------------------------------------
  93.  
  94. class CDebugHistoryManager : public IDebugHistoryManager
  95. {
  96.  
  97.         typedef string                      MapKey;
  98.         typedef CDebugHistory*              MapValue;
  99.         typedef std::map<MapKey, MapValue>  Map;
  100.         typedef std::pair<MapKey, MapValue> MapEntry;
  101.         typedef Map::iterator               MapIterator;
  102.  
  103. public:
  104.  
  105.         CDebugHistoryManager()
  106.         {
  107.                 Clear();
  108.  
  109.                 if (!m_allhistory)
  110.                         m_allhistory = new std::set<CDebugHistoryManager*>();
  111.                 m_allhistory->insert(this);
  112.         }
  113.  
  114.         ~CDebugHistoryManager()
  115.         {
  116.                 Clear();
  117.  
  118.                 m_allhistory->erase(this);
  119.         }
  120.  
  121.         virtual IDebugHistory* CreateHistory(const char* id, const char* name = 0);
  122.         virtual void           RemoveHistory(const char* id);
  123.  
  124.         virtual IDebugHistory* GetHistory(const char* id);
  125.         virtual void           Clear()
  126.         {
  127.                 MapIterator it = m_histories.begin();
  128.                 while (it != m_histories.end())
  129.                 {
  130.                         CDebugHistory* history = (*it).second;
  131.                         delete history;
  132.  
  133.                         ++it;
  134.                 }
  135.  
  136.                 m_histories.clear();
  137.         }
  138.         virtual void Release();
  139.         virtual void GetMemoryUsage(ICrySizer* s) const;
  140.  
  141.         static void  RenderAll();
  142.         static void  SetupRenderer();
  143.  
  144.         void         LayoutHelper(const char* id, const char* name, bool visible, float minout, float maxout, float minin, float maxin, float x, float y, float w = 1.0f, float h = 1.0f);
  145.  
  146. private:
  147.         void Render(bool bSetupRenderer = false);
  148.  
  149.         Map m_histories;
  150.         static std::set<CDebugHistoryManager*>* m_allhistory;
  151. };
  152.  
  153. //--------------------------------------------------------------------------------
  154.  
  155. #endif // __DebugHistory_H__
  156.  
downloadDebugHistory.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top