我做了一个
GL
上下文
freeglut
这样地:
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_STENCIL);
和一场平局
cairo
这样地:
if (!device_)
{
device_ = cairo_glx_device_create(glXGetCurrentDisplay(),
glXGetCurrentContext());
}
// else do nothing
auto const surface(cairo_gl_surface_create_for_window(device_,
glXGetCurrentDrawable(), width, height));
auto const cr(cairo_create(surface));
// draw using cairo calls
cairo_destroy(cr);
cairo_gl_surface_swapbuffers(surface); // !!!
cairo_surface_destroy(surface);
如果我不打电话
cairo_gl_surface_swapbuffers()
,但打电话
glutSwapBuffers()
,未显示任何内容,但存在错误:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 156 (GLX)
Minor opcode of failed request: 11 (X_GLXSwapBuffers)
Serial number of failed request: 69
Current serial number in output stream: 72
但是,如果我打电话
cairo_gl_surface_swapbuffers()
,但不要打电话
glutSwapBuffers()
,图纸将显示,不会有错误。我怎么打电话
glutSwapBuffers()
不
cairo_gl_surface_swapbuffers()
而不触发错误?我想混合其他内容
开罗
所容纳之物