00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef GL_PERFORMANCE_MEASURE
00030 #define GL_PERFORMANCE_MEASURE
00031
00032 #include "gltypes.h"
00033 #include "glmap.h"
00034
00035
00036 class GlPerformance
00037 {
00038 public:
00039 GlPerformance( const char* measure );
00040 ~GlPerformance();
00041
00042 static void Dump( FILE* fp );
00043
00044 private:
00045 struct PerfData
00046 {
00047 PerfData() { count = 0; totalTime = 0; }
00048
00049 U32 count;
00050 S64 totalTime;
00051 std::string name;
00052
00053 bool operator<( const PerfData& rhs ) const
00054 {
00055 return ( rhs.totalTime < totalTime );
00056 }
00057
00058 bool operator==( const PerfData& rhs ) const
00059 {
00060 return ( rhs.totalTime == totalTime );
00061 }
00062 };
00063
00064 enum {
00065 MAX_DATA = 30
00066 };
00067 static PerfData map[ MAX_DATA ];
00068 static int numMap;
00069
00070 std::string name;
00071 PerfData* data;
00072 S64 start;
00073 S64 end;
00074 };
00075
00076
00077 #endif