Changelog
v7.4.0 (planned on 01.09.2020)
Available in the dev
branch
v7.3.1 (planned on 18.08.2020)
Bugfixes
- Исправлена отрисовка строки значения дважды.
- Переименованы функции
lv_chart_clear_serie
в lv_chart_clear_series
и lv_obj_align_origo
в lv_obj_align_mid
.
- Добавлена функция зеркального отображения линеметра.
- Исправлено оформление текста (подчеркивание, зачеркивание) при использовании старых версий конвертера шрифтов.
- Исправлено многократное задание локальных свойств стиля.
- Добавлено недостающее фоновое рисование и обработка радиуса для кнопки с изображением.
- Разрешено добавление дополнительной метки к кнопкам списка.
- Устранено переполнение при больших преобразованиях изображений.
v7.3.0 (04.08.2020)
Новые функции
- Добавлены функции
lv_task_get_next
, lv_event_send_refresh
и lv_event_send_refresh_recursive
для удобной отправки события LV_EVENT_REFRESH
объекту.
- Добавлена функция
lv_tabview_set_tab_name()
для изменения имени вкладки.
- Добавлены флаги
LV_THEME_MATERIAL_FLAG_NO_TRANSITION
и LV_THEME_MATERIAL_FLAG_NO_FOCUS
.
- Уменьшен размер кода путем добавления:
LV_USE_FONT_COMPRESSED
, LV_FONT_USE_SUBPX
, LV_USE_OUTLINE
, LV_USE_PATTERN
, LV_USE_VALUE_STR
и применения некоторой оптимизации.
- Добавлен
LV_MEMCPY_MEMSET_STD
для использования стандартных функций memcpy
и memset
.
Исправления ошибок
- Не выводить предупреждение об отсутствующем глифе, если его высота или ширина равна нулю.
- Предотвратить дублирование отправки
LV_EVENT_INSERT
из текстовой области.
- Привести в порядок внешние края виджета cpicker.
- Удалить повторяющиеся строки из
lv_tabview_add_tab
.
- Обработать комбинированные состояния кнопок (например, нажата + отключена).
- Исправить опечатку в
lv_textarea_set_sscrollbar_mode
.
- Исправить отрисовку изображения иглы датчика.
- Исправить использование освобожденной памяти в
_lv_style_list_remove_style
.
v7.2.0 (21.07.2020)
Новые функции
- Добавить переходы между экранами с помощью
lv_scr_load_anim()
.
- Добавить возможность отображения цвета фона, обоев и прозрачности экрана. Отображается, когда экран прозрачный. Можно использовать с
lv_disp_set_bg_opa/color/image()
.
- Добавить
LV_CALENDAR_WEEK_STARTS_MONDAY
.
- Добавить функцию
lv_chart_set_x_start_point()
, которая устанавливает индекс начальной точки оси X в массиве данных.
- Добавить функцию
lv_chart_set_ext_array()
, которая задает внешний массив точек данных для использования в диаграмме.
- Добавить функцию
lv_chart_set_point_id()
, которая позволяет задать индивидуальное значение точки в серии диаграммы напрямую на основе индекса.
- Добавить функцию
lv_chart_get_x_start_point()
для получения текущего индекса начальной точки оси X в массиве данных.
- Добавить функцию
lv_chart_get_point_id()
для получения индивидуального значения точки в серии диаграммы непосредственно на основе индекса.
- Добавить битовое поле
ext_buf_assigned
в структуру lv_chart_series_t
, которое становится истинным, если серии назначен внешний буфер.
- Добавить функцию
lv_chart_set_series_axis()
, чтобы назначить серию первичной или вторичной оси.
- Добавить функцию
lv_chart_set_y_range()
, позволяющую установить диапазон вторичной оси Y (на основе lv_chart_set_range
, но расширенную параметром оси).
- Разрешить установку разного шрифта для выделенного текста в
lv_roller
.
- Добавить
theme->apply_cb
вместо theme->apply_xcb
, чтобы сделать его совместимым со связыванием MicroPython.
- Добавить
lv_theme_set_base()
, чтобы упростить расширение встроенных (или любых других) тем.
- Добавить функции
lv_obj_align_x()
и lv_obj_align_y()
.
- Добавить функции
lv_obj_align_origo_x()
и lv_obj_align_origo_y()
.
Исправление ошибок
- В
tileview
исправить навигацию, когда размер экрана не соответствует размеру.
- Использовать шрифт размером 14 пикселей по умолчанию для лучшей совместимости с небольшими дисплеями.
- В
linemeter
исправить преобразование текущего значения в «уровень».
- Исправить рисование на правой границе.
- Установить изображение курсора некликабельным по умолчанию.
- Улучшить монохромную тему при использовании клавиатуры или энкодера.
v7.1.0 (07.07.2020)
Новые функции
- Добавить атрибут
focus_parent
к lv_obj
.
- Разрешить использование кнопок в устройстве ввода с энкодером.
- Добавить возможности
lv_btnmatrix_set/get_align
.
- DMA2D: удалить зависимость от ST CubeMX HAL.
- Добавили свойство
max_used
в структуру lv_mem_monitor_t
.
- В функции
lv_init
проверять, закодированы ли строки в UTF-8.
- Добавить пользовательские данные в темы.
- Добавить флаг
LV_BIG_ENDIAN_SYSTEM
в файл lv_conf.h
, чтобы исправить отображение изображений на системах с прямым порядком байтов.
- Добавить встроенную функцию
lv_checkbox_get_state(const lv_obj_t * cb)
для расширения функциональности флажка. В запросе скорее всего текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.
Перевод:
Встроенная функция lv_checkbox_set_state(const lv_obj_t * cb, lv_btn_state_t state) расширяет функциональность флажка.
Исправления ошибок
-
lv_img
: исправление области аннулирования при изменении угла или масштаба.
- Обновление обработки стиля для поддержки Big endian MCU.
- Изменение некоторых методов для поддержки оборудования с прямым порядком байтов.
- Удаление использования ключевого слова C++ «new» в параметре функции lv_theme_set_base().
- Добавление флага LV_BIG_ENDIAN_SYSTEM в lv_conf.h для исправления отображения изображений на системах с прямым порядком байтов.
- Исправление вставки символов в текстовую область на оборудовании с прямым порядком байтов.
v7.0.2 (16.06.2020)
Исправления ошибок
-
lv_textarea
: исправление неправильной позиции курсора при щелчке после последнего символа.
- Замена всех текстовых индексов с 16-битных на 32-битные целые числа по всей библиотеке. #1545.
- Исправление жестов.
- Не вызывать
set_px_cb
для прозрачного пикселя.
- Исправить фокус списка кнопок в материальной теме.
- Исправить сбой при очистке текстовой области с помощью клавиши возврата клавиатуры.
- Добавить номер версии в
lv_conf_template.h
.
- Включить логирование в режиме истинной двойной буферизации с
set_px_cb
.
-
lv_dropdown
: исправить отсутствие события LV_EVENT_VALUE_CHANGED
при использовании с энкодером.
-
lv_tileview
: исправить, если не первый созданный тайл {0;0}.
-
lv_debug
: реструктурировать, чтобы разрешить утверждение из lv_misc
тоже.
- добавить утверждение, если
_lv_mem_buf_get()
не удаётся.
-
lv_textarea
: исправить удаление символов в режиме пароля.
- Обновить
LV_OPA_MIN
и LV_OPA_MAX
, чтобы расширить диапазон обрабатываемой непрозрачности.
-
lv_btnm
: исправить отправку событий для скрытых кнопок.
-
lv_gaguge
: сделать так, чтобы lv_gauge_set_angle_offset
смещал метки и иглы тоже.
- Исправить опечатку в API
scrllable
-> scrollable
.
-
tabview
по умолчанию разрешает автоматическое расширение страницы только вправо и вниз (#1573).
- исправить сбой при рисовании градиента к одному цвету.
- диаграмма: исправить утечку памяти.
-
img
: улучшить проверку попадания для преобразованных изображений.
v7.0.1 (01.06.2020)
Исправления ошибок
- Сделать работу Microptyhon, добавив необходимые переменные как GC_ROOT.
- Префикс некоторых внутренних функций API с
_
, чтобы уменьшить API LVGL.
- Исправить встроенный шрифт SimSun CJK.
- Исправить кодировку UTF-8 при включённом
LV_USE_ARABIC_PERSIAN_CHARS
.
- Исправить использование DMA2D при прямом смешивании 32-битных изображений.
- Исправить lv_roller в бесконечном режиме при использовании с энкодером.
- Добавить
lv_theme_get_color_secondary()
.
- Добавить
LV_COLOR_MIX_ROUND_OFS
, чтобы настроить смешивание цветов для совместимости с GPU.
- Улучшить смешивание DMA2D.
- Удалить memcpy из
lv_ll
(вызывало проблемы с некоторыми настройками оптимизации).
-
lv_chart
исправить рисование тиков X.
- Исправить рисование вертикальной пунктирной линии.
- Некоторые дополнительные мелкие исправления и форматирование.
v7.0.0 (18.05.2020)
Документация
Документация для версии v7 доступна по адресу https://docs.littlevgl.com/v7/en/html/index.html.
Юридические изменения
Название проекта изменено на LVGL, а новый веб-сайт находится по адресу https://lvgl.io.
LVGL остаётся бесплатным на тех же условиях (лицензия MIT), и для управления LVGL и предоставления услуг создана компания.
Новая система рисования
Полная переработка механизма рисования LVGL для использования «масок» для более продвинутых и высококачественных графических эффектов. Возможный вариант использования этой системы — убрать переполняющийся контент из закруглённых краёв. Это также позволяет рисовать идеально сглаженные окружности, линии и дуги. Внутренне рисунки выполняются путём определения масок (таких как скруглённый прямоугольник, линия, угол). Когда что-то рисуется, текущие активные маски могут сделать некоторые пиксели прозрачными. Например, границы прямоугольника рисуются с использованием двух прямоугольных масок: одна маска удаляет внутреннюю часть, а другая — внешнюю.
API в этом отношении остался прежним, но были добавлены некоторые новые функции:
-
lv_img_set_zoom
: установить коэффициент масштабирования объекта изображения.
-
lv_img_set_angle
: установить угол объекта изображения без использования холста.
-
lv_img_set_pivot
: установить точку поворота вращения.
Новая система рисования принесла новые возможности рисования. Они выделены в разделе «стиль».
Новая система стилей
Старая система стилей заменена новой, более гибкой и облегчённой. Она использует подход, аналогичный CSS: поддерживает каскадные стили, наследует свойства и локальные свойства стиля для каждого объекта. В рамках этих обновлений было переработано множество объектов и изменены API.
- Больше вариантов теней: offset и spread.
- Положение остановки градиента для смещения области градиента и горизонтального градиента.
- Режимы наложения LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE.
-
clip corner: обрезка содержимого по скруглённым углам.
- Подчёркивание текста и зачёркивание.
- Пунктирные вертикальные и горизонтальные линии (dash gap, dash_width).
-
outline: граница, похожая на фон. Может иметь отступ от фона.
-
pattern: отображение и изображение в середине фона или повторение его.
-
value: отображение текста, который хранится в стиле. Его можно использовать, например, как облегчённый текст на кнопках.
-
margin: аналогично padding, но используется для сохранения пространства вне объекта.
Читайте раздел «Стиль» документации, чтобы узнать, как работает новая система стилей.
Интеграция GPU
Для более эффективного использования графических процессоров, начиная с этой версии, использование GPU может быть интегрировано в LVGL. В lv_conf.h можно включить любые поддерживаемые графические процессоры с помощью одной опции конфигурации.
На данный момент интегрирован только ST DMA2D (Chrom-ART). В будущих выпусках будет добавлено больше.
Переименования
Переименованы следующие типы объектов:
- sw -> switch;
- ta -> textarea;
- cb -> checkbox;
- lmeter -> linemeter;
- mbox -> msgbox;
- ddlist -> dropdown;
- btnm -> btnmatrix;
- kb -> keyboard;
- preload -> spinner;
- lv_objx folder -> lv_widgets;
- LV_FIT_FILL -> LV_FIT_PARENT;
- LV_FIT_FLOOD -> LV_FLOOD_MAX;
- LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT;
- LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM.
Переработанные и улучшенные объекты
-
dropdown: полностью переработан. Теперь создаёт отдельный список при открытии и может перемещаться вниз/вверх/влево/вправо.
-
label: body_draw удалён, вместо этого, если его стиль имеет видимый фон/границу/тень и т. д., он будет нарисован. Отступ действительно делает объект больше (не просто виртуально, как раньше).
-
arc: может рисовать фон тоже.
-
btn: не сохраняет стили для каждого состояния, потому что это делается естественным образом в новой системе стилей.
-
calendar: выделяет нажатую дату. Используемые стили изменены: используйте LV_CALENDAR_PART_DATE для обычных дат, checked для выделенных, focused для сегодняшних, pressed для нажатых (checked+pressed, focused+pressed также работают).
-
chart: имеет только типы LINE и COLUMN, потому что с новыми стилями все остальные могут быть описаны. LV_CHART_PART_SERIES устанавливает стиль серии. bg_opa > 0 рисует область в режиме LINE. Также добавлен LV_CHART_PART_SERIES_BG для установки другого стиля для области серии. Отступ в LV_CHART_PART_BG делает область серии меньше и обеспечивает пространство для меток/чисел осей.
-
linemeter, gauge: могут иметь фон, если установлены соответствующие свойства стиля. Отступ делает шкалу/линии меньше. scale_border_width и scale_end_border_width позволяют нарисовать дугу на внешней части линий шкалы.
-
gauge: lv_gauge_set_needle_img позволяет использовать изображение в качестве иглы.
-
canvas: позволяет рисовать в полноцветном альфа-канале и альфа-только холсте, добавляет lv_canvas_blur_hor/ver и переименовывает lv_canvas_rotate в lv_canvas_transform.
-
textarea: если доступно в шрифте, используйте символ пули (U+2022) в текстовой области пароля.
Новые типы объектов
-
lv_objmask: к нему можно добавить маски. Дети будут замаскированы соответствующим образом.
Прочее
- Измените встроенные шрифты на Montserrat и добавьте встроенные шрифты от 12 пикселей до 48 пикселей для каждого второго размера.
- Добавьте пример CJK и встроенный шрифт для арабского/персидского/иврита.
- Добавьте ° и «пулю» во встроенные шрифты.
- Добавьте поддержку арабского/персидского скрипта: измените символ в соответствии с его положением в тексте.
- Добавьте playback_time к анимациям.
- Добавьте repeat_count к анимациям вместо текущего «повторять вечно».
- Замените LV_LAYOUT_PRETTY на LV_LAYOUT_PRETTY_TOP/MID/BOTTOM.
Демоверсии
-
lv_examples был переработан, и были добавлены новые примеры и демонстрации.
Новая политика выпуска
- Поддерживать. Этот список изменений для каждого релиза:
- Сохраняйте старую основную версию в новых ветках. Например,
release/v6
.
- Сливайте новые функции и исправления напрямую в
master
и выпускайте исправления или минорные релизы каждые 2 недели.
Переход с версии v6 на v7:
- Прежде всего создайте новый файл
lv_conf.h
, основываясь на lv_conf_templ.h
.
- Чтобы попробовать новую версию, предлагается использовать проект симулятора и посмотреть примеры.
- Если у вас есть работающий проект, самая сложная часть миграции — это обновление до новой системы стилей. К сожалению, нет лучшего способа, чем ручное обновление до нового формата.
- Остальные части — это в основном незначительные переименования и рефакторинг, как описано выше.
Опубликовать ( 0 )