From: José Fonseca Date: Fri, 6 May 2011 19:42:49 +0000 (+0100) Subject: Retrace glXCreateNewContext & glXMakeContextCurrent. X-Git-Tag: 2.0_alpha^2~949 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2d26b21866790b89e8528f8c5924802865e3fb16;p=tools%2Fapitrace.git Retrace glXCreateNewContext & glXMakeContextCurrent. --- diff --git a/glretrace_glx.cpp b/glretrace_glx.cpp index 682995e..74022e7 100644 --- a/glretrace_glx.cpp +++ b/glretrace_glx.cpp @@ -169,9 +169,29 @@ static void retrace_glXQueryDrawable(Trace::Call &call) { } static void retrace_glXCreateNewContext(Trace::Call &call) { + retrace_glXCreateContext(call); } static void retrace_glXMakeContextCurrent(Trace::Call &call) { + if (drawable && context) { + glFlush(); + if (!double_buffer) { + frame_complete(call.no); + } + } + + glws::Drawable *new_drawable = getDrawable(static_cast(call.arg(1))); + glws::Context *new_context = context_map[call.arg(3).toPointer()]; + + bool result = ws->makeCurrent(new_drawable, new_context); + + if (new_drawable && new_context && result) { + drawable = new_drawable; + context = new_context; + } else { + drawable = NULL; + context = NULL; + } } static void retrace_glXGetCurrentReadDrawable(Trace::Call &call) {