Как библиотеки GTK + и OpenGL взаимодействуют на одном X-сервере?

Графический интерфейс пользователя скрывает загадочную механику под своей шторкой. Он смешивает 2D и 3D контексты на одном экране и позволяет безупречно комбинировать эти два, очень разных мира. Но каким образом и на каком уровне они фактически чередуются?

Практика показала, что контекст OpenGL может быть встроен в библиотеку 2D-виджетов, и поэтому весь 2D-интерфейс может быть поддержан OpenGL. Также некоторые приложения могут исследовать аппаратное ускорение, в то время как другие - нет (пока отображаются на одном экране). Знает ли графическая карта о 2D и 3D областях на экране, а диспетчер окон создает иллюзию связного интерфейса? ... можно заметить «скачкообразное изменение» ускоренных окон (3D, видео), чтобы вписаться в 2D-интерфейс, когда, например, прокрутка веб-страницы или перемещение видеоплеера по экрану.

Вопрос кажется тривиальным, но я не встретил никого, кто мог бы дать мне исчерпывающий ответ. Ответ, который может позволить мне встроить контекст OpenGL в приложение GTK + и понять, почему и как оно работает. Я пробовал GtkGlExt и GLUT, но я хотел бы глубоко понять тему и написать собственное решение в рамках академического проекта. Я хотел бы знать, каковы отношения между X, GLX, GTK, OpenGL и оконным менеджером и как исследовать эту сеть библиотек, чтобы сознательно программировать ее.

Я не ожидаю, что кто-то напишет здесь диссертацию, но я буду благодарен за любые указания, предложения или ссылки на статьи на эту тему.

Ответы на вопрос(1)

Ваш ответ на вопрос