X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fglretrace_main.cpp;h=1418ca3d0fcc9bd54326263af35763136dd656c8;hb=3db54523afd7c8daa0812c12119717be1e667021;hp=5ccb2e2d2a2955f6b83a03da4508cfbd8ad5d57c;hpb=e6bde441dbb59572b0c7b27cf2d799c51317668b;p=apitrace diff --git a/retrace/glretrace_main.cpp b/retrace/glretrace_main.cpp index 5ccb2e2..1418ca3 100755 --- a/retrace/glretrace_main.cpp +++ b/retrace/glretrace_main.cpp @@ -391,9 +391,35 @@ debugOutputCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsi } /* namespace glretrace */ +class GLDumper : public retrace::Dumper { +public: + image::Image * + getSnapshot(void) { + if (!glretrace::getCurrentContext()) { + return NULL; + } + return glstate::getDrawBufferImage(); + } + + bool + dumpState(std::ostream &os) { + glretrace::Context *currentContext = glretrace::getCurrentContext(); + if (glretrace::insideGlBeginEnd || + !currentContext) { + return false; + } + glstate::dumpCurrentContext(os); + return true; + } +}; + +static GLDumper glDumper; + + void retrace::setUp(void) { glws::init(); + dumper = &glDumper; } @@ -408,31 +434,6 @@ retrace::addCallbacks(retrace::Retracer &retracer) } -image::Image * -retrace::getSnapshot(void) { - if (!glretrace::getCurrentContext()) { - return NULL; - } - - return glstate::getDrawBufferImage(); -} - - -bool -retrace::dumpState(std::ostream &os) -{ - glretrace::Context *currentContext = glretrace::getCurrentContext(); - - if (glretrace::insideGlBeginEnd || - !currentContext) { - return false; - } - - glstate::dumpCurrentContext(os); - - return true; -} - void retrace::flushRendering(void) { glretrace::Context *currentContext = glretrace::getCurrentContext();