The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Опубликован план развития функциональности Qt 6"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
"Опубликован план развития функциональности Qt 6" +/
Сообщение от opennews (??), 07-Авг-19, 23:10 
Ларс Кнолл (Lars Knoll), создатель движка KHTML, руководитель проекта Qt Project и технический директор компании Qt Company,рассказал (https://blog.qt.io/blog/2019/08/07/technical-vision-qt-6/) о планах создания следующей значительной ветки фреймворка Qt.  Qt 6 будет развиваться с оглядкой на обеспечение совместимости с Qt 5, но намеченные архитектурные изменения невозможно будет реализовать без потери определённого уровня совместимости. Для сглаживания перехода некоторые намеченные на Qt 6 возможности планируется в сокращённом виде включить в состав выпусков Qt 5.14 и Qt 5.15 LTS. После завершения формирования функциональности ветки Qt 5.14  разработка будет сфокусирована на подготовке выпуска Qt 6, который ожидается в конце 2020 года.


Среди основных целей для следующей значительной ветки называется приведение функциональности в соответствие с требованиями 2020 года, проведение чистки кодовой базы и упрощение сопровождения проекта. Ожидаемые изменения:

-  Существенная модернизация QML:


-  Поддержка строгой типизации.
-  Возможность компиляции QML в представление на C++ и машинный код.
-  Перевод полной поддержки JavaScript в разряд опций (использование полнофункционального JavaScript-движка требует больших ресурсов, что мешает применению QML на таком оборудовании, как микроконтроллеры).
-  Отказ от версионирования в QML.
-  Унификация структур данных, дублирующихся в QObject и QML (позволит сократить потребление памяти и ускорить запуск).
-  Уход от генерации структур данных во время выполнения в пользу генерации во время компиляции.
-  Скрытие внутренних компонентов через использование приватных методов и свойств.
-  Улучшенная интеграция с инструментами разработки для диагностики ошибок во время компиляции и рефакторинга;

-  Добавление нового абстрактного слоя Rendering Hardware Interface (RHI) для обеспечение возможности бесшовного использования различных графических API, включая OpenGL, Vulkan, Metal и Direct 3D (раньше Qt был завязан только на OpenGL). На использование RHI будет переведена вся имеющаяся инфраструктура рендеринга, включая  QPainter, Qt Quick Scenegraph и Qt3D. Также планируется добавить модуль Qt Shader Tools для поддержки различных языков разработки шейдеров и обеспечения кросс-компиляции шейдеров как на этапе сборки, так и во время выполнения программы;

-  Подготовка унифицированного API для создания интерфейсов пользователя, сочетающих элементы 2D и 3D графики и позволяющий использовать QML для для определения 3D-элементов интерфейсов без задействования формата UIP.  В новом интерфейсе для интеграции  3D-контента с  Qt Quick  планируют решить такие проблемы, как большие накладные расходы при интеграции QML с контентом из  Qt 3D или 3D Studio, и невозможность синхронизации анимации и преобразований на уровне отдельных кадров между 2D и 3D. Совместная в вложенная отрисовка 2D и 3D будет реализована при помощи нового движка рендеринга. Предварительная реализация нового Qt Quick с поддержкой 3D ожидается в выпуске Qt 5.14;

-  Добавление инструментов для обработки связанных с графикой ресурсов на этапе компиляции, например, для преобразования PNG-изображений в сжатые текстуры или для конвертации шейдеров и мешей  в оптимизированные бинарные форматы для конкретного оборудования;

-  Встраивание унифицированного движка для тем оформления и стилей, позволяющего добиться внешнего вида  приложений на базе Qt Widgets и Qt Quick, родного для разных мобильных и настольных платформ;

-  Унификация инструментов для создания интерфейса пользователя. Для исключения дублирования функциональности и прекращения поставки  двух отдельных продуктов, ожидается интеграция функциональности Qt 3D Studio в Qt Design Studio, многие подсистемы которого и фреймворк подключения плагинов построены на единой с Qt Creator кодовой базе.
В Qt Design Studio также планируют обеспечить качественную интеграцию с пакетами для создания контента, такими как  Photoshop, Sketch, Illustrator, Maya и 3D Max. В качестве основных языков, поддерживаемых в унифицированном инструментарии для разработки, называются C++, QML и Python. Унификация также подразумевает возможность обращения из Qt Creator  к средствам проектирования интерфейса, и предоставления дизайнерам интерфейса возможностям из инструментов для разработчиков, например, компиляции проекта или тестировании приложения на устройстве;

-  В качестве системы сборки решено использовать CMake вместо QMake. Поддержка сборки  приложений при помощи  QMake будет сохранена, но сам  Qt будет собираться с использованием CMake. CMake выбран, так как данный инструментарий получил широкое распространение в среде разработчиков проектов на C++ и поддерживается во многих интегрированных средах разработки. Разработка сборочной системы Qbs, которая претендовала на роль замены QMake, прекращена (https://www.opennet.ru/opennews/art.shtml?num=49519);

-  Переход при разработке на стандарт C++17 (ранее использовался C++98). В Qt 6 планируют реализовать поддержку многих современных возможностей C++, но без потери обратной совместимости с кодом на основе прошлых стандартов.

-  Возможность использования из C++ некоторой функциональности,  предлагаемой для QML и Qt Quick. В том числе, будет представлена новая система свойств для QObject и подобных классов, из QML будет  в основной состав будет интегрирован движок для работы с биндингами, что позволит снизить нагрузку и потребление памяти  для биндингов и сделать их доступными  для всех частей Qt, а не только для Qt Quick;

-  Продолжение работы по расширению поддержки дополнительных языков, таких как  Python и WebAssembly;

-  Реструктуризация  с разбиением на более мелкие составные части и сокращением размера базового продукта. Инструменты для разработчиков и специализированные компоненты  будут поставляться в виде дополнений, распространяемых через новый каталог-магазин. Для распространения будут приниматься и дополнения к Qt от сторонних разработчиков, как бесплатные, так и платные.

URL: https://blog.qt.io/blog/2019/08/07/technical-vision-qt-6/
Новость: https://www.opennet.ru/opennews/art.shtml?num=51238

Ответить | Правка | Cообщить модератору

Оглавление
Опубликован план развития функциональности Qt 6, opennews, 07-Авг-19, 23:10  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру