Qt 6 ਕਾਰਜਸ਼ੀਲਤਾ ਰੋਡਮੈਪ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ

Ларс Кнолл (Lars Knoll), создатель движка KHTML, руководитель проекта Qt Project и технический директор компании Qt Company, ਮੈਨੂੰ ਦੱਸਿਆ о планах по созданию следующей значительной ветки фреймворка Qt. После завершения формирования функциональности ветки Qt 5.14 разработка будет сфокусирована на подготовке выпуска Qt 6, который ожидается в конце 2020 года.

Qt 6 будет развиваться с оглядкой на обеспечение совместимости с Qt 5, но не исключено возникновение отдельных проблем, так как намеченные архитектурные изменения и чистку невозможно будет реализовать без потери определённого уровня совместимости. Для сглаживания перехода некоторые возможности Qt 6 планируется в сокращённом виде включить в состав выпусков Qt 5.14 и Qt 5.15 LTS. Также будет подготовлен инструментарий для упрощения миграции на Qt 6.

Среди основных целей для следующей значительной ветки называется приведение функциональности в соответствие с требованиями 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 графики. Новый API позволит использовать 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 к средствам проектирования интерфейса, и предоставление дизайнерам интерфейса возможностей из инструментов для разработчиков, например, компиляции проекта или тестирования приложения на устройстве;

  • ਬਿਲਡ ਸਿਸਟਮ ਵਜੋਂ QMake ਦੀ ਬਜਾਏ CMake ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ ਗਿਆ ਸੀ। QMake ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਐਪਲੀਕੇਸ਼ਨਾਂ ਬਣਾਉਣ ਲਈ ਸਮਰਥਨ ਬਣਿਆ ਰਹੇਗਾ, ਪਰ Qt ਖੁਦ CMake ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾਇਆ ਜਾਵੇਗਾ। CMake ਨੂੰ ਚੁਣਿਆ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਇਹ ਟੂਲਕਿੱਟ C++ ਪ੍ਰੋਜੈਕਟ ਡਿਵੈਲਪਰਾਂ ਵਿੱਚ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਵਰਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਬਹੁਤ ਸਾਰੇ ਏਕੀਕ੍ਰਿਤ ਵਿਕਾਸ ਵਾਤਾਵਰਨ ਵਿੱਚ ਸਮਰਥਿਤ ਹੈ। Qbs ਅਸੈਂਬਲੀ ਪ੍ਰਣਾਲੀ ਦਾ ਵਿਕਾਸ, ਜਿਸ ਨੇ QMake ਦੀ ਥਾਂ ਲੈਣ ਦਾ ਦਾਅਵਾ ਕੀਤਾ ਹੈ, ਬੰਦ;
  • ਵਿਕਾਸ ਦੌਰਾਨ C++ 17 ਸਟੈਂਡਰਡ ਵਿੱਚ ਤਬਦੀਲੀ (ਪਹਿਲਾਂ C++98 ਵਰਤਿਆ ਜਾਂਦਾ ਸੀ)। Qt 6 ਕਈ ਆਧੁਨਿਕ C++ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਸਮਰਥਨ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਯੋਜਨਾ ਬਣਾਉਂਦਾ ਹੈ, ਪਰ ਪੁਰਾਤਨ ਮਿਆਰਾਂ ਦੇ ਆਧਾਰ 'ਤੇ ਕੋਡ ਨਾਲ ਪਿਛੜੇ ਅਨੁਕੂਲਤਾ ਨੂੰ ਗੁਆਏ ਬਿਨਾਂ।
  • Возможность использования из C++ некоторой функциональности, предлагаемой для QML и Qt Quick. В том числе, будет представлена новая система свойств для QObject и подобных классов. Из QML в ядро Qt будет интегрирован движок для работы с биндингами, что позволит снизить нагрузку и потребление памяти для биндингов и сделать их доступными для всех частей Qt, а не только для Qt Quick;
  • Продолжение работы по расширению поддержки дополнительных языков, таких как Python и WebAssembly;
  • Реструктуризация с разбиением на более мелкие составные части и сокращением размера базового продукта. Инструменты для разработчиков и специализированные компоненты будут поставляться в виде дополнений, распространяемых через новый каталог-магазин. Для распространения будут приниматься и дополнения к Qt от сторонних разработчиков, как бесплатные, так и платные.

ਸਰੋਤ: opennet.ru

ਇੱਕ ਟਿੱਪਣੀ ਜੋੜੋ