|
|
最近在linux下写opengl的程序。在xwindows系统中初始化opengl需要用到glx.但是我总是找不到glx的库文件在什么地方。链接选项里面写上-lglx提示说没这个库,请问一下这个库在什么地方。
另外想问一下,在windows中,opengl可以为任何窗口渲染,只要拿到这个窗口的句柄就可以初始化了。而在linux中好像窗口和opengl之间的耦合比较深,在创建窗口的时候就要指定色深:
GLXFBConfig *fbcfg = glXChooseFBConfig(dsp, DefaultScreen(dsp), 0, &n);
XVisualInfo *vis = glXGetVisualFromFBConfig(dsp, *fbcfg);//先用glx拿到XVisualInfo
Window win = XCreateWindow(..., vis->depth , ...);//创建窗口的时候要制定色深
这样窗口的建立过程和opengl的初始化过程就必须耦合在一起。那么如果我要用openGL为诸如qt之类的库的窗口进行渲染,就不能像windows下面为MFC渲染那样,把窗口句柄传给wgl这么简单了。请教有没有办法将他们分离?
最后想问一下,linux里面如何枚举显卡设备和它们支持的现实模式,就像windows下的EnumDisplayDevices函数和EnumDisplaySettings一样。
|
|