typedef void (*BindEXTFunc)(Display *, GLXDrawable, int, const int *);
typedef void (*ReleaseEXTFunc)(Display *, GLXDrawable, int);
+typedef int (*SwapIntervalSGIFunc)(int);
typedef struct {
void (*screen_paint)(d_screen_t *sc);
d->release_func = (ReleaseEXTFunc)
glXGetProcAddress((const guchar*)"glXReleaseTexImageEXT");
+ SwapIntervalSGIFunc swap_interval_func = (SwapIntervalSGIFunc)
+ glXGetProcAddress((const guchar*)"glXSwapIntervalSGI");
+ if(swap_interval_func)
+ swap_interval_func(1);
+
glGenTextures(1, &d->root_texname);
d->root_glpixmap = XCB_NONE;
}
d->window_reshape(w);
assert(wd != NULL);
- glxrender_free_window_pixmap(w, d, wd);
+ //glxrender_free_window_pixmap(w, d, wd);
glxrender_fetch_window_region(w, wd);
}
wd = window_find_plugin_data(w, plugin_id);
- //glPushMatrix();
-
/* black shadow */
alpha = d->shadowalpha;
alpha *= opac;
paint_window(w, d, wd, x, y, z + 0.05f);
}
- //glPopMatrix();
-
z += 0.1f;
}
}
glXSwapBuffers(sc->dpy->xlib_dpy, sc->overlay);
+ glFinish();
+
/* call the function we replaced in the chain */
d->screen_paint(sc);
}