X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fglretrace_glx.cpp;h=3179c1ea7ff34d779635fdcb86d3b1c25dc58979;hb=8cf630712592eea93b1a1988a0875fe293e6aea8;hp=918940f06d5e27c4a6e196279a119dc0fe41304f;hpb=958d980c85810ed01ad45f8c2af924368dde20f4;p=apitrace diff --git a/retrace/glretrace_glx.cpp b/retrace/glretrace_glx.cpp index 918940f..3179c1e 100644 --- a/retrace/glretrace_glx.cpp +++ b/retrace/glretrace_glx.cpp @@ -112,9 +112,13 @@ static void retrace_glXDestroyContext(trace::Call &call) { } static void retrace_glXSwapBuffers(trace::Call &call) { + glws::Drawable *drawable = getDrawable(call.arg(1).toUInt()); + frame_complete(call); if (retrace::doubleBuffer) { - currentDrawable->swapBuffers(); + if (drawable) { + drawable->swapBuffers(); + } } else { glFlush(); } @@ -129,17 +133,14 @@ static void retrace_glXCreateNewContext(trace::Call &call) { } static void retrace_glXCreatePbuffer(trace::Call &call) { - const trace::Value *attrib_list = dynamic_cast(&call.arg(2)); + const trace::Value *attrib_list = call.arg(2).toArray(); int width = glretrace::parseAttrib(attrib_list, GLX_PBUFFER_WIDTH, 0); int height = glretrace::parseAttrib(attrib_list, GLX_PBUFFER_HEIGHT, 0); unsigned long long orig_drawable = call.ret->toUInt(); - glws::Drawable *drawable = glretrace::createDrawable(); + glws::Drawable *drawable = glretrace::createPbuffer(width, height); - drawable->resize(width, height); - drawable->show(); - drawable_map[orig_drawable] = drawable; } @@ -164,7 +165,7 @@ const retrace::Entry glretrace::glx_callbacks[] = { //{"glXBindChannelToWindowSGIX", &retrace_glXBindChannelToWindowSGIX}, //{"glXBindSwapBarrierNV", &retrace_glXBindSwapBarrierNV}, //{"glXBindSwapBarrierSGIX", &retrace_glXBindSwapBarrierSGIX}, - //{"glXBindTexImageEXT", &retrace_glXBindTexImageEXT}, + {"glXBindTexImageEXT", &retrace::ignore}, //{"glXChannelRectSGIX", &retrace_glXChannelRectSGIX}, //{"glXChannelRectSyncSGIX", &retrace_glXChannelRectSyncSGIX}, {"glXChooseFBConfig", &retrace::ignore}, @@ -181,14 +182,14 @@ const retrace::Entry glretrace::glx_callbacks[] = { //{"glXCreateGLXPixmapWithConfigSGIX", &retrace_glXCreateGLXPixmapWithConfigSGIX}, {"glXCreateNewContext", &retrace_glXCreateNewContext}, {"glXCreatePbuffer", &retrace_glXCreatePbuffer}, - //{"glXCreatePixmap", &retrace_glXCreatePixmap}, + {"glXCreatePixmap", &retrace::ignore}, //{"glXCreateWindow", &retrace_glXCreateWindow}, //{"glXCushionSGI", &retrace_glXCushionSGI}, {"glXDestroyContext", &retrace_glXDestroyContext}, //{"glXDestroyGLXPbufferSGIX", &retrace_glXDestroyGLXPbufferSGIX}, //{"glXDestroyGLXPixmap", &retrace_glXDestroyGLXPixmap}, {"glXDestroyPbuffer", &retrace_glXDestroyPbuffer}, - //{"glXDestroyPixmap", &retrace_glXDestroyPixmap}, + {"glXDestroyPixmap", &retrace::ignore}, //{"glXDestroyWindow", &retrace_glXDestroyWindow}, //{"glXFreeContextEXT", &retrace_glXFreeContextEXT}, {"glXGetAGPOffsetMESA", &retrace::ignore}, @@ -237,7 +238,7 @@ const retrace::Entry glretrace::glx_callbacks[] = { {"glXQuerySwapGroupNV", &retrace::ignore}, {"glXQueryVersion", &retrace::ignore}, //{"glXReleaseBuffersMESA", &retrace_glXReleaseBuffersMESA}, - //{"glXReleaseTexImageEXT", &retrace_glXReleaseTexImageEXT}, + {"glXReleaseTexImageEXT", &retrace::ignore}, //{"glXResetFrameCountNV", &retrace_glXResetFrameCountNV}, //{"glXSelectEvent", &retrace_glXSelectEvent}, //{"glXSelectEventSGIX", &retrace_glXSelectEventSGIX},