我正在建立与 X 服务器的连接,如下所示:
display = XOpenDisplay(NULL);
screen = DefaultScreen(display);
depth = DefaultDepth(display, screen);
我现在想知道为什么“深度”总是设置为 24。我希望关闭合成时它只有 24,但实际上,即使我打开合成它仍然是 24。因此,为了获得 32 位 ARGB 视觉效果,我需要首先调用 XGetVisualInfo(),并将深度显式设置为 32。
现在我的问题是: DefaultDepth() 通常不会返回超过 24 或者它只是在我的系统上?(我的显卡有点过时了......)。我知道它可以为 CLUT 显示返回 15、16 甚至 8,但它可以返回 32 吗?还是我总是必须先使用 XGetVisualInfo() 才能获得 ARGB 32 位视觉效果?
谢谢,
安迪