X11和ARGB视觉效果:DefaultDepth()永远不会返回32吗?

时间:2010-05-15 10:53:22

标签: linux x11 compositing

我正在建立与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位视觉效果?

谢谢,

安迪

2 个答案:

答案 0 :(得分:2)

X协议中的DefaultDepth是指颜色深度。它不包括alpha。这有点难看,但这是20多年的非复合感知应用所假设的。

是的,它可以返回超过24个。深度30显示不常见,但确实存在。

答案 1 :(得分:0)

xorg.conf中的“DefaultDepth”参数位于“Screen”部分。尝试改变它。

root_depth字段http://www.google.com/codesearch?hl=en&safe=off&q=root_depth&aq=f&aqi=g-sx10&aql=&oq=&gs_rfai=

中检测到深度