OROCHI
 
Loading...
Searching...
No Matches
GxToolProfiler.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13GX_CORE_NAMESPACE_BEGIN()
14
15#if GX_DEVELOP
16// Gui前方宣言
17class GxGuiSplitter;
18//===========================================================================
20//===========================================================================
21/*
22 Gui配置
23 ┌ GxToolProfiler ━━━━━━━━━━━━━━━━━━┓
24 ┃ ┃
25 ┃┌ GxGuiFormControlPanel─────────────┐┃
26 ┃│ │┃
27 ┃└────────────────────────┘┃
28 ┃ ┃
29 ┣━━━━━━━━━━━━━━━━━━━━━━━━━━┫
30 ┃ ┃
31 ┃┌ GxGuiFormProfilerFunction───────────┐┃
32 ┃│ │┃
33 ┃└────────────────────────┘┃
34 ┃ ┃
35 ┣━━━━━━━━━━━━━━━━━━━━━━━━━━┫
36 ┃ ┃
37 ┃┌ GxGuiFormProfilerTree┰────────────┐┃
38 ┃│ ┃ │┃
39 ┃│┏GxGuiFormWithHead ┓┃┏GxGuiFormWithHead ━┓│┃
40 ┃│┃ ┃┃┃ ┃│┃
41 ┃│┃┌GxGuiTreeHead ┐┃┃┃┌GxGuiDetailHead ┐┃│┃
42 ┃│┃│ │┃┃┃│ │┃│┃
43 ┃│┃└───────┘┃┃┃└────────┘┃│┃
44 ┃│┣━━━━━━━━━┫┃┣━━━━━━━━━━┫│┃
45 ┃│┃┌GxGuiTreeBody ┐┃┃┃┌GxGuiDetailBody ┐┃│┃
46 ┃│┃│ │┃┃┃│ │┃│┃
47 ┃│┃│ │┃┃┃│ │┃│┃
48 ┃│┃└───────┘┃┃┃└────────┘┃│┃
49 ┃│┗━━━━━━━━━┛┃┗━━━━━━━━━━┛│┃
50 ┃└───────────┸────────────┘┃
51 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛
52*/
53class GxToolProfiler : public GxToolBase
54{
55 //-----------------------------------------------------------
57 //-----------------------------------------------------------
59private:
60 class GxGuiFormControlPanel;
61 class GxGuiFormProfilerFunction;
62 class GxGuiFormProfilerTree;
63 class GxToolGraph;
64 class GxGuiFormProfilerUnit;
65
66public:
67 // RTTI定義
68 GX_RTTI_CLASS_NAME_ICON( GxToolProfiler, GxToolBase, "プロファイラ", GxRtti::ICON_TYPE::CORE )
69 // new, delete定義
70 GX_OPERATOR_NEW_DELETE(GxAllocatorList::ALLOCATOR_TYPE::DEVELOP)
71 // ClassBaseReference継承クラス用禁止宣言
72 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxToolProfiler )
73
74
75 enum class ITEM_TYPE
76 {
77 PERCENT_TOTAL = 0,
78 PERCENT_PARENT,
79 TOTAL,
80 COUNT,
81 AVERAGE,
82 MAXIMUM,
83 MINIMUM,
84 MAX,
85 };
86
88 static GX_CSTR ITEM_NAME[static_cast<s32>(ITEM_TYPE::MAX)];
90 static GX_CSTR ITEM_MESSAGE[static_cast<s32>(ITEM_TYPE::MAX)];
91
93 static constexpr u32 BODY_DRAW_WIDTH = 970;
95 static constexpr u32 BODY_DRAW_HEIGHT = 450;
97 static constexpr u32 TREE_DRAW_WIDTH = 180;
99 static constexpr u32 PANEL_DRAW_HEIGHT = 50;
101 static constexpr u32 FUNCTION_DRAW_WIDTH = 210;
103 static constexpr u32 BAR_DRAW_HEIGHT = 16;
105 static constexpr u32 ITEM_DRAW_WIDTH = 80;
107 static constexpr u32 PERCENT_DRAW_WIDTH = 36;
109 static constexpr u32 SPLITTER_WIDTH = 4;
111 static constexpr u32 DETAIL_DRAW_WIDTH = ITEM_DRAW_WIDTH * static_cast<s32>(ITEM_TYPE::MAX);
112
114 class GxFunctionData : public GxClassBase
115 {
116 //-------------------------------------------------------------
118 //-------------------------------------------------------------
120 public:
121 // RTTI定義
122 GX_RTTI_CLASS(GxFunctionData, GxClassBase)
123
124
125 void clear(void)
126 {
127 _averageTime = 0;
128 _totalTime = 0;
129 _minTime = U32_MAX;
130 _maxTime = 0;
131 _percentTotal = 0;
132 _percentParent = 0;
133 _timeCountCount = 0;
134 _name = nullptr;
135 _pLog = nullptr;
136 }
138 void setData(GxProfiler::GxLog* pLog, u32 backBufferIndex);
139
141 //-------------------------------------------------------------
143 //-------------------------------------------------------------
145
146 u32 _averageTime;
147 u32 _totalTime;
148 u32 _minTime;
149 u32 _maxTime;
150 u16 _percentTotal;
151 u16 _percentParent;
152 u16 _timeCountCount;
153 GX_CSTR _name;
154 GxProfiler::GxLog* _pLog;
155
157 };
158
160 //-------------------------------------------------------------
162 //-------------------------------------------------------------
164
166 GxToolProfiler( void );
167
169 void cleanup( void ) override;
170
172 b32 initialize( void ) override;
173
175 //-------------------------------------------------------------
177 //-------------------------------------------------------------
179
181 void addMenuOwnProperty(GxPropertyTable& table ) override;
183 void eventTraceProfile( b32 isCsv );
184
186 static GxGuiBase* createGui(GxProperty& property, GxTypedObject* pOwner, const GxRtti& rtti, u32 index = 0);
187
189 void toggleProfilerActive( void );
190
192 void adjustDataByPrefix(GxProfiler::GxLogData& adjusted);
194 void adjustDataByPrefix(GxFunctionData& adjusted);
195
196protected:
198 void update(void) override;
199
201 void onDoubleClick(const GxPoint2& position, u32 button) override;
202
204 void onViewMaxExpand(void) override;
205
207 void onViewMinExpand(void) override;
208
209private:
211 void adjustDataByPrefixSub(u32& average, u32& total, u32& min, u32& max);
212
214 void traceTree(GxProfiler::GxLog* pLog, const u32 depth, const u32 backBufferIndex, b32 isTraceCsv);
215
217 void traceNode(GxProfiler::GxLog* pLog, const u32 depth, const u32 backBufferIndex, b32 isTraceCsv);
218
220 //-------------------------------------------------------------
222 //-------------------------------------------------------------
224
226 GX_FORCE_INLINE GxArrayClassBase& getArrayFunctionData(void) { return _arrayFunctionData; }
228 void addLogDataToArray(GxProfiler::GxLog* pLog, u32 backBufferIndex);
229
231 constexpr void setSelectItemNumber( s32 num ) { _selectItemNumber = num; }
233 constexpr s32 getSelectItemNumber( void ) const { return _selectItemNumber; }
235 constexpr void setTreeScrollOffsetY( s32 offset ) { _treeScrollOffsetYNew = offset; }
237 constexpr s32 getTreeScrollOffsetY( void ) const { return _treeScrollOffsetY; }
239 constexpr void setSelectedFunctionData( GxFunctionData* pData ) { _pSelectedFunctionData = pData; }
241 constexpr GxMath::PREFIX getPrefix( void ) const { return _prefix; }
243 constexpr GxGuiSplitter* getSplitterMain(void) const { return _pSplitterMain; }
244
246 //-------------------------------------------------------------
248 //-------------------------------------------------------------
250private:
251 GxGuiSplitter* _pSplitterMain;
252 GxGuiFormProfilerFunction* _pProfilerFunction;
253 GxGuiFormProfilerTree* _pProfilerTree;
254 s32 _selectItemNumber;
255 s32 _treeScrollOffsetY;
256 s32 _treeScrollOffsetYNew;
257
258 GxArrayClassBase _arrayFunctionData;
259 u32 _logDataCount;
260 GxFunctionData* _pSelectedFunctionData;
261 s32 _profileFrame;
262 GxMath::PREFIX _prefix;
263
265};
266
267//===========================================================================
269//===========================================================================
270class GxToolProfiler::GxGuiFormControlPanel : public GxGuiForm
271{
272 //-------------------------------------------------------------
274 //-------------------------------------------------------------
276public:
277 // RTTI定義
278 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormControlPanel, GxGuiForm )
279 // ClassBaseReference継承クラス用禁止宣言
280 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiFormControlPanel)
281
282
283 //-------------------------------------------------------------
285 //-------------------------------------------------------------
287
289 GxGuiFormControlPanel( void );
290
292 GxGuiFormControlPanel( GxToolProfiler* pTool );
293
295 b32 initialize( void ) override;
296
298 //-----------------------------------------------------------
300 //-----------------------------------------------------------
302protected:
304 void update( void ) override;
305
307 //-------------------------------------------------------------
309 //-------------------------------------------------------------
311private:
312 GxToolProfiler* _pTool;
313 GxGuiButton* _pButtonPlay;
314
316};
317
318//===========================================================================
320//===========================================================================
321class GxToolProfiler::GxGuiFormProfilerFunction : public GxGuiForm
322{
323 //-------------------------------------------------------------
325 //-------------------------------------------------------------
327public:
328 // RTTI定義
329 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerFunction, GxGuiForm )
330 // ClassBaseReference継承クラス用禁止宣言
331 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiFormProfilerFunction )
332
333
334 //-------------------------------------------------------------
336 //-------------------------------------------------------------
338
340 GxGuiFormProfilerFunction( void );
341
343 GxGuiFormProfilerFunction( GxToolProfiler* pTool );
344
346 b32 initialize( void ) override;
347
349 //-------------------------------------------------------------
351 //-------------------------------------------------------------
353
355 void eventTraceProfile( b32 isCsv );
356
357protected:
359 void update( void ) override;
360
362 void onDoubleClick( const GxPoint2& position, u32 button ) override;
363
365 //-------------------------------------------------------------
367 //-------------------------------------------------------------
369private:
370 GxToolProfiler* _pTool;
371 GxGuiPropertyTable* _pGuiPropertyTable;
372
374};
375
376//===========================================================================
378//===========================================================================
379class GxToolProfiler::GxGuiFormProfilerTree : public GxGuiForm
380{
381 //-----------------------------------------------------------
383 //-----------------------------------------------------------
385public:
386 class GxGuiFormWithHead;
387 class GxGuiTreeHead;
388 class GxGuiTreeBody;
389 class GxGuiDetailHead;
390 class GxGuiDetailBody;
391
392 // RTTI定義
393 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerTree, GxGuiForm )
394 // ClassBaseReference継承クラス用禁止宣言
395 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiFormProfilerTree )
396
397
398 //-------------------------------------------------------------
400 //-------------------------------------------------------------
402
404 GxGuiFormProfilerTree( void );
405
407 GxGuiFormProfilerTree( GxToolProfiler* pTool );
408
410 b32 initialize( void ) override;
411
413 //-----------------------------------------------------------
415 //-----------------------------------------------------------
417
419 void showFunctionData( GxFunctionData* pSearchData );
421 b32 showFunctionDataTree( GxFunctionData* pSearchData, GxProfiler::GxLog* pLog );
423 u32 getNodeIndexFromName( GxFunctionData* pSearchData );
425 b32 getNodeIndexFromNameTree( GxFunctionData* pSearchData, GxProfiler::GxLog* pLog, u32& index );
426
427protected:
429 void update( void ) override;
430
431private:
433 GxGuiFormWithHead* createTreeForm( void );
435 GxGuiFormWithHead* createDetailForm( void );
436
438 //-------------------------------------------------------------
440 //-------------------------------------------------------------
442private:
443 GxToolProfiler* _pTool;
444 GxGuiSplitter* _pSplitter;
445 GxGuiFormWithHead* _pDetail;
446
448};
449
450//===========================================================================
452//===========================================================================
453class GxToolProfiler::GxGuiFormProfilerTree::GxGuiFormWithHead : public GxGuiForm
454{
455 //-------------------------------------------------------------
457 //-------------------------------------------------------------
459public:
460 // RTTI定義
461 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerTree::GxGuiFormWithHead, GxGuiForm )
462 // ClassBaseReference継承クラス用禁止宣言
463 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiFormWithHead )
464
465
466 //-------------------------------------------------------------
468 //-------------------------------------------------------------
470
472 GxGuiFormWithHead( void );
473
475 GxGuiFormWithHead( GxGuiForm* pHead, GxGuiForm* pBody );
476
478 b32 initialize( void ) override;
479
481 //-------------------------------------------------------------
483 //-------------------------------------------------------------
485
487 GxGuiForm* getBody( void ) const { return _pBody; }
488
490 //-----------------------------------------------------------
492 //-----------------------------------------------------------
494protected:
496 void update( void ) override;
497
499 //-------------------------------------------------------------
501 //-------------------------------------------------------------
503private:
504 GxGuiForm* _pHead;
505 GxGuiForm* _pBody;
506 GxGuiSplitter* _pSplitter;
507
509};
510
511//===========================================================================
513//===========================================================================
514class GxToolProfiler::GxGuiFormProfilerTree::GxGuiTreeHead : public GxGuiForm
515{
516 //-------------------------------------------------------------
518 //-------------------------------------------------------------
520public:
521 // RTTI定義
522 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerTree::GxGuiTreeHead, GxGuiForm )
523 // ClassBaseReference継承クラス用禁止宣言
524 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiTreeHead )
525
526
527 //-------------------------------------------------------------
529 //-------------------------------------------------------------
531
533 GxGuiTreeHead( GxToolProfiler* pTool );
534
535private:
537 GxGuiTreeHead( void ) : _pToolBody(nullptr){}
538
540 //-----------------------------------------------------------
542 //-----------------------------------------------------------
544protected:
546 void onDraw( void ) override;
547
549 //-------------------------------------------------------------
551 //-------------------------------------------------------------
553private:
554 GxToolProfiler* _pToolBody;
555
557};
558
559//===========================================================================
561//===========================================================================
562class GxToolProfiler::GxGuiFormProfilerTree::GxGuiTreeBody : public GxGuiForm
563{
564 //-------------------------------------------------------------
566 //-------------------------------------------------------------
568public:
569 // RTTI定義
570 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerTree::GxGuiTreeBody, GxGuiForm )
571 // ClassBaseReference継承クラス用禁止宣言
572 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiTreeBody )
573
574
575 //-------------------------------------------------------------
577 //-------------------------------------------------------------
579
581 GxGuiTreeBody( GxToolProfiler* pTool );
582
583private:
585 GxGuiTreeBody( void ) : _pToolBody(nullptr){}
586
588 //-----------------------------------------------------------
590 //-----------------------------------------------------------
592protected:
594 void update( void ) override;
595
597 void onClick( const GxPoint2& position, u32 button ) override;
598
600 void onDraw( void ) override;
601
603 void onMouseWheel( const GxPoint2& position, s32 rotate ) override;
604
605private:
607 void drawTree( GxProfiler::GxLog* pLog, const u32 depth, GxRect& rect );
608
610 void drawNode( GxProfiler::GxLog* pLog, const u32 depth, GxRect& rect );
611
613 //-------------------------------------------------------------
615 //-------------------------------------------------------------
617private:
618 s32 _itemCount;
619 s32 _clickedIndex;
620 GxToolProfiler* _pToolBody;
621 s32 _drawMin;
622 s32 _drawMax;
623
625};
626
627//===========================================================================
629//===========================================================================
630class GxToolProfiler::GxGuiFormProfilerTree::GxGuiDetailHead : public GxGuiForm
631{
632 //-------------------------------------------------------------
634 //-------------------------------------------------------------
636public:
637 // RTTI定義
638 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerTree::GxGuiDetailHead, GxGuiForm )
639 // ClassBaseReference継承クラス用禁止宣言
640 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiDetailHead )
641
642
643 //-------------------------------------------------------------
645 //-------------------------------------------------------------
647
649 GxGuiDetailHead( GxToolProfiler* pTool );
650
651private:
653 GxGuiDetailHead( void ) : _pToolBody(nullptr){}
654
656 //-----------------------------------------------------------
658 //-----------------------------------------------------------
660protected:
662 void onDraw( void ) override;
663
665 void onMouseHover( const GxPoint2& position ) override;
666
668 //-------------------------------------------------------------
670 //-------------------------------------------------------------
672private:
673 GxToolProfiler* _pToolBody;
674
676};
677
678//===========================================================================
680//===========================================================================
681class GxToolProfiler::GxGuiFormProfilerTree::GxGuiDetailBody : public GxGuiForm
682{
683 //-------------------------------------------------------------
685 //-------------------------------------------------------------
687public:
688 // RTTI定義
689 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerTree::GxGuiDetailBody, GxGuiForm )
690 // ClassBaseReference継承クラス用禁止宣言
691 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiDetailBody )
692
693
694 //-------------------------------------------------------------
696 //-------------------------------------------------------------
698
700 GxGuiDetailBody( GxToolProfiler* pTool );
701
703 b32 initialize( void ) override;
704
705private:
707 GxGuiDetailBody( void ) : _pToolBody(nullptr){}
708
710 //-----------------------------------------------------------
712 //-----------------------------------------------------------
714protected:
716 void update( void ) override;
717
719 void onDraw( void ) override;
720
722 void onClick( const GxPoint2& position, u32 button ) override;
723
725 void onDoubleClick( const GxPoint2& position, u32 button ) override;
726
728 void onKeyDown( GxKeyboard::KEY key ) override;
729
731 void onMouseWheel( const GxPoint2& position, s32 rotate ) override;
732
733private:
735 void drawTree( GxProfiler::GxLog* pLog, const u32 backBufferIndex, GxRect& rect );
736
738 void drawNode( GxProfiler::GxLog* pLog, const u32 backBufferIndex, GxRect& rect );
739
741 void drawNodeSub( const u32 value, const GxColor& color, GxRect& rect );
742
744 void createProfilerGraph( GxProfiler::GxLog* pLog, GxProfiler::GxLog* pTopLog , ITEM_TYPE type );
745
747 void updateArrayDataTree( GxProfiler::GxLog* pLog, const u32 backBufferIndex );
748
750 //-------------------------------------------------------------
752 //-------------------------------------------------------------
754private:
755 s32 _oldScrollOffsetY;
756 s32 _itemCount;
757 s32 _doubleClickedIndex;
758 ITEM_TYPE _doubleClickedType;
759 GxToolProfiler* _pToolBody;
760 s32 _drawMin;
761 s32 _drawMax;
762
764};
765
766//===========================================================================
768//===========================================================================
769class GxToolProfiler::GxToolGraph : public GxGuiForm
770{
771 //-------------------------------------------------------------
773 //-------------------------------------------------------------
775public:
776 // RTTI定義
777 GX_RTTI_CLASS_NAME( GxToolGraph, GxGuiForm, "プロファイラグラフ" )
778 // new, delete定義
779 GX_OPERATOR_NEW_DELETE(GxAllocatorList::ALLOCATOR_TYPE::DEVELOP)
780 // ClassBaseReference継承クラス用禁止宣言
782
784 static constexpr u32 BODY_WIDTH = 220;
786 static constexpr u32 BODY_HEIGHT = 180;
788 static constexpr u32 PROFILE_MAX_COUNT = 2;
789
791 //-------------------------------------------------------------
793 //-------------------------------------------------------------
795
797 GxToolGraph( GxProfiler::GxLog* pLog , GxProfiler::GxLog* pTopLog , GxToolProfiler::ITEM_TYPE type );
798
800 b32 initialize( void ) override;
801
802private:
804 GxToolGraph( void ) : _type(ITEM_TYPE::PERCENT_TOTAL){}
805
807 //-------------------------------------------------------------
809 //-------------------------------------------------------------
811protected:
813 void update(void) override;
814
815private:
817 GxProfiler::GxProfileBase* getProfilerFromLog( void ) const;
819 u32 getValueFromType( const GxProfiler::GxLogData* pLogData ) const;
820
822 //-------------------------------------------------------------
824 //-------------------------------------------------------------
826private:
827 ITEM_TYPE _type;
828 GxProfiler::GxLog* _pLog;
829 GxProfiler::GxLog* _pTopLog;
830 GxGuiGraphTime* _pGraph;
831 GxString _graphTitle;
832 u32 _plot[PROFILE_MAX_COUNT];
833
835};
836
837//===========================================================================
839//===========================================================================
840class GxToolProfiler::GxGuiFormProfilerUnit : public GxGuiForm
841{
842 //-------------------------------------------------------------
844 //-------------------------------------------------------------
846public:
847 // RTTI定義
848 GX_RTTI_CLASS( GxToolProfiler::GxGuiFormProfilerUnit, GxGuiForm )
849 // ClassBaseReference継承クラス用禁止宣言
850 GX_PROHIBIT_CLASS_BASE_REFERENCE( GxGuiFormProfilerUnit )
851
852private:
854 class GxGuiPropertyTableForProfilerUnit : public GxGuiPropertyTable
855 {
856 //-----------------------------------------------------------
858 //-----------------------------------------------------------
860 public:
861 GX_RTTI_CLASS(GxGuiPropertyTableForProfilerUnit, GxGuiPropertyTable)
862 // GxGuiPropertyTable継承クラス用禁止宣言
863 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiPropertyTableForProfilerUnit)
864
865
866 //-----------------------------------------------------------
868 //-----------------------------------------------------------
870
871
872 GxGuiPropertyTableForProfilerUnit(void){}
874 GxGuiPropertyTableForProfilerUnit( const GxProperty& property, GxTypedObject* pObject, u32 index = 0, b32 useFilter = false, TYPE type = TYPE::HORIZON, b32 useIndex = false )
875 : Super( property , pObject,index,useFilter,type,useIndex)
876 {}
877
879 //-----------------------------------------------------------
881 //-----------------------------------------------------------
883
885 void update( void ) override;
886
888 };
889
891 class GxUnitInformation : public GxClassBase
892 {
893 //----------------------------------------------------
895 //----------------------------------------------------
897 public:
898 GX_RTTI_CLASS(GxUnitInformation, GxClassBase)
899
900
901 //--------------------------------------------------------
903 //--------------------------------------------------------
905
907 GxUnitInformation(void){}
909 ~GxUnitInformation(void) override { initialize(); }
911 void initialize(void);
912
914 //--------------------------------------------------------
916 //--------------------------------------------------------
918
919 GxString _name;
920 u32 _instanceCount;
921
922 u32 _totalPreAsyncTime;
923 u32 _totalAsyncTime;
924 u32 _totalPostAsyncTime;
925 u32 _totalSequentialTime;
926 u32 _totalForceAsyncTime;
927
928 u32 _averagePreAsyncTime;
929 u32 _averageAsyncTime;
930 u32 _averagePostAsyncTime;
931 u32 _averageSequentialTime;
932 u32 _averageForceAsyncTime;
933
934 u32 _convertTotalPreAsyncTime;
935 u32 _convertTotalAsyncTime;
936 u32 _convertTotalPostAsyncTime;
937 u32 _convertTotalSequentialTime;
938 u32 _convertTotalForceAsyncTime;
939
940 u32 _convertAveragePreAsyncTime;
941 u32 _convertAverageAsyncTime;
942 u32 _convertAveragePostAsyncTime;
943 u32 _convertAverageSequentialTime;
944 u32 _convertAverageForceAsyncTime;
945
947 };
948
950 //-------------------------------------------------------------
952 //-------------------------------------------------------------
954public:
956 GxGuiFormProfilerUnit( void );
957
959 GxGuiFormProfilerUnit( GxToolProfiler* pTool );
960
962 void cleanup( void ) override;
963
965 b32 initialize( void ) override;
966
968 //-----------------------------------------------------------
970 //-----------------------------------------------------------
972protected:
974 void update( void ) override;
975
976private:
978 GxUnitInformation* getUnitInformation(GxUnitBase* pUnitBase);
980 b32 checkEnableInformation(GxUnitInformation* pUnitInfo);
981
983 //-------------------------------------------------------------
985 //-------------------------------------------------------------
987private:
988 GxToolProfiler* _pTool;
989 GxGuiPropertyTable* _pGuiPropertyTable;
990 GxArrayClassBase _unitInfoArray;
991
993};
994#endif // GX_DEVELOP
995
996GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
@ MAX
定義数
void GxTypedObject
その他
Definition GxDefine.h:213
メモリアロケータリスト
Definition GxAllocator.h:347
配列クラス
Definition GxArrayClassBase.h:18
オブジェクト基底クラス
Definition GxBase.h:88
PREFIX
単位接頭辞の定義
Definition GxMath.h:96
プロパティクラス
Definition GxProperty.h:48
プロパティテーブルクラス
Definition GxProperty.h:1641
実行時型情報クラス
Definition GxRtti.h:154
ユニット基礎クラス
Definition GxUnitBase.h:45
Definition GxColor.h:21
座標
Definition GxStruct.h:867
矩形
Definition GxStruct.h:951
文字列型クラス
Definition GxString.h:18
32bitブーリアン
Definition GxDefine.h:173