Возможен ли в X11 полноэкранный 8-битный фреймбуфер, и если да, то что я делаю не так?

Я пытаюсь получить полноэкранный буфер кадра с 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);

Это невозможно или я что-то не так делаю?


person ytrp    schedule 01.02.2010    source источник


Ответы (4)


Это довольно ... нишевый режим отображения. Нет никакой уверенности, что ваш X-сервер или даже лежащее в основе оборудование поддерживает его.

Его, конечно, можно эмулировать, но, возможно, такого кода нет (опять же, поскольку это нишевый режим).

Я также не думаю, что простой запрос визуального элемента заставит X переключать режимы.

person unwind    schedule 01.02.2010

Это просто MCGA или VGA в 256-цветном индексированном режиме с палитрой, соответствующей вашим спецификациям.

У вас не должно возникнуть проблем с настройкой этого режима, 256-цветный режим исторически был популярным.

person Alex Brown    schedule 01.02.2010

Вы можете попробовать использовать xdpyinfo для просмотреть доступную конфигурацию визуального идентификатора.

person epatel    schedule 01.02.2010

XF86 никогда не имел возможности изменять разрядность во время выполнения. Я даже не думаю, что способ разработки X возможен (приложения при запуске адаптируются к разрядности дисплея). Вам нужно выбрать битовую глубину, после чего вы запустите сервер. И, конечно же, убедитесь, что ваше оборудование поддерживает какой-то 8-битный видеорежим (я бы сказал, что это не так уж и маловероятно). И убедитесь, что X-сервер знает об этом. Я не уверен, работает ли он даже с современными X-серверами (я не тестировал его долгое время и подозреваю, что немногие из них).

person Fabel    schedule 15.10.2013