13 мая, после более года разработки, состоялся выпуск 7.0.0 кроссплатформенной библиотеки ಎಫ್‌ಟಿಎಕ್ಸ್‌ಯುಐ, ಪಠ್ಯ ಇಂಟರ್ಫೇಸ್‌ನೊಂದಿಗೆ C++ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ.

ಗ್ರಂಥಾಲಯದ ವೈಶಿಷ್ಟ್ಯಗಳು:

  • ರಿಯಾಕ್ಟ್ ಜೆಎಸ್ ನಂತೆಯೇ ಕ್ರಿಯಾತ್ಮಕ ಶೈಲಿ;
  • ಸರಳ ಮತ್ತು ಸೊಗಸಾದ ಶೈಲಿ (ಗ್ರಂಥಾಲಯದ ಲೇಖಕರ ಪ್ರಕಾರ);
  • ಕೀಬೋರ್ಡ್ ಮತ್ತು ಮೌಸ್ ಈವೆಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು;
  • UTF8 ಮತ್ತು ಯೂನಿಕೋಡ್ ಬೆಂಬಲ;
  • ನಿಜವಾದ ಬಣ್ಣ ಬೆಂಬಲ;
  • ಕರ್ಸರ್ ಶೈಲಿಯನ್ನು ಬದಲಾಯಿಸಲು ಬೆಂಬಲ;
  • ಅನಿಮೇಷನ್ ಬೆಂಬಲ;
  • ಡ್ರಾಯಿಂಗ್ ಬೆಂಬಲ;
  • ಯಾವುದೇ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಅವಲಂಬನೆಗಳಿಲ್ಲ;
  • ಅಡ್ಡ-ವೇದಿಕೆ (Linux/ಮ್ಯಾಕೋಸ್, ವೆಬ್‌ಅಸೆಂಬ್ಲಿ, Windows).
ಬದಲಾವಣೆಗಳು

ದಾಖಲೆ

  • Исправлена генерация документации с Doxygen.
  • Добавлена собственная тема для Doxygen.
  • Разделение документации на несколько страниц.

ಸಂಕಲನ

  • Добавлен скрипт tools$ amalgamate.py для генерации «амальгамированного» исходного кода: ftxui.cpp (534 Kб), ftxui.hpp (110 Кб) и ftxui_all.hpp (643 Кб).
  • Добавлена поддержка модулей C++20.
  • Добавлена поддержка Meson.
  • Удалена зависимость от pthread.
  • Исправлена поддержка Bazel.
  • Другие улучшения.

Изменения совместимости с прошлыми версиями

  • Переименовывания:
    • Pixel в `Cell
    • Image в Surface
    • ScreenInteractive в App
    • метод PixelAt вCellAt
      Для обеспечения совместимости предусмотрены псевдонимы и заголовки, чтобы не нарушить работу существующего кода.
  • Использование std::string_view вместо const std::string& там, где это возможно. Это обеспечивает лучшую совместимость со строковыми литералами и позволяет избежать ненужных копирований.

ಘಟಕಗಳು

  • Улучшена и модернизирована система перехвата сигналов с использованием POSIX sigaction для надежного маскирования сигналов. Обеспечена защита от двойного восстановления терминала при выходе из программы с помощью атомарного отслеживания исходного состояния. Добавлена поддержка дополнительных сигналов POSIX (SIGBUS, SIGSYS, как сигналов сбоя, и SIGQUIT, SIGHUP, как сигналов отложенного завершения) и исправлены проблемы безопасности асинхронных сигналов.
  • Исправлена проблема с отображением курсора при использовании настраиваемого Renderer во вложенных контейнерах.
  • Исправлено позиционирование курсора в полях ввода и стабильность прокрутки.
  • Исправлена поддержка не ASCII символов в режиме ввода пароля.
  • Устранено мерцание курсора при перерисовке в App.
  • Обработка ввода с использованием POSIX pipes
    • Позволяет приложениям FTXUI считывать данные из stdin (при использовании pipe) и при этом по-прежнему принимать ввод с клавиатуры в терминале.
    • Используется по умолчанию.
    • Может быть отключено использованием App::HandlePipedInput(false).
    • ನಲ್ಲಿ ಮಾತ್ರ ಲಭ್ಯವಿದೆ Linux и macOS.
  • Исправлены многие ошибки.

DOM

  • Поддержка перевода строки (n) внутри text() и vtext().
  • Теперь dbox передает фокус от верхних слоев к нижним, что соответствует визуальному отображению.
  • Добавлена поддержка декораторов границ таблиц. Это позволяет, например, изменять цвет границ таблицы.
  • Исправлена ошибка целочисленного переполнения в ComputeShrinkHard.
  • Добавлена специализация в vbox/hbox/dbox для возможности использования контейнера Element в качестве входных данных.
  • В gridbox исправлено добавление дочерних элементов.
  • Исправлено отображение gauge.
  • Добавлены параметризованные варианты декораторов flex с параметром _factor. Они позволяют указывать пользовательские коэффициенты растяжения или сжатия:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), а также варианты для осей x и y.

Оптимизации отрисовки

  • Оптимизация перемещения курсора по строкам в методе Screen::ResetPosition (без очистки экрана) в один параметризованный набор команд CSI для перемещения курсора вверх (x1B[<n>A) вместо вывода одного x1B[1A на каждую строку. Это уменьшило количество экранирующих символов на кадр во время перерисовки (например, ~197 -> 6 байтов для экрана с 50 строками, ~33-кратное уменьшение).
  • Оптимизированы Screen::ToString(), Color::Print() и string_width(), что ускорило:
    • Базовый рендеринг на ~27%.
    • Рендеринг текста на ~27%.
    • Рендеринг стилей на ~38%.

ಮೂಲ: linux.org.ru

DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಸೈಟ್‌ಗಳಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ 🔥 DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ವೆಬ್‌ಸೈಟ್ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ | ProHoster