]> git.tdb.fi Git - gldbg.git/blob - source/profiler.h
Add a performance profiler
[gldbg.git] / source / profiler.h
1 #ifndef PROFILER_H_
2 #define PROFILER_H_
3
4 #include <msp/time/timestamp.h>
5 #include "gldecoder.h"
6
7 class Profiler
8 {
9 private:
10         GlDecoder *decoder;
11         bool enabled;
12         Msp::Time::TimeStamp start;
13         unsigned frames;
14         unsigned draw_calls;
15         unsigned vertices;
16         unsigned triangles;
17
18 public:
19         Profiler();
20
21         void enable();
22         void disable();
23         int decode(const char *, unsigned);
24 private:
25         static void glDrawArrays(void *, GLenum, int, int);
26         static void glDrawElements(void *, GLenum, int, GLenum, const void *);
27         static void glDrawRangeElements(void *, GLenum, unsigned, unsigned, int, GLenum, const void *);
28         static void glXSwapBuffers(void *, Display *, GLXDrawable);
29 };
30
31 #endif