delete context;
}
+static void retrace_glXCopySubBufferMESA(trace::Call &call) {
+ glws::Drawable *drawable = getDrawable(call.arg(1).toUInt());
+ int x = call.arg(2).toSInt();
+ int y = call.arg(3).toSInt();
+ int width = call.arg(4).toSInt();
+ int height = call.arg(5).toSInt();
+
+ drawable->copySubBuffer(x, y, width, height);
+}
+
static void retrace_glXSwapBuffers(trace::Call &call) {
glws::Drawable *drawable = getDrawable(call.arg(1).toUInt());
{"glXChooseVisual", &retrace::ignore},
//{"glXCopyContext", &retrace_glXCopyContext},
//{"glXCopyImageSubDataNV", &retrace_glXCopyImageSubDataNV},
- //{"glXCopySubBufferMESA", &retrace_glXCopySubBufferMESA},
+ {"glXCopySubBufferMESA", &retrace_glXCopySubBufferMESA},
{"glXCreateContextAttribsARB", &retrace_glXCreateContextAttribsARB},
{"glXCreateContext", &retrace_glXCreateContext},
//{"glXCreateContextWithConfigSGIX", &retrace_glXCreateContextWithConfigSGIX},
Drawable::show();
}
+ void copySubBuffer(int x, int y, int width, int height) {
+ printf("glws_egl_xlib:copySubBuffer: Not yet implemented\n");
+ exit(1);
+ }
+
void swapBuffers(void) {
eglBindAPI(api);
eglSwapBuffers(eglDisplay, surface);
Drawable::show();
}
+ void copySubBuffer(int x, int y, int width, int height) {
+ glXCopySubBufferMESA(display, window, x, y, width, height);
+
+ processKeys();
+ }
+
void swapBuffers(void) {
glXSwapBuffers(display, window);