Релиз фреймворка Qt 5.9
После полугода разработки представлен релиз кроссплатформенного фреймворка Qt 5.9, который причислен к категории LTS-выпусков, обновления для которых выпускаются в течение трёх лет. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3.
Основные изменения:
- В состав модуля Qt Core включено два новых класса: qfloat16 для манипуляции 16-разрядными числами с плавающей запятой, позволяющий улучшить совместимость с API, связанными с GPU; QOperatingSystemVersion для определения операционной системы и версии запущенного приложения;
- В модуль Qt Network добавлена поддержка протокола HSTS (HTTP Strict Transport Security), позволяющего владельцам сайтов указать о необходимости использования шифрованного соединения и определить правила для переброса на соответствующую HTTPS-область;
- В модуль Qt NFC добавлена серия улучшений, специфичных для платформы Android;
- В модуль Qt Web Sockets добавлена возможность использования внешних TCP-сокетов;
- В Qt Bluetooth обеспечена поддержка платформы WinRT и появились средства для управления периферийными устройствами Bluetooth в Android;
- В модуле Qt GUI реализован кэш шейдеров, в котором могут сохраняться скомпилированные шейдеры OpenGL для последующего повторного использования. Добавлена поддержка вычислительных шейдеров (Compute Shaders). В движок отрисовки через OpenGL добавлена возможность работы с профилями OpenGL Core;
- Продолжено усовершенствование модуля Qt 3D, который уже можно рассматривать как полнофункциональный 3D-движок. Добавлена поддержка интеграции Qt Quick в сцены Qt 3D для представления двумерных интерфейсов в трёхмерном окружении. Также имеется обратная возможность интеграции трёхмерной сцены в двухмерный интерфейс на базе Qt Quick. Добавлены два новых материала QMetalRoughMaterial и QTexturedMetalRoughMaterial, а также новый тип освещения QEnvironmentLight, при отрисовке которых используются реалистичные алгоритмы PBR (Physics Based Rendering). В Qt 3D Animation добавлена поддержка анимации по ключевым кадрам с интерполяцией промежуточных кадров на основе кривых Безье. Добавлены новые компоненты QLevelOfDetail и QLevelOfDetailSwitch, позволяющие управлять уровнем детализации рендеринга, варьируя между скоростью и качеством. Добавлен класс QExtrudedTextGeometry для трёхмерной отрисовки текста;
- В JavaScript и QML движок добавлен новый сборщик мусора, обеспечивающий более высокую производительность и снижающий фрагментацию памяти;
- Представлена новая инфраструктура кэширования QML, поддерживающая два режима: создание бинарного кэша для QML-файлов при первом запуске приложения и упреждающее формирование кэша скомпилированных компонентов QML на этапе сборки программы
- В Qt Quick задействован новый кэш шейдеров OpenGL, реализованный в Qt GUI. Также представлен специальный обработчик для обеспечения совместного использования данных изображений между разными процессами и новый бэкенд OpenVG, позволяющий организовать работу на оборудовании, поддерживающем только 2D-ускорение;
- Проведена большая работа по повышению стабильности и производительности Qt Quick Controls 2, добавлена поддержка мультитач;
- Модуль Qt Location добавлена поддержка наклонных проекций вращения карт, управляемых через API или экранные жесты. Добавлен новый плагин для работы с Mapbox, использующий для отрисовки движок на базе OpenGL;
- Qt Webengine обновлён до кодовой базы Chromium 56;
- В виртуальной клавиатуре появилась поддержка смены раскладки;
- Представлен новый экспериментальный модуль Qt Remote Objects с реализацией механизма межпроцессного взаимодействия;
- Добавлена поддержка новых платформ QNX 7.0 и INTEGRITY OS;
- Добавлена поддержка сборки Qt в режиме оптимизации размера »-Os», позволяющая сократить размер исполняемых файлов приложений и библиотек на 5–20%;
- Внесена большая порция улучшений в Qt Wayland Compositor, многопоточную систему отрисовки для встраиваемых устройств, использующую протокол Wayland.
© OpenNet