From f74ad0d7b108d0b628e2290a4b6c597e9a13ee8e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Wed, 24 Oct 2012 16:42:22 +0100 Subject: [PATCH] Fix current context tracking. --- retrace/glretrace_main.cpp | 8 ++++++-- retrace/glretrace_ws.cpp | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/retrace/glretrace_main.cpp b/retrace/glretrace_main.cpp index bd5378a..5ccb2e2 100755 --- a/retrace/glretrace_main.cpp +++ b/retrace/glretrace_main.cpp @@ -319,6 +319,7 @@ frame_complete(trace::Call &call) { return; } + assert(currentContext->drawable); if (retrace::debug && !currentContext->drawable->visible) { retrace::warning(call) << "could not infer drawable size (glViewport never called)\n"; } @@ -434,8 +435,11 @@ retrace::dumpState(std::ostream &os) void retrace::flushRendering(void) { - glretrace::flushQueries(); - glFlush(); + glretrace::Context *currentContext = glretrace::getCurrentContext(); + if (currentContext) { + glretrace::flushQueries(); + glFlush(); + } } void diff --git a/retrace/glretrace_ws.cpp b/retrace/glretrace_ws.cpp index d4b0817..5ae908f 100644 --- a/retrace/glretrace_ws.cpp +++ b/retrace/glretrace_ws.cpp @@ -156,10 +156,10 @@ makeCurrent(trace::Call &call, glws::Drawable *drawable, Context *context) if (currentContext) { currentContext->drawable = NULL; } + currentContextPtr = context; if (drawable && context) { context->drawable = drawable; - currentContextPtr = context; if (!context->used) { initContext(); -- 2.43.0