feat(draw_sw): add image clip_radius and mask before transformation (#7244)
Co-authored-by: Liam <30486941+liamHowatt@users.noreply.github.com>
@@ -0,0 +1,85 @@
|
|||||||
|
#ifdef __has_include
|
||||||
|
#if __has_include("lvgl.h")
|
||||||
|
#ifndef LV_LVGL_H_INCLUDE_SIMPLE
|
||||||
|
#define LV_LVGL_H_INCLUDE_SIMPLE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_RENDER_LVGL_LOGO_RGB565A8
|
||||||
|
#define LV_ATTRIBUTE_IMG_RENDER_LVGL_LOGO_RGB565A8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static const
|
||||||
|
LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_RENDER_LVGL_LOGO_RGB565A8
|
||||||
|
uint8_t img_render_lvgl_logo_rgb565a8_map[] = {
|
||||||
|
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0x55, 0xad, 0x2c, 0x63, 0xeb, 0x5a, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0x0c, 0x5b, 0xeb, 0x5a, 0xef, 0x7b, 0xfb, 0xde, 0xff, 0xff,
|
||||||
|
0xdf, 0xff, 0x30, 0x84, 0x86, 0x29, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x65, 0x29, 0x65, 0x29, 0x86, 0x29, 0x49, 0x42, 0x9a, 0xce,
|
||||||
|
0x55, 0xad, 0x86, 0x29, 0xa7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0x86, 0x29, 0x0c, 0x5b, 0x6d, 0x6b, 0xa7, 0x31, 0x65, 0x29, 0xeb, 0x5a,
|
||||||
|
0x2c, 0x63, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0x66, 0x29, 0xef, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x9c, 0x65, 0x29, 0xe7, 0x39,
|
||||||
|
0xeb, 0x5a, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0x45, 0x21, 0x96, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xde, 0x86, 0x29, 0xe7, 0x39,
|
||||||
|
0x0c, 0x5b, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0x86, 0x29, 0x0c, 0x63, 0x5d, 0xef, 0x9e, 0xf7, 0x10, 0x7c, 0x66, 0x29, 0xe7, 0x39,
|
||||||
|
0x0c, 0x5b, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0x86, 0x29, 0x28, 0x42, 0x69, 0x4a, 0x86, 0x29, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xeb, 0x5a, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa6, 0x31, 0x86, 0x29, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0x4d, 0x63, 0x45, 0x21, 0x65, 0x21, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x21, 0x86, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0x3c, 0xe7, 0x35, 0x9d, 0xf4, 0x94, 0xf4, 0x94, 0xf4, 0x94, 0xf4, 0x94, 0xf4, 0x94, 0x14, 0x95, 0xf3, 0x94, 0xeb, 0x5a, 0x86, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xde, 0xff, 0xd8, 0xfe, 0xb7, 0xfe, 0xb8, 0xfe, 0xb8, 0xfe, 0xb8, 0xfe, 0xb8, 0xfe, 0xb7, 0xfe, 0xd8, 0xfe, 0xbe, 0xf7, 0x4d, 0x63, 0x86, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xad, 0xfc, 0xa2, 0xf2, 0xa2, 0xf2, 0xa2, 0xf2, 0xa2, 0xf2, 0xa2, 0xf2, 0xa2, 0xf2, 0xa2, 0xf2, 0x81, 0xf2, 0x55, 0xfe, 0x18, 0xbe, 0x65, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xc9, 0xf3, 0xe3, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xa2, 0xf2, 0xb2, 0xfd, 0x59, 0xbe, 0x65, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xe9, 0xf3, 0xe3, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xa2, 0xf2, 0xb2, 0xfd, 0x39, 0xbe, 0x65, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xe9, 0xf3, 0xe3, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xa2, 0xf2, 0xb2, 0xfd, 0x39, 0xbe, 0x65, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xe9, 0xf3, 0xe3, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xa2, 0xf2, 0xb2, 0xfd, 0x39, 0xbe, 0x65, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xe9, 0xf3, 0xe3, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xa2, 0xf2, 0xb2, 0xfd, 0x39, 0xbe, 0x65, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xe9, 0xf3, 0xe3, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xe4, 0xf2, 0xa2, 0xf2, 0xb2, 0xfd, 0x39, 0xbe, 0x65, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xe9, 0xf3, 0xa2, 0xf2, 0xc3, 0xf2, 0xc3, 0xf2, 0xc3, 0xf2, 0xc3, 0xf2, 0xc3, 0xf2, 0xc3, 0xf2, 0x61, 0xf2, 0xb2, 0xfd, 0x39, 0xbe, 0x24, 0x21, 0x86, 0x29, 0x86, 0x29, 0x86, 0x29, 0x86, 0x29, 0x86, 0x29, 0x86, 0x29, 0x86, 0x29, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0x56, 0xfe, 0x0a, 0xfc, 0xe9, 0xfb, 0xe9, 0xfb, 0xe9, 0xfb, 0xe9, 0xfb, 0xe9, 0xfb, 0xe9, 0xfb, 0x09, 0xfc, 0x1a, 0xff, 0x7d, 0xef, 0x6d, 0x6b, 0xeb, 0x5a, 0x0b, 0x5b, 0x0b, 0x5b, 0x0b, 0x5b, 0x0b, 0x5b, 0x0b, 0x5b, 0x0b, 0x5b, 0x49, 0x42, 0x86, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xff, 0xff, 0xfe, 0xf7, 0xde, 0xef, 0xde, 0xf7, 0xde, 0xf7, 0xde, 0xf7, 0xde, 0xf7, 0xde, 0xef, 0xfe, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xef, 0x9f, 0xef, 0x9f, 0xef, 0x9f, 0xef, 0x9f, 0xef, 0x9f, 0xef, 0x9f, 0xef, 0x9d, 0xf7, 0x8e, 0x6b, 0x86, 0x29, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0x56, 0xb7, 0xae, 0x6e, 0xae, 0x6e, 0xae, 0x6e, 0xae, 0x6e, 0xae, 0x6e, 0xae, 0x6e, 0xae, 0x6e, 0xae, 0x6e, 0xba, 0xd7, 0x3f, 0xe7, 0xbf, 0x53, 0x7f, 0x43, 0x9f, 0x4b, 0x9f, 0x4b, 0x9f, 0x4b, 0x9f, 0x4b, 0x9f, 0x4b, 0x5f, 0x43, 0x9f, 0x9d, 0x3c, 0xe7, 0xc7, 0x31, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xd0, 0x7e, 0x8c, 0x5e, 0x8c, 0x5e, 0x8c, 0x5e, 0x8c, 0x5e, 0x8c, 0x5e, 0x8c, 0x5e, 0x8c, 0x5e, 0x6b, 0x56, 0x95, 0xb7, 0x7f, 0xc6, 0xdf, 0x2a, 0x1f, 0x3b, 0x1f, 0x3b, 0x1f, 0x3b, 0x1f, 0x3b, 0x1f, 0x3b, 0x1f, 0x3b, 0xff, 0x32, 0x1f, 0x5c, 0x7d, 0xef, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xf0, 0x86, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8b, 0x5e, 0x96, 0xb7, 0x7f, 0xc6, 0xff, 0x32, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0xff, 0x32, 0x3f, 0x64, 0x7d, 0xef, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xf0, 0x86, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8b, 0x5e, 0x96, 0xb7, 0x7f, 0xc6, 0xff, 0x32, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0xff, 0x32, 0x3f, 0x64, 0x7d, 0xef, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xf0, 0x86, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8b, 0x5e, 0x96, 0xb7, 0x7f, 0xc6, 0xff, 0x32, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0xff, 0x32, 0x3f, 0x64, 0x7d, 0xef, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0xf0, 0x7e, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8b, 0x5e, 0x96, 0xb7, 0x7f, 0xc6, 0xff, 0x32, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0xff, 0x32, 0x3f, 0x64, 0x7d, 0xef, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa7, 0x31, 0xe7, 0x39,
|
||||||
|
0x13, 0x9f, 0x8c, 0x5e, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8b, 0x5e, 0x96, 0xb7, 0x7f, 0xc6, 0xff, 0x32, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0xff, 0x32, 0x3f, 0x64, 0x7d, 0xef, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xc7, 0x31, 0xa6, 0x31, 0x28, 0x42,
|
||||||
|
0xbc, 0xe7, 0xae, 0x6e, 0x8c, 0x5e, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8c, 0x66, 0x8b, 0x56, 0x95, 0xb7, 0x7f, 0xc6, 0xdf, 0x2a, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0x3f, 0x3b, 0xff, 0x32, 0x1f, 0x64, 0x5d, 0xef, 0x08, 0x3a, 0x86, 0x29, 0xa7, 0x31, 0xa7, 0x31, 0xa7, 0x31, 0xa7, 0x31, 0xa6, 0x31, 0x45, 0x21, 0x92, 0x8c,
|
||||||
|
0xff, 0xff, 0xbb, 0xdf, 0xd0, 0x7e, 0xad, 0x66, 0xad, 0x66, 0xad, 0x66, 0xad, 0x66, 0xad, 0x66, 0x8d, 0x66, 0xb9, 0xd7, 0x1f, 0xe7, 0x7f, 0x4b, 0x5f, 0x43, 0x5f, 0x43, 0x5f, 0x43, 0x5f, 0x43, 0x5f, 0x43, 0x5f, 0x43, 0x1f, 0x3b, 0x1f, 0x8d, 0xdf, 0xff, 0x2c, 0x63, 0xa7, 0x31, 0xe7, 0x39, 0xe7, 0x39, 0xe7, 0x39, 0xe7, 0x39, 0x28, 0x42, 0x92, 0x8c, 0xdf, 0xff,
|
||||||
|
0x00, 0x00, 0x62, 0xb7, 0xc3, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc2, 0xc4, 0x94, 0x26, 0x00, 0x03, 0x90, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0x34,
|
||||||
|
0x61, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x1c, 0x68, 0x73, 0x72, 0x72, 0x72, 0x72, 0x70, 0x76, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0x07, 0x3e, 0x47, 0x46, 0x46, 0x46, 0x46, 0x48, 0x3c, 0x08, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x59, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7a, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x78, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x50, 0xbe, 0xc7, 0xc6, 0xc6, 0xc6, 0xc6, 0xc7, 0xbe, 0x2e, 0x11, 0xac, 0xc3, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0x00, 0x09, 0x12, 0x11, 0x11, 0x11, 0x11, 0x12, 0x08, 0x00, 0x00, 0x03, 0x15, 0x13, 0x13, 0x13, 0x13, 0x13, 0x11, 0x0d, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x61, 0xd9, 0xe3, 0xe2, 0xe2, 0xe2, 0xe2, 0xe3, 0xd8, 0x33, 0x1e, 0xd3, 0xe8, 0xe6, 0xe6, 0xe6, 0xe6, 0xe7, 0xe5, 0x78, 0x19, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x10, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x13, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x13, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x13, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
|
||||||
|
0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x13, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x13, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7,
|
||||||
|
0x1e, 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x13, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0x00, 0x2a, 0xb7, 0xec, 0xf2, 0xf1, 0xf1, 0xf3, 0xe8, 0x3b, 0x21, 0xe0, 0xf4, 0xf2, 0xf2, 0xf2, 0xf2, 0xf3, 0xf2, 0x8c, 0x05, 0xb8, 0xf4, 0xf3, 0xf3, 0xf3, 0xf4, 0xe3, 0x83, 0x04,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_image_dsc_t img_render_lvgl_logo_rgb565a8 = {
|
||||||
|
.header.magic = LV_IMAGE_HEADER_MAGIC,
|
||||||
|
.header.cf = LV_COLOR_FORMAT_RGB565A8,
|
||||||
|
.header.flags = 0,
|
||||||
|
.header.w = 30,
|
||||||
|
.header.h = 30,
|
||||||
|
.header.stride = 60,
|
||||||
|
.data_size = sizeof(img_render_lvgl_logo_rgb565a8_map),
|
||||||
|
.data = img_render_lvgl_logo_rgb565a8_map,
|
||||||
|
};
|
||||||
|
|
||||||
@@ -333,6 +333,7 @@ static void image_core_cb(lv_obj_t * parent, bool recolor, uint32_t startAt)
|
|||||||
LV_IMAGE_DECLARE(img_render_lvgl_logo_xrgb8888);
|
LV_IMAGE_DECLARE(img_render_lvgl_logo_xrgb8888);
|
||||||
LV_IMAGE_DECLARE(img_render_lvgl_logo_rgb888);
|
LV_IMAGE_DECLARE(img_render_lvgl_logo_rgb888);
|
||||||
LV_IMAGE_DECLARE(img_render_lvgl_logo_rgb565);
|
LV_IMAGE_DECLARE(img_render_lvgl_logo_rgb565);
|
||||||
|
LV_IMAGE_DECLARE(img_render_lvgl_logo_rgb565a8);
|
||||||
LV_IMAGE_DECLARE(img_render_lvgl_logo_argb8888);
|
LV_IMAGE_DECLARE(img_render_lvgl_logo_argb8888);
|
||||||
LV_IMAGE_DECLARE(img_render_lvgl_logo_l8);
|
LV_IMAGE_DECLARE(img_render_lvgl_logo_l8);
|
||||||
LV_IMAGE_DECLARE(img_render_lvgl_logo_i1);
|
LV_IMAGE_DECLARE(img_render_lvgl_logo_i1);
|
||||||
@@ -342,6 +343,7 @@ static void image_core_cb(lv_obj_t * parent, bool recolor, uint32_t startAt)
|
|||||||
&img_render_lvgl_logo_xrgb8888,
|
&img_render_lvgl_logo_xrgb8888,
|
||||||
&img_render_lvgl_logo_rgb888,
|
&img_render_lvgl_logo_rgb888,
|
||||||
&img_render_lvgl_logo_rgb565,
|
&img_render_lvgl_logo_rgb565,
|
||||||
|
&img_render_lvgl_logo_rgb565a8,
|
||||||
&img_render_lvgl_logo_l8,
|
&img_render_lvgl_logo_l8,
|
||||||
&img_render_lvgl_logo_i1,
|
&img_render_lvgl_logo_i1,
|
||||||
};
|
};
|
||||||
@@ -351,6 +353,7 @@ static void image_core_cb(lv_obj_t * parent, bool recolor, uint32_t startAt)
|
|||||||
"XRGB\n8888",
|
"XRGB\n8888",
|
||||||
"RGB\n888",
|
"RGB\n888",
|
||||||
"RGB\n565",
|
"RGB\n565",
|
||||||
|
"RGB\n565A8",
|
||||||
"L8",
|
"L8",
|
||||||
"I1",
|
"I1",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1133,7 +1133,10 @@ static void refr_obj(lv_layer_t * layer, lv_obj_t * obj)
|
|||||||
* If it really doesn't need alpha use it. Else switch to the ARGB size*/
|
* If it really doesn't need alpha use it. Else switch to the ARGB size*/
|
||||||
layer_area_act.y2 = layer_area_act.y1 + max_rgb_row_height - 1;
|
layer_area_act.y2 = layer_area_act.y1 + max_rgb_row_height - 1;
|
||||||
if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
|
if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
|
||||||
bool area_need_alpha = alpha_test_area_on_obj(obj, &layer_area_act);
|
|
||||||
|
const void * bitmap_mask_src = lv_obj_get_style_bitmap_mask_src(obj, 0);
|
||||||
|
bool area_need_alpha = bitmap_mask_src || alpha_test_area_on_obj(obj, &layer_area_act);
|
||||||
|
|
||||||
if(area_need_alpha) {
|
if(area_need_alpha) {
|
||||||
layer_area_act.y2 = layer_area_act.y1 + max_argb_row_height - 1;
|
layer_area_act.y2 = layer_area_act.y1 + max_argb_row_height - 1;
|
||||||
if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
|
if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
|
||||||
@@ -1170,7 +1173,7 @@ static void refr_obj(lv_layer_t * layer, lv_obj_t * obj)
|
|||||||
layer_draw_dsc.skew_y = lv_obj_get_style_transform_skew_y(obj, 0);
|
layer_draw_dsc.skew_y = lv_obj_get_style_transform_skew_y(obj, 0);
|
||||||
layer_draw_dsc.blend_mode = lv_obj_get_style_blend_mode(obj, 0);
|
layer_draw_dsc.blend_mode = lv_obj_get_style_blend_mode(obj, 0);
|
||||||
layer_draw_dsc.antialias = disp_refr->antialiasing;
|
layer_draw_dsc.antialias = disp_refr->antialiasing;
|
||||||
layer_draw_dsc.bitmap_mask_src = lv_obj_get_style_bitmap_mask_src(obj, 0);
|
layer_draw_dsc.bitmap_mask_src = bitmap_mask_src;
|
||||||
layer_draw_dsc.image_area = obj_draw_size;
|
layer_draw_dsc.image_area = obj_draw_size;
|
||||||
layer_draw_dsc.src = new_layer;
|
layer_draw_dsc.src = new_layer;
|
||||||
|
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ void lv_draw_rect(lv_layer_t * layer, const lv_draw_rect_dsc_t * dsc, const lv_a
|
|||||||
bg_image_dsc->tile = dsc->bg_image_tiled;
|
bg_image_dsc->tile = dsc->bg_image_tiled;
|
||||||
bg_image_dsc->header = header;
|
bg_image_dsc->header = header;
|
||||||
bg_image_dsc->clip_radius = dsc->radius;
|
bg_image_dsc->clip_radius = dsc->radius;
|
||||||
|
bg_image_dsc->image_area = *coords;
|
||||||
t->type = LV_DRAW_TASK_TYPE_IMAGE;
|
t->type = LV_DRAW_TASK_TYPE_IMAGE;
|
||||||
lv_draw_finalize_task_creation(layer, t);
|
lv_draw_finalize_task_creation(layer, t);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,11 +152,7 @@ static int32_t evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool transformed = draw_dsc->rotation != 0 || draw_dsc->scale_x != LV_SCALE_NONE ||
|
|
||||||
draw_dsc->scale_y != LV_SCALE_NONE ? true : false;
|
|
||||||
|
|
||||||
bool masked = draw_dsc->bitmap_mask_src != NULL;
|
bool masked = draw_dsc->bitmap_mask_src != NULL;
|
||||||
if(masked && transformed) return 0;
|
|
||||||
|
|
||||||
lv_color_format_t cf = draw_dsc->header.cf;
|
lv_color_format_t cf = draw_dsc->header.cf;
|
||||||
if(masked && (cf == LV_COLOR_FORMAT_A8 || cf == LV_COLOR_FORMAT_RGB565A8)) {
|
if(masked && (cf == LV_COLOR_FORMAT_A8 || cf == LV_COLOR_FORMAT_RGB565A8)) {
|
||||||
|
|||||||
@@ -81,11 +81,6 @@ static void transform_l8_to_al88(const uint8_t * src, int32_t src_w, int32_t src
|
|||||||
int32_t xs_ups, int32_t ys_ups, int32_t xs_step, int32_t ys_step,
|
int32_t xs_ups, int32_t ys_ups, int32_t xs_step, int32_t ys_step,
|
||||||
int32_t x_end, uint8_t * abuf, bool aa);
|
int32_t x_end, uint8_t * abuf, bool aa);
|
||||||
#endif
|
#endif
|
||||||
#if LV_DRAW_SW_SUPPORT_ARGB8888
|
|
||||||
static void transform_l8_to_argb8888(const uint8_t * src, int32_t src_w, int32_t src_h, int32_t src_stride,
|
|
||||||
int32_t xs_ups, int32_t ys_ups, int32_t xs_step, int32_t ys_step,
|
|
||||||
int32_t x_end, uint8_t * abuf, bool aa);
|
|
||||||
#endif
|
|
||||||
#endif /*LV_DRAW_SW_SUPPORT_L8*/
|
#endif /*LV_DRAW_SW_SUPPORT_L8*/
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
@@ -135,10 +130,7 @@ void lv_draw_sw_transform(lv_draw_unit_t * draw_unit, const lv_area_t * dest_are
|
|||||||
|
|
||||||
int32_t dest_stride_a8 = dest_w;
|
int32_t dest_stride_a8 = dest_w;
|
||||||
int32_t dest_stride;
|
int32_t dest_stride;
|
||||||
if(src_cf == LV_COLOR_FORMAT_L8) {
|
if(src_cf == LV_COLOR_FORMAT_RGB888) {
|
||||||
dest_stride = dest_w * ((draw_dsc->recolor_opa >= LV_OPA_MIN) ? 4 : 2);
|
|
||||||
}
|
|
||||||
else if(src_cf == LV_COLOR_FORMAT_RGB888) {
|
|
||||||
dest_stride = dest_w * lv_color_format_get_size(LV_COLOR_FORMAT_ARGB8888);
|
dest_stride = dest_w * lv_color_format_get_size(LV_COLOR_FORMAT_ARGB8888);
|
||||||
}
|
}
|
||||||
else if((src_cf == LV_COLOR_FORMAT_RGB565A8) || (src_cf == LV_COLOR_FORMAT_L8)) {
|
else if((src_cf == LV_COLOR_FORMAT_RGB565A8) || (src_cf == LV_COLOR_FORMAT_L8)) {
|
||||||
@@ -272,21 +264,10 @@ void lv_draw_sw_transform(lv_draw_unit_t * draw_unit, const lv_area_t * dest_are
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LV_DRAW_SW_SUPPORT_L8 && (LV_DRAW_SW_SUPPORT_ARGB8888 || LV_DRAW_SW_SUPPORT_AL88)
|
#if LV_DRAW_SW_SUPPORT_L8 && LV_DRAW_SW_SUPPORT_AL88
|
||||||
case LV_COLOR_FORMAT_L8:
|
case LV_COLOR_FORMAT_L8:
|
||||||
#if LV_DRAW_SW_SUPPORT_ARGB8888 && !LV_DRAW_SW_SUPPORT_AL88
|
|
||||||
transform_l8_to_argb8888(src_buf, src_w, src_h, src_stride, xs_ups, ys_ups, xs_step_256, ys_step_256, dest_w, dest_buf,
|
|
||||||
aa);
|
|
||||||
#elif LV_DRAW_SW_SUPPORT_AL88 && !LV_DRAW_SW_SUPPORT_ARGB8888
|
|
||||||
transform_l8_to_al88(src_buf, src_w, src_h, src_stride, xs_ups, ys_ups, xs_step_256, ys_step_256, dest_w, dest_buf, aa);
|
transform_l8_to_al88(src_buf, src_w, src_h, src_stride, xs_ups, ys_ups, xs_step_256, ys_step_256, dest_w, dest_buf, aa);
|
||||||
#else
|
|
||||||
if(draw_dsc->recolor_opa >= LV_OPA_MIN)
|
|
||||||
transform_l8_to_argb8888(src_buf, src_w, src_h, src_stride, xs_ups, ys_ups, xs_step_256, ys_step_256, dest_w, dest_buf,
|
|
||||||
aa);
|
|
||||||
else
|
|
||||||
transform_l8_to_al88(src_buf, src_w, src_h, src_stride, xs_ups, ys_ups, xs_step_256, ys_step_256, dest_w, dest_buf, aa);
|
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
#endif /*LV_DRAW_SW_SUPPORT_L8 && (LV_DRAW_SW_SUPPORT_ARGB8888 || LV_DRAW_SW_SUPPORT_AL88)*/
|
#endif /*LV_DRAW_SW_SUPPORT_L8 && (LV_DRAW_SW_SUPPORT_ARGB8888 || LV_DRAW_SW_SUPPORT_AL88)*/
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -687,11 +668,8 @@ static void transform_a8(const uint8_t * src, int32_t src_w, int32_t src_h, int3
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LV_DRAW_SW_SUPPORT_L8
|
#if LV_DRAW_SW_SUPPORT_L8 && LV_DRAW_SW_SUPPORT_AL88
|
||||||
|
|
||||||
#if LV_DRAW_SW_SUPPORT_AL88
|
|
||||||
|
|
||||||
/* L8 will be transformed into an AL88 buffer, because it will not be recolored */
|
|
||||||
static void transform_l8_to_al88(const uint8_t * src, int32_t src_w, int32_t src_h, int32_t src_stride,
|
static void transform_l8_to_al88(const uint8_t * src, int32_t src_w, int32_t src_h, int32_t src_stride,
|
||||||
int32_t xs_ups, int32_t ys_ups, int32_t xs_step, int32_t ys_step,
|
int32_t xs_ups, int32_t ys_ups, int32_t xs_step, int32_t ys_step,
|
||||||
int32_t x_end, uint8_t * dest_buf, bool aa)
|
int32_t x_end, uint8_t * dest_buf, bool aa)
|
||||||
@@ -768,89 +746,7 @@ static void transform_l8_to_al88(const uint8_t * src, int32_t src_w, int32_t src
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /*LV_DRAW_SW_SUPPORT_AL88*/
|
#endif /*LV_DRAW_SW_SUPPORT_L8 && LV_DRAW_SW_SUPPORT_AL88*/
|
||||||
|
|
||||||
#if LV_DRAW_SW_SUPPORT_ARGB8888
|
|
||||||
|
|
||||||
/* L8 has to be transformed into an ARGB8888 buffer, because it will be recolored as well */
|
|
||||||
static void transform_l8_to_argb8888(const uint8_t * src, int32_t src_w, int32_t src_h, int32_t src_stride,
|
|
||||||
int32_t xs_ups, int32_t ys_ups, int32_t xs_step, int32_t ys_step,
|
|
||||||
int32_t x_end, uint8_t * dest_buf, bool aa)
|
|
||||||
{
|
|
||||||
int32_t xs_ups_start = xs_ups;
|
|
||||||
int32_t ys_ups_start = ys_ups;
|
|
||||||
lv_color32_t * dest_c32 = (lv_color32_t *)dest_buf;
|
|
||||||
|
|
||||||
int32_t x;
|
|
||||||
for(x = 0; x < x_end; x++) {
|
|
||||||
xs_ups = xs_ups_start + ((xs_step * x) >> 8);
|
|
||||||
ys_ups = ys_ups_start + ((ys_step * x) >> 8);
|
|
||||||
|
|
||||||
int32_t xs_int = xs_ups >> 8;
|
|
||||||
int32_t ys_int = ys_ups >> 8;
|
|
||||||
|
|
||||||
/*Fully out of the image*/
|
|
||||||
if(xs_int < 0 || xs_int >= src_w || ys_int < 0 || ys_int >= src_h) {
|
|
||||||
*((uint32_t *)&dest_c32[x]) = 0L;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Get the direction the hor and ver neighbor
|
|
||||||
*`fract` will be in range of 0x00..0xFF and `next` (+/-1) indicates the direction*/
|
|
||||||
int32_t xs_fract = xs_ups & 0xFF;
|
|
||||||
int32_t ys_fract = ys_ups & 0xFF;
|
|
||||||
|
|
||||||
int32_t x_next;
|
|
||||||
int32_t y_next;
|
|
||||||
if(xs_fract < 0x80) {
|
|
||||||
x_next = -1;
|
|
||||||
xs_fract = (0x7F - xs_fract) * 2;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
x_next = 1;
|
|
||||||
xs_fract = (xs_fract - 0x80) * 2;
|
|
||||||
}
|
|
||||||
if(ys_fract < 0x80) {
|
|
||||||
y_next = -1;
|
|
||||||
ys_fract = (0x7F - ys_fract) * 2;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
y_next = 1;
|
|
||||||
ys_fract = (ys_fract - 0x80) * 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
const uint8_t * src_tmp = src;
|
|
||||||
src_tmp += ys_int * src_stride + xs_int;
|
|
||||||
dest_c32[x].red = dest_c32[x].green = dest_c32[x].blue = src_tmp[0];
|
|
||||||
dest_c32[x].alpha = 255;
|
|
||||||
if(aa &&
|
|
||||||
xs_int + x_next >= 0 &&
|
|
||||||
xs_int + x_next <= src_w - 1 &&
|
|
||||||
ys_int + y_next >= 0 &&
|
|
||||||
ys_int + y_next <= src_h - 1) {
|
|
||||||
|
|
||||||
lv_opa_t a_ver = src_tmp[x_next];
|
|
||||||
lv_opa_t a_hor = src_tmp[y_next * src_stride];
|
|
||||||
|
|
||||||
if(a_ver != src_tmp[0]) a_ver = ((a_ver * ys_fract) + (src_tmp[0] * (0x100 - ys_fract))) >> 8;
|
|
||||||
if(a_hor != src_tmp[0]) a_hor = ((a_hor * xs_fract) + (src_tmp[0] * (0x100 - xs_fract))) >> 8;
|
|
||||||
dest_c32[x].red = dest_c32[x].green = dest_c32[x].blue = (a_ver + a_hor) >> 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
/*Partially out of the image*/
|
|
||||||
if((xs_int == 0 && x_next < 0) || (xs_int == src_w - 1 && x_next > 0)) {
|
|
||||||
dest_c32[x].alpha = (src_tmp[0] * (0xFF - xs_fract)) >> 8;
|
|
||||||
}
|
|
||||||
else if((ys_int == 0 && y_next < 0) || (ys_int == src_h - 1 && y_next > 0)) {
|
|
||||||
dest_c32[x].alpha = (src_tmp[0] * (0xFF - ys_fract)) >> 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /*LV_DRAW_SW_SUPPORT_ARGB8888*/
|
|
||||||
|
|
||||||
#endif /*LV_DRAW_SW_SUPPORT_L8*/
|
|
||||||
|
|
||||||
static void transform_point_upscaled(point_transform_dsc_t * t, int32_t xin, int32_t yin, int32_t * xout,
|
static void transform_point_upscaled(point_transform_dsc_t * t, int32_t xin, int32_t yin, int32_t * xout,
|
||||||
int32_t * yout)
|
int32_t * yout)
|
||||||
|
|||||||
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.8 KiB |