X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fglretrace_ws.cpp;h=03e1fc1db7655ecf4b66e170d6d6caf539b1966a;hb=bad1fde2495d16e6a1f90571c317836300840dd5;hp=d4b0817bfdf0b1852a619a81e41926eadfb73023;hpb=39a9f3650233206061134772417bfada16cd07be;p=apitrace diff --git a/retrace/glretrace_ws.cpp b/retrace/glretrace_ws.cpp index d4b0817..03e1fc1 100644 --- a/retrace/glretrace_ws.cpp +++ b/retrace/glretrace_ws.cpp @@ -122,6 +122,15 @@ createContext(Context *shareContext) { } +Context::~Context() +{ + //assert(this != getCurrentContext()); + if (this != getCurrentContext()) { + delete wsContext; + } +} + + static thread_specific Context * currentContextPtr; @@ -153,13 +162,10 @@ makeCurrent(trace::Call &call, glws::Drawable *drawable, Context *context) return false; } - if (currentContext) { - currentContext->drawable = NULL; - } + currentContextPtr = context; if (drawable && context) { context->drawable = drawable; - currentContextPtr = context; if (!context->used) { initContext(); @@ -243,5 +249,65 @@ parseAttrib(const trace::Value *attribs, int param, int default_ = 0) { return default_; } +void +createWindow(glws::Drawable *window) +{ + glws::Visual *visual = getVisual(getDefaultProfile()); + + glws::createWindow(window, visual); +} + +void +destroyWindow(glws::Drawable *window) +{ + glws::destroyWindow(window); +} + +glws::Drawable * +createPixmap(unsigned width, unsigned height, unsigned depth) +{ + return glws::createPixmap(width, height, depth); +} + +glws::Drawable * +createGLPixmap(GLXFBConfig fbconfig, glws::Drawable *pixmap, + unsigned width, unsigned height, int *attrib_list) +{ + return glws::createGLPixmap(fbconfig, pixmap, width, height, attrib_list); +} + +void +bindTexImage(glws::Drawable *pixmap, int buffer) +{ + glws::bindTexImage(pixmap, buffer); +} + +void +releaseTexImage(glws::Drawable *pixmap, int buffer) +{ + glws::releaseTexImage(pixmap, buffer); +} + +void +copySubBuffer(glws::Drawable *drawable, int x, int y, int width, int height) +{ + glws::copySubBuffer(drawable, x, y, width, height); +} + +void +putImageData(glws::Drawable *drawable, char *data, + int width, int height, int depth, + int bits_per_pixel, int bytes_per_line, int byte_order) +{ + glws::putImageData(drawable, data, width, height, depth, + bits_per_pixel, bytes_per_line, byte_order); +} + +GLXFBConfig +chooseConfig(int *attrib_list) +{ + return glws::chooseConfig(attrib_list); +} + } /* namespace glretrace */