}
}
+
+static void retrace_glXDestroyContext(Trace::Call &call) {
+ glws::Context *context = getContext(call.arg(1).toUIntPtr());
+
+ if (!context) {
+ return;
+ }
+
+ delete context;
+}
+
static void retrace_glXSwapBuffers(Trace::Call &call) {
frame_complete(call.no);
if (double_buffer) {
}
}
-static const retrace::Entry callbacks[] = {
+const retrace::Entry glretrace::glx_callbacks[] = {
//{"glXBindChannelToWindowSGIX", &retrace_glXBindChannelToWindowSGIX},
//{"glXBindSwapBarrierNV", &retrace_glXBindSwapBarrierNV},
//{"glXBindSwapBarrierSGIX", &retrace_glXBindSwapBarrierSGIX},
//{"glXCreatePixmap", &retrace_glXCreatePixmap},
//{"glXCreateWindow", &retrace_glXCreateWindow},
//{"glXCushionSGI", &retrace_glXCushionSGI},
- //{"glXDestroyContext", &retrace_glXDestroyContext},
+ {"glXDestroyContext", &retrace_glXDestroyContext},
//{"glXDestroyGLXPbufferSGIX", &retrace_glXDestroyGLXPbufferSGIX},
//{"glXDestroyGLXPixmap", &retrace_glXDestroyGLXPixmap},
//{"glXDestroyPbuffer", &retrace_glXDestroyPbuffer},
{"glXWaitGL", &retrace::ignore},
{"glXWaitVideoSyncSGI", &retrace::ignore},
{"glXWaitX", &retrace::ignore},
+ {NULL, NULL},
};
-void glretrace::retrace_call_glx(Trace::Call &call) {
- retrace::dispatch(call, callbacks, sizeof(callbacks)/sizeof(callbacks[0]));
-}
-