我正在建立与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位视觉效果?
谢谢,
安迪
答案 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=