DrawableMap::const_iterator it;
it = drawable_map.find(drawable_id);
if (it == drawable_map.end()) {
- return (drawable_map[drawable_id] = ws->createDrawable(visual));
+ return (drawable_map[drawable_id] = glws::createDrawable(visual));
}
return it->second;
ContextMap::const_iterator it;
it = context_map.find(context_ptr);
if (it == context_map.end()) {
- return (context_map[context_ptr] = ws->createContext(visual, NULL));
+ return (context_map[context_ptr] = glws::createContext(visual, NULL));
}
return it->second;
}
-static void retrace_glXCreateContext(Trace::Call &call) {
+static void retrace_glXCreateContext(trace::Call &call) {
unsigned long long orig_context = call.ret->toUIntPtr();
glws::Context *share_context = getContext(call.arg(2).toUIntPtr());
- glws::Context *context = ws->createContext(glretrace::visual, share_context);
+ glws::Context *context = glws::createContext(glretrace::visual, share_context);
context_map[orig_context] = context;
}
-static void retrace_glXCreateContextAttribsARB(Trace::Call &call) {
+static void retrace_glXCreateContextAttribsARB(trace::Call &call) {
unsigned long long orig_context = call.ret->toUIntPtr();
glws::Context *share_context = getContext(call.arg(2).toUIntPtr());
- glws::Context *context = ws->createContext(glretrace::visual, share_context);
+ glws::Context *context = glws::createContext(glretrace::visual, share_context);
context_map[orig_context] = context;
}
-static void retrace_glXMakeCurrent(Trace::Call &call) {
+static void retrace_glXMakeCurrent(trace::Call &call) {
glws::Drawable *new_drawable = getDrawable(call.arg(1).toUInt());
glws::Context *new_context = getContext(call.arg(2).toUIntPtr());
if (drawable && context) {
glFlush();
if (!double_buffer) {
- frame_complete(call.no);
+ frame_complete(call);
}
}
- bool result = ws->makeCurrent(new_drawable, new_context);
+ bool result = glws::makeCurrent(new_drawable, new_context);
if (new_drawable && new_context && result) {
drawable = new_drawable;
}
-static void retrace_glXDestroyContext(Trace::Call &call) {
+static void retrace_glXDestroyContext(trace::Call &call) {
glws::Context *context = getContext(call.arg(1).toUIntPtr());
if (!context) {
delete context;
}
-static void retrace_glXSwapBuffers(Trace::Call &call) {
- frame_complete(call.no);
+static void retrace_glXSwapBuffers(trace::Call &call) {
+ frame_complete(call);
if (double_buffer) {
drawable->swapBuffers();
} else {
}
}
-static void retrace_glXCreateNewContext(Trace::Call &call) {
+static void retrace_glXCreateNewContext(trace::Call &call) {
unsigned long long orig_context = call.ret->toUIntPtr();
glws::Context *share_context = getContext(call.arg(3).toUIntPtr());
- glws::Context *context = ws->createContext(glretrace::visual, share_context);
+ glws::Context *context = glws::createContext(glretrace::visual, share_context);
context_map[orig_context] = context;
}
-static void retrace_glXMakeContextCurrent(Trace::Call &call) {
+static void retrace_glXMakeContextCurrent(trace::Call &call) {
glws::Drawable *new_drawable = getDrawable(call.arg(1).toUInt());
glws::Context *new_context = getContext(call.arg(3).toUIntPtr());
if (drawable && context) {
glFlush();
if (!double_buffer) {
- frame_complete(call.no);
+ frame_complete(call);
}
}
- bool result = ws->makeCurrent(new_drawable, new_context);
+ bool result = glws::makeCurrent(new_drawable, new_context);
if (new_drawable && new_context && result) {
drawable = new_drawable;
}
}
-static const retrace::Entry callbacks[] = {
+const retrace::Entry glretrace::glx_callbacks[] = {
//{"glXBindChannelToWindowSGIX", &retrace_glXBindChannelToWindowSGIX},
//{"glXBindSwapBarrierNV", &retrace_glXBindSwapBarrierNV},
//{"glXBindSwapBarrierSGIX", &retrace_glXBindSwapBarrierSGIX},
{"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]));
-}
-