在使用xlib生成OpenGL上下文时,我可以获得可视化、可视化ID等,但是OpenXR需要一个GLXFBConfig才能工作。但我不知道如何为当前活动的可视化获取GLXFBConfig。有什么想法吗?
glXGetVisualFromFBConfig似乎做了相反的事情,因为它让我从GLXFBConfig上看到了它。但我的代码通过这种方式可靠地找到了正确的视觉效果。还有别的路可以走吗?
int attribs[] = { GLX_RGBA,
GLX_DOUBLEBUFFER,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_DEPTH_SIZE, 1,
None };
XVisualInfo * vis = glXChooseVisual(CNFGDisplay, screen, attribs);
CNFGVisual = vis->visual;
CNFGVisualID = vis->visualid;
CNFGWinAtt.depth = vis->depth;
CNFGCtx = glXCreateContext( CNFGDisplay, vis, NULL, True );发布于 2022-10-18 02:16:20
我认为@genp断层的解决方案是可行的,但是我决定使用glXChooseFBConfig方法来代替,这样它就匹配了,因为实际上选择我想要的东西并不难。
int attribs[] = {
GLX_RENDER_TYPE, GLX_RGBA_BIT,
GLX_DOUBLEBUFFER, True,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_DEPTH_SIZE, 1,
None };
int elements = 0;
GLXFBConfig * cfgs = glXChooseFBConfig( CNFGDisplay, CNFGScreen, attribs, &elements );
if( elements == 0 )
{
fprintf( stderr, "Error: could not get valid GLXFBConfig visual.\n" );
exit( -1 );
}
CNFGGLXFBConfig = cfgs[0];
XVisualInfo * vis = glXGetVisualFromFBConfig( CNFGDisplay, CNFGGLXFBConfig );
CNFGVisual = vis->visual;
CNFGVisualID = vis->visualid;
CNFGDepth = vis->depth;
CNFGCtx = glXCreateContext( CNFGDisplay, vis, NULL, True );https://stackoverflow.com/questions/74104449
复制相似问题