Выпуск графического тулкита GTK+ 3.16.0 с возможностью отрисовки через OpenGL
За два дня до выхода GNOME 3.16 представлен стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя — GTK+ 3.16.0. В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера. Код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. С тех пор, как GTK+ был разработан в рамках проекта GIMP, тулкит используется в различных проектах, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce или используется в таких продуктах, как Firefox и OpenOffice/LibreOffice. GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив Gtk-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).
Из добавленных в GTK+ 3.16.0 улучшений можно отметить:
В GDK (GIMP Drawing Kit) встроена поддержка OpenGL, которая позволяет организовать отрисовку через OpenGL без использования внешних надстроек. Для рендеринга через OpenGL представлен новый виджет GtkGLArea, который ранее распространялся в виде внешней надстройки. В обиход введён новый тип объекта GdkGLContext, который позволяет прикрепить контекст OpenGL к определённому окну GdkWindow и использовать команды OpenGL для отрисовки произвольных элементов GTK+ в данном окне. Реализация позволяет использовать OpenGL для отрисовки в окружениях X11 и Wayland через libepoxy с использованием GLX или EGL. В состав включён экспериментальный GDK-бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Mir. Бэкенд включает в себя около 5 тысяч строк кода и пока не собирается по умолчанию — для его сборки требуется указать опцию »--enable-mir-backend». Для запуска приложения с использованием данного бэкенда следует установить переменную окружения «GDK_BACKEND=mir»; Для объекта GtkStack реализован новый контроллер GtkStackSidebar, позволяющий создавать боковые панели; Добавлен новый тип кнопок GtkModelButton, в которых в качестве модели выступает GAction; В объект GtkPopover добавлен подкласс GtkPopoverMenu, упрощающий создание кнопок в заголовке окна (popover) в форме меню; Переработаны компоненты, отвечающие за прокрутку содержимого окон. Добавлена поддержка перекрытия (overlay) полос прокрутки. Обеспечена возможность индикации запрета прокрутки ('scrolled off'). Представлены новые сигналы »:: edge-reached» и »:: edge-overshot», а также новое правило GTK_POLICY_EXTERNAL, например, позволяющее реализовать прокрутку без видимых полос прокрутки. Удалены или объявлены устаревшими вызовы: gdk_window_set_static_gravities, gdk_window_set_composited, gtk_style_context_get_background_color, gtk_style_context_get_border_color, gtk_settings_set_string/long/double_property, gtk_settings_install_property, GtkStyleProperties, gdk_cursor_new, gdk_*_libgtk_only, GtkCellRendererPixbuf: follow-state.
© OpenNet