X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fglretrace_wgl.cpp;h=abcf068a057056f88bdefbe1d8c002bd2e9e0459;hb=940cdb8b143455fe2fc002ffd50f5e2ffcaf1260;hp=639f419218dd5f5bd41a34ccf1d1065af76b0234;hpb=5ed4ca62e0b1236ff45e608d6b531a2181c6afbb;p=apitrace diff --git a/retrace/glretrace_wgl.cpp b/retrace/glretrace_wgl.cpp index 639f419..abcf068 100644 --- a/retrace/glretrace_wgl.cpp +++ b/retrace/glretrace_wgl.cpp @@ -100,8 +100,11 @@ static void retrace_wglSwapBuffers(trace::Call &call) { if (retrace::doubleBuffer) { if (drawable) { drawable->swapBuffers(); - } else if (currentContext) { - currentContext->drawable->swapBuffers(); + } else { + glretrace::Context *currentContext = glretrace::getCurrentContext(); + if (currentContext) { + currentContext->drawable->swapBuffers(); + } } } else { glFlush(); @@ -117,6 +120,7 @@ static void retrace_wglShareLists(trace::Call &call) { Context *new_context = glretrace::createContext(share_context); if (new_context) { + glretrace::Context *currentContext = glretrace::getCurrentContext(); if (currentContext == old_context) { glretrace::makeCurrent(call, currentContext->drawable, new_context); } @@ -182,10 +186,7 @@ static void retrace_wglCreatePbufferARB(trace::Call &call) { int iHeight = call.arg(3).toUInt(); unsigned long long orig_pbuffer = call.ret->toUIntPtr(); - glws::Drawable *drawable = glretrace::createDrawable(); - - drawable->resize(iWidth, iHeight); - drawable->show(); + glws::Drawable *drawable = glretrace::createPbuffer(iWidth, iHeight); pbuffer_map[orig_pbuffer] = drawable; }