0

我正在尝试获得一个全屏 8 位深度帧缓冲区,但我找不到任何可以使用的视觉效果。我想要 8 位真彩色,其中 3 位是红色,3 位是绿色,2 位是蓝色。我正在使用 XF86 来全屏显示。

// pass
int found = XMatchVisualInfo(l_display, l_screen, 24, TrueColor, &visual);

// all of these fail
found  = XMatchVisualInfo(l_display, l_screen, 8, StaticGray, &visual);
found  = XMatchVisualInfo(l_display, l_screen, 8, GrayScale, &visual);
found  = XMatchVisualInfo(l_display, l_screen, 8, StaticColor, &visual);
found  = XMatchVisualInfo(l_display, l_screen, 8, PseudoColor, &visual);
found  = XMatchVisualInfo(l_display, l_screen, 8, TrueColor, &visual);
found  = XMatchVisualInfo(l_display, l_screen, 8, DirectColor, &visual);

这是不可能的还是我做错了什么?

4

4 回答 4

2

那是一种相当...利基显示模式。完全不确定您的 X 服务器,甚至底层硬件是否支持它。

它当然可以被模拟,但也许没有这样的代码(同样,因为它是一种小众模式)。

我也不认为仅仅请求视觉会导致 X 切换模式。

于 2010-02-01T15:10:30.583 回答
0

这只是 256 色索引模式下的 MCGA 或 VGA,其调色板与您的规格相匹配。

设置它应该没有任何问题,256 色在历史上是一种流行的模式。

于 2010-02-01T15:14:00.637 回答
0

您可以尝试使用xdpyinfo来查看可用的视觉 ID 配置。

于 2010-02-01T15:26:35.693 回答
0

XF86 从来没有在运行时改变位深度的能力。X 的设计方式我什至不认为这是可能的(应用程序在启动时适应显示器的位深度)。您必须选择位深度,然后启动服务器。当然,请确保您的硬件支持某些 8 位视频模式(我认为这不太可能)。并确保 X 服务器知道它。我不确定它是否适用于现代 X 服务器(我已经很长时间没有测试过了,我怀疑很少有人测试过)。

于 2013-10-15T01:57:31.170 回答