2
GLXコンテキストからピクセルを読み取ろうとしています。ここで私は、私は、単純な三角形をレンダリングしていると私は、glReadPixelsでそのバッファを読みたい文脈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
...、BACKバッファから読ま私でしたが、私はこの のようなエラーが発生しています '[xcb]デキュー中にキューに不明な要求があります [xcb]これはマルチスレッドクライアントであり、XInitThreadsが呼び出されていない可能性があります [xcb]中止しました。 nxplayer.bin:xcb_io.c:188:dequeue_pending_request:アサーション!xcb_xlib_unknown_req_in_deq 'failed.' 私は既にXInitThreads()を呼び出しました。 – Alatriste
@Alatriste:XInitThreads **は、プログラムがマルチスレッドXlib呼び出しを行う場合、他のXlib関数の前に呼び出さなければなりません。あなたのプログラムの途中で電話をかけることはできません。 – datenwolf