Създавайте OpenGL контекст само с XCB

Искам да създам OpenGL контекст само с XCB без GLX и Xlib. Бихте ли ми казали, че това може да се случи. Благодаря много.


person Miroslav Avramov    schedule 24.09.2015    source източник
comment
Да, 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 сървъра, вместо да има директен контекст, който говори директно с GPU.

person datenwolf    schedule 24.09.2015
comment
Измина една година от този отговор. Някакви актуализации за това? Самият аз не можах да намеря. - person ; 02.08.2016
comment
@Julien: Няма какво да актуализирам по този въпрос. Официалната дефиниция на GLX се основава на Xlib. Това не е някаква незначителна подробност на изпълнението на това как работят GLX имплементациите. В спецификационния документ за GLX е посочено, че Xlib е строго изискване. Трябва напълно да замените GLX с нещо друго, за да се отървете от зависимостта на Xlib. Въпреки това можете да минимизирате отпечатъка, който Xlib има върху вашата програма. Ето пример, използващ Xlib само за OpenGL инициализация и Xcb за всичко останало: github.com/datenwolf/codesamples/blob/master/samples/OpenGL/ - person datenwolf; 02.08.2016