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

发布于 2024-09-01 07:28:15 字数 469 浏览 5 评论 0原文

我正在像这样建立到 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 位视觉效果?

谢谢,

安迪

I'm establishing a connection to the X server like this:

display = XOpenDisplay(NULL);
screen = DefaultScreen(display);
depth = DefaultDepth(display, screen);

I'm wondering now why "depth" is always set to 24. I would expect that it is only 24 when compositing is turned off, but in fact, it is still 24 even when I turn on compositing. So in order to get a 32-bit ARGB visual I need to call XGetVisualInfo() first with depth set explicitly to 32.

Now to my question: Will DefaultDepth() generally never return more than 24 or is it just on my system? (my graphics board is somewhat dated...). I know that it could return 15, 16 or even 8 for a CLUT display but can it return 32? Or do I always have to use XGetVisualInfo() first to get a ARGB 32-bit visual?

Thanks,

Andy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枫林﹌晚霞¤ 2024-09-08 07:28:15

X协议中的DefaultDepth指的是颜色深度。它不包括阿尔法。这有点丑陋,但这就是 20 多年来非复合感知应用程序的假设。

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

DefaultDepth in the X protocol refers to color depth. It does not include alpha. This is sort of ugly, but that's what 20+ years of non-Composite-aware apps assume.

Yes, it can return more than 24. Depth 30 displays are not common, but do exist.

做个少女永远怀春 2024-09-08 07:28:15

xorg.conf 中的“Screen”部分有一个“DefaultDepth”参数。尝试改变它。

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

There is a "DefaultDepth" parameter in xorg.conf, in section "Screen". Try to change it.

Depth is detected from root_depth field: http://www.google.com/codesearch?hl=en&safe=off&q=root_depth&aq=f&aqi=g-sx10&aql=&oq=&gs_rfai=

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文