From 2d26b21866790b89e8528f8c5924802865e3fb16 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 6 May 2011 20:42:49 +0100 Subject: [PATCH] Retrace glXCreateNewContext & glXMakeContextCurrent. --- glretrace_glx.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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) { -- 2.45.2