2

我正在尝试从 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
4

1 回答 1

3

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

于 2016-06-16T13:46:17.637 回答