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 ನ ಗಮನಾರ್ಹ ಆಧುನೀಕರಣ:
    • ಬಲವಾದ ಟೈಪಿಂಗ್ ಬೆಂಬಲ.
    • C++ ಪ್ರಾತಿನಿಧ್ಯ ಮತ್ತು ಯಂತ್ರ ಕೋಡ್ ಆಗಿ QML ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ.
    • ಸಂಪೂರ್ಣ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬೆಂಬಲವನ್ನು ಒಂದು ಆಯ್ಕೆಯನ್ನಾಗಿ ಮಾಡುವುದು (ಪೂರ್ಣ-ವೈಶಿಷ್ಟ್ಯದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಎಂಜಿನ್ ಅನ್ನು ಬಳಸುವುದರಿಂದ ಬಹಳಷ್ಟು ಸಂಪನ್ಮೂಲಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ, ಇದು ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ಗಳಂತಹ ಸಾಧನಗಳಲ್ಲಿ 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 ಬಳಸಿಕೊಂಡು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಬೆಂಬಲವು ಉಳಿಯುತ್ತದೆ, ಆದರೆ 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

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ