Создать контекст OpenGL только с помощью XCB

Я хочу создать контекст OpenGL только с XCB без GLX и Xlib. Не могли бы вы сказать мне, что могло бы случиться. Большое спасибо.


person Miroslav Avramov    schedule 24.09.2015    source источник
comment
Jes, Qt5 использует OpenGL с XCB, и я хочу использовать контекст шва.   -  person Miroslav Avramov    schedule 24.09.2015
comment
@MiroslavAvramov: Нет, не так. GLX был написан в соответствии со спецификацией Xlib, поэтому вы не можете использовать GLX без Xlib в своей программе. Извиняюсь. Вы можете смешивать Xcb с Xlib, если используете (теперь стандартную) Xlib, построенную поверх Xcb.   -  person datenwolf    schedule 24.09.2015


Ответы (1)


Я хочу создать контекст OpenGL только с XCB без GLX и Xlib.

Вы не можете. Период. Вам нужен GLX, потому что именно так X11 работает с OpenGL. А GLX написан против Xlib. Лучшее, что вы можете сделать, это использовать модуль Xcb GLX для реализации чисто косвенного контекста GLX; ограничивает вас OpenGL-2.1, и все должно проходить через сервер X11, вместо того, чтобы иметь прямой контекст, который напрямую обращается к графическому процессору.

person datenwolf    schedule 24.09.2015
comment
С момента ответа прошел год. Есть новости по этому поводу? Сам не нашел. - person ; 02.08.2016
comment
@Julien: Об этом нечего обновлять. Формальное определение GLX основано на Xlib. Это не какие-то незначительные детали реализации того, как работают реализации GLX. В документе спецификации для GLX указано, что Xlib является жестким требованием. Вы должны полностью заменить GLX чем-то другим, чтобы избавиться от зависимости от Xlib. Однако вы можете свести к минимуму влияние Xlib на вашу программу. Вот пример использования Xlib только для инициализации OpenGL и Xcb для всего остального: noreferrer">github.com/datenwolf/codesamples/blob/master/samples/OpenGL/ - person datenwolf; 02.08.2016