Создание контекста OpenGL с GLX не требует окна. Нейтер glxCreateContext
, ни glxCreateNewContext
возьмите нарисованный параметр. И даже если они это сделали, вы можете создать окно, не отображая его, т.е. сделать его видимым, или даже вызвать какое-либо действие из оконного менеджера.
В X11 создание windows - довольно дешевая операция, особенно если начальный размер окна равен 0 × 0, и окно никогда не отображается. Вы по-прежнему можете выполнять весь диапазон операций X11 и GLX.
Результатом всего этого является то, что для проверки доступности возможностей OpenGL обычным подходом является попытка создать окно и OpenGL. создайте контекст с требуемыми атрибутами и посмотрите, удастся ли это.
Поскольку ресурсы X11, используемые для зондирования, не должны отображаться, это не создаст видимых выходных данных; и, кроме постоянного опроса X-сервера для дерева окон, даже диспетчер окон не заметит этого (поскольку это зависит от отображения окна).
Конечно, чтобы держать все дешево и быстро, такие тесты должны быть запрограммирован непосредственно для X11 / Xlib, без каких-либо промежуточных наборов инструментов (поскольку GLX написан для Xlib, даже если Xcb используется, вам придется использовать Xlib, по крайней мере, для этой части, но вам все равно придется это делать).