]> git.tdb.fi Git - gldbg.git/blobdiff - flavors/gl/source/profiler.h
Move the profiler and inspector tools to the gl flavor
[gldbg.git] / flavors / gl / source / profiler.h
diff --git a/flavors/gl/source/profiler.h b/flavors/gl/source/profiler.h
new file mode 100644 (file)
index 0000000..4d5c5a8
--- /dev/null
@@ -0,0 +1,39 @@
+/* $Id$
+
+This file is part of gldbg
+Copyright © 2010  Mikko Rasa, Mikkosoft Productions
+Distributed under the GPL
+*/
+
+#ifndef PROFILER_H_
+#define PROFILER_H_
+
+#include <msp/time/timestamp.h>
+#include "gldecoder.h"
+#include "tool.h"
+
+class Profiler: public RegisteredTool<Profiler>
+{
+private:
+       GlDecoder *decoder;
+       bool enabled;
+       Msp::Time::TimeStamp start;
+       unsigned frames;
+       unsigned draw_calls;
+       unsigned vertices;
+       unsigned triangles;
+
+public:
+       Profiler(GlDbg &);
+
+       virtual void decode(const char *, unsigned);
+private:
+       void cmd_profile(const std::string &);
+
+       static void glDrawArrays(void *, GLenum, int, int);
+       static void glDrawElements(void *, GLenum, int, GLenum, const void *);
+       static void glDrawRangeElements(void *, GLenum, unsigned, unsigned, int, GLenum, const void *);
+       static void glXSwapBuffers(void *, Display *, GLXDrawable);
+};
+
+#endif