]> git.tdb.fi Git - gldbg.git/blob - flavors/gl/source/profiler.h
547bd3514004f01b8ff540391ae62fbc24232954
[gldbg.git] / flavors / gl / source / profiler.h
1 /* $Id$
2
3 This file is part of gldbg
4 Copyright © 2011  Mikko Rasa, Mikkosoft Productions
5 Distributed under the GPL
6 */
7
8 #ifndef PROFILER_H_
9 #define PROFILER_H_
10
11 #include "gldecoder.h"
12 #include "tool.h"
13
14 class Profiler: public RegisteredTool<Profiler>
15 {
16 private:
17         typedef unsigned Time;
18
19         GlDecoder *decoder;
20         bool enabled;
21         Time start;
22         unsigned frames;
23         unsigned draw_calls;
24         unsigned vertices;
25         unsigned triangles;
26
27 public:
28         Profiler(GlDbg &);
29
30         virtual void decode(const char *, unsigned);
31 private:
32         void cmd_profile(const std::string &);
33
34         static void glDrawArrays(void *, GLenum, int, int);
35         static void glDrawElements(void *, GLenum, int, GLenum, const void *);
36         static void glDrawRangeElements(void *, GLenum, unsigned, unsigned, int, GLenum, const void *);
37         static void glXSwapBuffers(void *, Display *, GLXDrawable);
38
39         static Time get_time();
40 };
41
42 #endif