statistic.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQ_STATISTIC_H
00019 #define EQ_STATISTIC_H
00020
00021 #include <eq/client/types.h>
00022 #include <eq/base/base.h>
00023
00024 #include <iostream>
00025
00026 namespace eq
00027 {
00029 struct Statistic
00030 {
00031 enum Type
00032 {
00033 NONE = 0,
00034 CHANNEL_CLEAR,
00035 CHANNEL_DRAW,
00036 CHANNEL_DRAW_FINISH,
00037 CHANNEL_ASSEMBLE,
00038 CHANNEL_WAIT_FRAME,
00039 CHANNEL_READBACK,
00040 WINDOW_FINISH,
00041 WINDOW_THROTTLE_FRAMERATE,
00042 WINDOW_SWAP_BARRIER,
00043 WINDOW_SWAP,
00044 PIPE_IDLE,
00045 FRAME_TRANSMIT,
00046 FRAME_COMPRESS,
00047 FRAME_RECEIVE,
00048 CONFIG_START_FRAME,
00049 CONFIG_FINISH_FRAME,
00050 CONFIG_WAIT_FINISH_FRAME,
00051 ALL
00052 };
00053
00054 Type type;
00055 uint32_t frameNumber;
00056 uint32_t task;
00057 union
00058 {
00059 int64_t startTime;
00060 int64_t idleTime;
00061 };
00062 union
00063 {
00064 int64_t endTime;
00065 int64_t totalTime;
00066 };
00067 float ratio;
00068 char resourceName[32];
00069
00070 static const std::string& getName( const Type type );
00071 static const Vector3f& getColor( const Type type );
00072 };
00073
00074 EQ_EXPORT std::ostream& operator << ( std::ostream&, const Statistic& );
00075 }
00076
00077 #endif // EQ_STATISTIC_H
00078