#ifndef _GLRETRACE_HPP_
#define _GLRETRACE_HPP_
-#include <ostream>
-
#include "trace_parser.hpp"
#include "glws.hpp"
+#include "retrace.hpp"
namespace glretrace {
extern bool double_buffer;
extern bool insideGlBeginEnd;
-extern Trace::Parser parser;
-extern glws::WindowSystem *ws;
+extern trace::Parser parser;
extern glws::Visual *visual;
extern glws::Drawable *drawable;
extern glws::Context *context;
-extern int window_width;
-extern int window_height;
-
extern unsigned frame;
extern long long startTime;
extern bool wait;
+enum frequency {
+ FREQUENCY_NEVER = 0,
+ FREQUENCY_FRAME,
+ FREQUENCY_FRAMEBUFFER,
+ FREQUENCY_DRAW,
+};
+
extern bool benchmark;
extern const char *compare_prefix;
extern const char *snapshot_prefix;
+extern enum frequency snapshot_frequency;
extern unsigned dump_state;
void
-checkGlError(int callIdx = -1);
+checkGlError(trace::Call &call);
+
+extern const retrace::Entry gl_callbacks[];
+extern const retrace::Entry cgl_callbacks[];
+extern const retrace::Entry glx_callbacks[];
+extern const retrace::Entry wgl_callbacks[];
+extern const retrace::Entry egl_callbacks[];
-void state_dump(std::ostream &os);
+void snapshot(unsigned call_no);
+void frame_complete(trace::Call &call);
+void updateDrawable(int width, int height);
} /* namespace glretrace */