mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-19 20:03:09 +08:00
chore(cmsis-pack): update cmsis-pack for v9.3.0 release (#8113)
Arduino Lint / lint (push) Has been cancelled
Build Examples with C++ Compiler / build-examples (push) Has been cancelled
MicroPython CI / Build esp32 port (push) Has been cancelled
MicroPython CI / Build rp2 port (push) Has been cancelled
MicroPython CI / Build stm32 port (push) Has been cancelled
MicroPython CI / Build unix port (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - gcc - Windows (push) Has been cancelled
C/C++ CI / Build ESP IDF ESP32S3 (push) Has been cancelled
C/C++ CI / Run tests with 32bit build (push) Has been cancelled
C/C++ CI / Run tests with 64bit build (push) Has been cancelled
BOM Check / bom-check (push) Has been cancelled
Verify that lv_conf_internal.h matches repository state / verify-conf-internal (push) Has been cancelled
Verify the widget property name / verify-property-name (push) Has been cancelled
Verify code formatting / verify-formatting (push) Has been cancelled
Build docs / build-and-deploy (push) Has been cancelled
Test API JSON generator / Test API JSON (push) Has been cancelled
Check Makefile / Build using Makefile (push) Has been cancelled
Check Makefile for UEFI / Build using Makefile for UEFI (push) Has been cancelled
Port repo release update / run-release-branch-updater (push) Has been cancelled
Verify Font License / verify-font-license (push) Has been cancelled
Verify Kconfig / verify-kconfig (push) Has been cancelled
Arduino Lint / lint (push) Has been cancelled
Build Examples with C++ Compiler / build-examples (push) Has been cancelled
MicroPython CI / Build esp32 port (push) Has been cancelled
MicroPython CI / Build rp2 port (push) Has been cancelled
MicroPython CI / Build stm32 port (push) Has been cancelled
MicroPython CI / Build unix port (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_VG_LITE - gcc - Windows (push) Has been cancelled
C/C++ CI / Build ESP IDF ESP32S3 (push) Has been cancelled
C/C++ CI / Run tests with 32bit build (push) Has been cancelled
C/C++ CI / Run tests with 64bit build (push) Has been cancelled
BOM Check / bom-check (push) Has been cancelled
Verify that lv_conf_internal.h matches repository state / verify-conf-internal (push) Has been cancelled
Verify the widget property name / verify-property-name (push) Has been cancelled
Verify code formatting / verify-formatting (push) Has been cancelled
Build docs / build-and-deploy (push) Has been cancelled
Test API JSON generator / Test API JSON (push) Has been cancelled
Check Makefile / Build using Makefile (push) Has been cancelled
Check Makefile for UEFI / Build using Makefile for UEFI (push) Has been cancelled
Port repo release update / run-release-branch-updater (push) Has been cancelled
Verify Font License / verify-font-license (push) Has been cancelled
Verify Kconfig / verify-kconfig (push) Has been cancelled
Co-authored-by: André <andre_miguel_costa@hotmail.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Kconfig file for LVGL v9.3.0-dev
|
||||
# Kconfig file for LVGL v9.3.0
|
||||
|
||||
menu "LVGL configuration"
|
||||
|
||||
|
||||
BIN
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -2,8 +2,8 @@
|
||||
<index schemaVersion="1.0.0" xs:noNamespaceSchemaLocation="PackIndex.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<vendor>LVGL</vendor>
|
||||
<url>https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/</url>
|
||||
<timestamp>2024-10-31</timestamp>
|
||||
<timestamp>2025-06-02</timestamp>
|
||||
<pindex>
|
||||
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="9.3.0-dev2"/>
|
||||
<pdsc url="https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/" vendor="LVGL" name="lvgl" version="9.3.0"/>
|
||||
</pindex>
|
||||
</index>
|
||||
|
||||
@@ -34,7 +34,9 @@ remove the misleading guide above this code segment.
|
||||
#ifndef LV_CONF_H
|
||||
#define LV_CONF_H
|
||||
|
||||
#if defined(_RTE_)
|
||||
#include "RTE_Components.h"
|
||||
#endif
|
||||
...
|
||||
```
|
||||
4. Remove macro definitions for
|
||||
@@ -56,6 +58,8 @@ remove the misleading guide above this code segment.
|
||||
- LV_USE_DEMO_SCROLL
|
||||
- LV_USE_DEMO_VECTOR_GRAPHIC
|
||||
- LV_USE_DEMO_EBIKE
|
||||
- LV_USE_DEMO_HIGH_RES
|
||||
- LV_USE_DEMO_SMARTWATCH
|
||||
- LV_USE_DRAW_VGLITE
|
||||
- LV_USE_DRAW_VG_LITE
|
||||
- LV_USE_PXP
|
||||
@@ -78,6 +82,7 @@ remove the misleading guide above this code segment.
|
||||
- LV_USE_ST7789
|
||||
- LV_USE_ST7796
|
||||
- LV_USE_ST_LTDC
|
||||
- LV_USE_FT81X
|
||||
- LV_USE_ILI9341
|
||||
- LV_USE_RENESAS_GLCDC
|
||||
- LV_USE_NEMA_GFX
|
||||
@@ -85,7 +90,7 @@ remove the misleading guide above this code segment.
|
||||
5. Update `LV_LOG_PRINTF` to `1` and `LV_LOG_LEVEL` to `LV_LOG_LEVEL_USER`
|
||||
|
||||
|
||||
6. Set `LV_FONT_MONTSERRAT_12`, ``LV_FONT_MONTSERRAT_20`, `LV_FONT_MONTSERRAT_24`, `LV_FONT_MONTSERRAT_26` and `LV_FONT_MONTSERRAT_16` to `1` (So Widgets and Benchmark can be compiled correctly, this is for improving the out of box experience.)
|
||||
6. Set `LV_FONT_MONTSERRAT_12`, `LV_FONT_MONTSERRAT_20`, `LV_FONT_MONTSERRAT_24`, `LV_FONT_MONTSERRAT_26` and `LV_FONT_MONTSERRAT_16` to `1` (So Widgets and Benchmark can be compiled correctly, this is for improving the out of box experience.)
|
||||
|
||||
|
||||
7. Update macro `LV_ATTRIBUTE_MEM_ALIGN` and `LV_ATTRIBUTE_MEM_ALIGN_SIZE` to force a WORD alignment.
|
||||
@@ -102,16 +107,16 @@ Make sure `LV_MEM_SIZE` is no less than `(128*1024U)`.
|
||||
- \#define LV_USE_FS_POSIX 0
|
||||
- \#define LV_USE_FS_WIN32 0
|
||||
- \#define LV_USE_FS_FATFS 0
|
||||
- #define LV_USE_FS_LITTLEFS 0
|
||||
- #define LV_USE_FS_ARDUINO_ESP_LITTLEFS 0
|
||||
- #define LV_USE_FS_ARDUINO_SD 0
|
||||
- #define LV_USE_FS_MEMFS 0
|
||||
- \#define LV_USE_FS_LITTLEFS 0
|
||||
- \#define LV_USE_FS_ARDUINO_ESP_LITTLEFS 0
|
||||
- \#define LV_USE_FS_ARDUINO_SD 0
|
||||
- \#define LV_USE_FS_MEMFS 0
|
||||
- \#define LV_USE_LODEPNG 0
|
||||
- #define LV_USE_LIBPNG 0
|
||||
- \#define LV_USE_LIBPNG 0
|
||||
- \#define LV_USE_BMP 0
|
||||
- \#define LV_USE_RLE 0
|
||||
- #define LV_USE_TJPGD 0
|
||||
- #define LV_USE_LIBJPEG_TURBO 0
|
||||
- \#define LV_USE_TJPGD 0
|
||||
- \#define LV_USE_LIBJPEG_TURBO 0
|
||||
- \#define LV_USE_GIF 0
|
||||
- \#define LV_USE_BARCODE 0
|
||||
- \#define LV_USE_QRCODE 0
|
||||
@@ -119,7 +124,8 @@ Make sure `LV_MEM_SIZE` is no less than `(128*1024U)`.
|
||||
- \#define LV_USE_TINY_TTF 0
|
||||
- \#define LV_USE_RLOTTIE 0
|
||||
- \#define LV_USE_FFMPEG 0
|
||||
- #define LV_USE_FONT_MANAGER 0
|
||||
- \#define LV_USE_FONT_MANAGER 0
|
||||
- \#define LV_USE_XML 0
|
||||
|
||||
9. update the definition of following macros: `LV_USE_VECTOR_GRAPHIC`, `LV_USE_THORVE_INTERNAL` and `LV_USE_THORVE_EXTERNAL` as
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ PACK_DIRS="
|
||||
../../src
|
||||
../../libs
|
||||
../../demos
|
||||
../../xmls
|
||||
../../env_support/pikascript
|
||||
"
|
||||
|
||||
@@ -56,6 +57,7 @@ PACK_BASE_FILES="
|
||||
../../README.md
|
||||
../../lvgl.h
|
||||
../../lv_version.h
|
||||
../../lvgl_private.h
|
||||
lv_conf_cmsis.h
|
||||
lv_cmsis_pack.txt
|
||||
"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lvgl",
|
||||
"version": "9.3.0-dev",
|
||||
"version": "9.3.0",
|
||||
"keywords": "graphics, gui, embedded, tft, lvgl",
|
||||
"description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.",
|
||||
"repository": {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
name=lvgl
|
||||
version=9.3.0-dev
|
||||
version=9.3.0
|
||||
author=kisvegabor
|
||||
maintainer=kisvegabor,embeddedt,pete-pjb
|
||||
sentence=Full-featured Graphics Library for Embedded Systems
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @file lv_conf.h
|
||||
* Configuration file for v9.3.0-dev
|
||||
* Configuration file for v9.3.0
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -9,6 +9,6 @@
|
||||
#define LVGL_VERSION_MAJOR 9
|
||||
#define LVGL_VERSION_MINOR 3
|
||||
#define LVGL_VERSION_PATCH 0
|
||||
#define LVGL_VERSION_INFO "dev"
|
||||
#define LVGL_VERSION_INFO ""
|
||||
|
||||
#endif /* LVGL_VERSION_H */
|
||||
|
||||
@@ -18,6 +18,8 @@ extern "C" {
|
||||
|
||||
#include "../../../lv_conf_internal.h"
|
||||
#include "../../../misc/lv_area_private.h"
|
||||
#include "../../../draw/lv_draw_private.h"
|
||||
#include "../../../draw/lv_draw_image_private.h"
|
||||
|
||||
#if LV_USE_DRAW_ARM2D_SYNC
|
||||
|
||||
@@ -175,11 +177,11 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
const lv_area_t * coords,
|
||||
int32_t src_stride,
|
||||
const lv_area_t * des_area,
|
||||
lv_draw_task_t * draw_task,
|
||||
lv_draw_task_t * t,
|
||||
const lv_draw_image_dsc_t * draw_dsc)
|
||||
{
|
||||
lv_result_t result = LV_RESULT_INVALID;
|
||||
lv_layer_t * layer = draw_task->target_layer;
|
||||
lv_layer_t * layer = t->target_layer;
|
||||
lv_color_format_t des_cf = layer->color_format;
|
||||
static bool arm_2d_initialized = false;
|
||||
|
||||
@@ -192,19 +194,27 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
if (!is_transform) {
|
||||
break;
|
||||
}
|
||||
#if ARM_2D_VERSION < 10202ul
|
||||
if(draw_dsc->scale_x != draw_dsc->scale_y) {
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
/* filter the unsupported colour format combination */
|
||||
if((LV_COLOR_FORMAT_RGB565 == des_cf)
|
||||
&& !( (LV_COLOR_FORMAT_RGB565 == src_cf)
|
||||
|| (LV_COLOR_FORMAT_RGB565A8 == src_cf))) {
|
||||
|| (LV_COLOR_FORMAT_RGB565A8 == src_cf)
|
||||
#if __ARM_2D_CFG_SUPPORT_CCCA8888_IMPLICIT_CONVERSION__ && ARM_2D_VERSION > 10201ul
|
||||
|| (LV_COLOR_FORMAT_ARGB8888 == src_cf)
|
||||
|| (LV_COLOR_FORMAT_XRGB8888 == src_cf)
|
||||
#endif
|
||||
|| (LV_COLOR_FORMAT_A8 == src_cf))) {
|
||||
break;
|
||||
}
|
||||
#if 0 /* a temporary patch */
|
||||
#if ARM_2D_VERSION > 10201ul
|
||||
if((LV_COLOR_FORMAT_XRGB8888 == des_cf)
|
||||
&& !( (LV_COLOR_FORMAT_ARGB8888 == src_cf)
|
||||
|| (LV_COLOR_FORMAT_XRGB8888 == src_cf))) {
|
||||
|| (LV_COLOR_FORMAT_XRGB8888 == src_cf)
|
||||
|| (LV_COLOR_FORMAT_A8 == src_cf))) {
|
||||
break;
|
||||
}
|
||||
#else
|
||||
@@ -218,7 +228,7 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
/* ------------- prepare parameters for arm-2d APIs - BEGIN --------- */
|
||||
|
||||
lv_area_t blend_area;
|
||||
if(!lv_area_intersect(&blend_area, des_area, draw_task->clip_area)) {
|
||||
if(!lv_area_intersect(&blend_area, des_area, &t->clip_area)) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -268,8 +278,8 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
|
||||
target_region = (arm_2d_region_t) {
|
||||
.tLocation = {
|
||||
.iX = (int16_t)(coords->x1 - draw_task->clip_area->x1),
|
||||
.iY = (int16_t)(coords->y1 - draw_task->clip_area->y1),
|
||||
.iX = (int16_t)(coords->x1 - t->clip_area.x1),
|
||||
.iY = (int16_t)(coords->y1 - t->clip_area.y1),
|
||||
},
|
||||
.tSize = src_size,
|
||||
};
|
||||
@@ -289,12 +299,12 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
|
||||
clip_region = (arm_2d_region_t) {
|
||||
.tLocation = {
|
||||
.iX = (int16_t)(draw_task->clip_area->x1 - layer->buf_area.x1),
|
||||
.iY = (int16_t)(draw_task->clip_area->y1 - layer->buf_area.y1),
|
||||
.iX = (int16_t)(t->clip_area.x1 - layer->buf_area.x1),
|
||||
.iY = (int16_t)(t->clip_area.y1 - layer->buf_area.y1),
|
||||
},
|
||||
.tSize = {
|
||||
.iWidth = (int16_t)lv_area_get_width(draw_task->clip_area),
|
||||
.iHeight = (int16_t)lv_area_get_height(draw_task->clip_area),
|
||||
.iWidth = (int16_t)lv_area_get_width(&t->clip_area),
|
||||
.iHeight = (int16_t)lv_area_get_height(&t->clip_area),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -318,13 +328,21 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
.pchBuffer = (uint8_t *)src_buf,
|
||||
};
|
||||
|
||||
#if ARM_2D_VERSION > 10201ul
|
||||
static const bool bIsNewFrame = true;
|
||||
arm_2d_point_float_t source_center, target_center;
|
||||
source_center.fX = draw_dsc->pivot.x;
|
||||
source_center.fY = draw_dsc->pivot.y;
|
||||
target_center.fX = target_region.tLocation.iX + draw_dsc->pivot.x;
|
||||
target_center.fY = target_region.tLocation.iY + draw_dsc->pivot.y;
|
||||
#else
|
||||
static arm_2d_location_t source_center, target_center;
|
||||
source_center.iX = draw_dsc->pivot.x;
|
||||
source_center.iY = draw_dsc->pivot.y;
|
||||
target_center = target_region.tLocation;
|
||||
target_center.iX += draw_dsc->pivot.x;
|
||||
target_center.iY += draw_dsc->pivot.y;
|
||||
|
||||
#endif
|
||||
if(LV_COLOR_FORMAT_A8 == src_cf) {
|
||||
|
||||
source_tile.tInfo.bHasEnforcedColour = true;
|
||||
@@ -332,6 +350,21 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
|
||||
if(LV_COLOR_FORMAT_RGB565 == des_cf) {
|
||||
|
||||
#if ARM_2D_VERSION > 10201ul
|
||||
arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_xy(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
lv_color_to_u16(draw_dsc->recolor),
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
#else
|
||||
arm_2d_rgb565_fill_colour_with_mask_opacity_and_transform(
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
@@ -343,9 +376,26 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
|
||||
#endif
|
||||
}
|
||||
else if(LV_COLOR_FORMAT_XRGB8888 == des_cf) {
|
||||
#if ARM_2D_VERSION > 10201ul
|
||||
|
||||
arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_xy(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
lv_color_to_int(draw_dsc->recolor),
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
|
||||
#else
|
||||
arm_2d_cccn888_fill_colour_with_mask_opacity_and_transform(
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
@@ -357,6 +407,7 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
break;
|
||||
@@ -377,6 +428,23 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
mask_tile.tInfo.tColourInfo.chScheme = ARM_2D_COLOUR_GRAY8;
|
||||
mask_tile.pchBuffer = (uint8_t *)mask_buf;
|
||||
|
||||
#if ARM_2D_VERSION > 10201ul
|
||||
|
||||
arm_2dp_rgb565_tile_transform_xy_with_src_mask_and_opacity(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&mask_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
|
||||
#else
|
||||
if(opa >= LV_OPA_MAX) {
|
||||
arm_2d_rgb565_tile_transform_with_src_mask(
|
||||
&source_tile,
|
||||
@@ -402,11 +470,27 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
&target_center
|
||||
);
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
else if(LV_COLOR_FORMAT_RGB565 == src_cf) {
|
||||
LV_ASSERT(LV_COLOR_FORMAT_RGB565 == des_cf);
|
||||
|
||||
#if ARM_2D_VERSION > 10201ul
|
||||
|
||||
arm_2dp_rgb565_tile_transform_xy_only_with_opacity(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
|
||||
#else
|
||||
if(opa >= LV_OPA_MAX) {
|
||||
#if ARM_2D_VERSION >= 10106
|
||||
arm_2d_rgb565_tile_transform_only(
|
||||
@@ -444,75 +528,81 @@ static inline lv_result_t lv_draw_sw_image_helium(
|
||||
&target_center
|
||||
);
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
#if 0 /* a temporary patch */
|
||||
#if ARM_2D_VERSION > 10201ul
|
||||
else if(LV_COLOR_FORMAT_ARGB8888 == src_cf) {
|
||||
LV_ASSERT(LV_COLOR_FORMAT_XRGB8888 == des_cf);
|
||||
if (LV_COLOR_FORMAT_XRGB8888 == des_cf) {
|
||||
source_tile.tInfo.bHasEnforcedColour = true;
|
||||
source_tile.tInfo.tColourInfo.chScheme = ARM_2D_COLOUR_CCCA8888;
|
||||
|
||||
static arm_2d_tile_t mask_tile;
|
||||
mask_tile = source_tile;
|
||||
|
||||
mask_tile.tInfo.bHasEnforcedColour = true;
|
||||
mask_tile.tInfo.tColourInfo.chScheme = ARM_2D_CHANNEL_8in32;
|
||||
mask_tile.pchBuffer = (uint8_t *)src_buf + 3;
|
||||
|
||||
if(opa >= LV_OPA_MAX) {
|
||||
arm_2d_cccn888_tile_transform_with_src_mask(
|
||||
arm_2dp_cccn888_tile_transform_xy_only_with_opacity(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&mask_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
&target_center
|
||||
);
|
||||
}
|
||||
else {
|
||||
arm_2d_cccn888_tile_transform_with_src_mask_and_opacity(
|
||||
&source_tile,
|
||||
&mask_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
}
|
||||
else if(LV_COLOR_FORMAT_RGB565 == des_cf) {
|
||||
source_tile.tInfo.bHasEnforcedColour = true;
|
||||
source_tile.tInfo.tColourInfo.chScheme = ARM_2D_COLOUR_CCCA8888;
|
||||
|
||||
arm_2dp_rgb565_tile_transform_xy_only_with_opacity(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
}
|
||||
}
|
||||
else if(LV_COLOR_FORMAT_XRGB8888 == src_cf) {
|
||||
LV_ASSERT(LV_COLOR_FORMAT_XRGB8888 == des_cf);
|
||||
|
||||
if(opa >= LV_OPA_MAX) {
|
||||
arm_2d_cccn888_tile_transform_only(
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
&target_center
|
||||
);
|
||||
}
|
||||
else {
|
||||
arm_2d_cccn888_tile_transform_only_with_opacity(
|
||||
if(LV_COLOR_FORMAT_XRGB8888 == des_cf) {
|
||||
arm_2dp_cccn888_tile_transform_xy_only_with_opacity(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
}
|
||||
else if(LV_COLOR_FORMAT_RGB565 == des_cf) {
|
||||
|
||||
}
|
||||
source_tile.tInfo.bHasEnforcedColour = true;
|
||||
source_tile.tInfo.tColourInfo.chScheme = ARM_2D_COLOUR_CCCA8888;
|
||||
|
||||
arm_2dp_rgb565_tile_transform_xy_only_with_opacity(
|
||||
NULL,
|
||||
&source_tile,
|
||||
&target_tile,
|
||||
NULL,
|
||||
source_center,
|
||||
ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)),
|
||||
draw_dsc->scale_x / 256.0f,
|
||||
draw_dsc->scale_y / 256.0f,
|
||||
opa,
|
||||
&target_center
|
||||
);
|
||||
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,11 @@ void lv_draw_sw_init(void)
|
||||
draw_sw_unit->base_unit.dispatch_cb = dispatch;
|
||||
draw_sw_unit->base_unit.evaluate_cb = evaluate;
|
||||
draw_sw_unit->base_unit.delete_cb = LV_USE_OS ? lv_draw_sw_delete : NULL;
|
||||
#if LV_USE_DRAW_ARM2D_SYNC
|
||||
draw_sw_unit->base_unit.name = "SW_ARM2D";
|
||||
#else
|
||||
draw_sw_unit->base_unit.name = "SW";
|
||||
#endif
|
||||
|
||||
#if LV_USE_OS
|
||||
uint32_t i;
|
||||
|
||||
@@ -298,7 +298,7 @@ static void img_draw_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_d
|
||||
img_coords, /* src_h, src_w, src_x1, src_y1 */
|
||||
img_stride, /* image stride */
|
||||
clipped_img_area, /* blend area */
|
||||
t, /* draw task*/
|
||||
t, /* target buffer, buffer width, buffer height, buffer stride */
|
||||
draw_dsc)) { /* opa, recolour_opa and colour */
|
||||
/*In the other cases every pixel need to be checked one-by-one*/
|
||||
transform_and_recolor(t, draw_dsc, decoder_dsc, sup, img_coords, clipped_img_area);
|
||||
@@ -569,7 +569,7 @@ static void recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_b
|
||||
lv_opa_t mix_inv = 255 - mix;
|
||||
|
||||
if(cf == LV_COLOR_FORMAT_RGB565A8 || cf == LV_COLOR_FORMAT_RGB565) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_RECOLOR(dest_buf, blend_area, color, mix)) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_RECOLOR(dest_buf, relative_area, color, mix)) {
|
||||
const uint8_t * src_buf_tmp = src_buf + src_stride * relative_area.y1 + relative_area.x1 * 2;
|
||||
int32_t img_stride_px = src_stride / 2;
|
||||
|
||||
@@ -608,7 +608,7 @@ static void recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_b
|
||||
}
|
||||
}
|
||||
else if(cf == LV_COLOR_FORMAT_RGB565_SWAPPED) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_SWAPPED_RECOLOR(dest_buf, blend_area, color, mix)) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_SWAPPED_RECOLOR(dest_buf, relative_area, color, mix)) {
|
||||
const uint8_t * src_buf_tmp = src_buf + src_stride * relative_area.y1 + relative_area.x1 * 2;
|
||||
int32_t img_stride_px = src_stride / 2;
|
||||
|
||||
@@ -648,7 +648,7 @@ static void recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_b
|
||||
}
|
||||
}
|
||||
else if(cf == LV_COLOR_FORMAT_RGB888 || cf == LV_COLOR_FORMAT_XRGB8888 || cf == LV_COLOR_FORMAT_ARGB8888) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_RGB888_RECOLOR(dest_buf, blend_area, color, mix, cf_final)) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_RGB888_RECOLOR(dest_buf, relative_area, color, mix, cf)) {
|
||||
uint32_t px_size = lv_color_format_get_size(cf);
|
||||
src_buf += src_stride * relative_area.y1 + relative_area.x1 * px_size;
|
||||
if(mix >= LV_OPA_MAX) {
|
||||
@@ -688,7 +688,7 @@ static void recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_b
|
||||
}
|
||||
}
|
||||
else if(cf == LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_ARGB8888_PREMULTIPLIED_RECOLOR(dest_buf, blend_area, color, mix, cf_final)) {
|
||||
if(LV_RESULT_INVALID == LV_DRAW_SW_ARGB8888_PREMULTIPLIED_RECOLOR(dest_buf, relative_area, color, mix, cf)) {
|
||||
uint32_t px_size = lv_color_format_get_size(cf);
|
||||
src_buf += src_stride * relative_area.y1 + relative_area.x1 * px_size;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user