Графический тулкит GTK+ 3.16 получит встроенную поддержку OpenGL
Авторы графического тулкита GTK+ сообщили о реализации встроенной поддержки OpenGL в грядущем релизе GTK+ 3.16.
Как сообщают разработчики, поддержка OpenGL будет доступна как для X11 (GLX), так и для Wayland (EGL). Соответствующий компонент в GDK добавил Александр Ларссон (Alexander Larsson): GdkGLContext позволяет обернуть контекст OpenGL в конкретное нативное окно. Он также предоставляет для GDK инструментарий OpenGL для прорисовки любых элементов. Как только кто-то создаёт контекст OpenGL для нативного окна, создаётся «контекст рисования» для GdkWindow и происходите переключение на GL для его прорисовки.
Александр Ларссон объясняет: прорисовка работает так, что все контексты клиента GL записываются в закадровый буфер вместо того, чтобы напрямую записываться в задний буфер, а также для того, чтобы что-нибудь попало на окно, задействуется gdk_cairo_draw_from_gl() для прорисовки части этого буфера в контексте прорисовки Cairo. В качестве запасного варианта (при перенаправлении отрисовки или применении ряда эффектов, вроде cairo_push_group()) буфер GL считывается обратно в память и композитинг задействует Cairo. Это означает, что рендеринг GL работает во всех случаях, включая прорисовку PDF-документов. Однако работает это не особенно быстро.
Помимо GLX в X11, Александр также добавил поддержку OpenGL в Wayland и виджет GtkGLAreaWidget, обеспечивающий поддержку отрисовки областей OpenGL в приложениях на основе GTK+. Все эти возможности появятся с выходом GTK+ 3.16 и GNOME 3.16 в марте 2015 года.
Автор: Никита Лялин по материалам phoronix.com.