GLX上下文帧缓冲读取

时间:2016-06-16 13:04:11

标签: c++ opengl x11 glx

我试图从GLX上下文中读取像素。这就是我如何创建上下文

int Attributes[] =
{
  GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
  GLX_RENDER_TYPE,   GLX_RGBA_BIT,
  GLX_DOUBLEBUFFER,  GL_TRUE,
  GLX_RED_SIZE,      8,
  GLX_GREEN_SIZE,    8,
  GLX_BLUE_SIZE,     8,
  None
};

visual = glXChooseVisual(display,
                               DefaultScreen(display), 
                                   Attributes);


if (visual == NULL)
{
  return -1;
}

glxContext = glXCreateContext(display, visual, NULL, GL_TRUE);


XLockDisplay(displayGLX_);

int result = glXMakeCurrent(display, windowHandle, glxContext);

XInitThreads();

然后我渲染简单的三角形,我想通过glReadPixels读取缓冲区。有没有可能做到这一点?

glReadBuffer(GL_BACK);

glXSwapBuffers(display, windowHandle);

然后我打电话

glReadPixels

1 个答案:

答案 0 :(得分:3)

不要交换1st,你从BACK缓冲区读取,所以在交换之前glReadPixels ...