mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-28 22:30:49 +08:00
feat(arm-2d): upgrade to v1.1.6 and slightly improve the performance
This commit is contained in:
committed by
Gabor Kiss-Vamosi
parent
f292ddde34
commit
03871ad18d
@@ -17,6 +17,7 @@ extern "C" {
|
|||||||
*********************/
|
*********************/
|
||||||
|
|
||||||
#include "../../../lv_conf_internal.h"
|
#include "../../../lv_conf_internal.h"
|
||||||
|
#include "../../../misc/lv_area_private.h"
|
||||||
|
|
||||||
#if LV_USE_DRAW_ARM2D_SYNC
|
#if LV_USE_DRAW_ARM2D_SYNC
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,12 @@ extern "C" {
|
|||||||
#elif defined(__IS_COMPILER_GCC__)
|
#elif defined(__IS_COMPILER_GCC__)
|
||||||
#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
|
#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if ARM_2D_VERSION < 10106ul
|
||||||
|
#error Please upgrade to Arm-2D v1.1.6 or above
|
||||||
|
#endif
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
* DEFINES
|
* DEFINES
|
||||||
*********************/
|
*********************/
|
||||||
@@ -301,20 +307,15 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_arm2d(lv
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint16_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint16_t);
|
||||||
|
|
||||||
__arm_2d_impl_gray8_colour_filling_with_opacity((uint8_t *)dsc->mask_buf,
|
__arm_2d_impl_rgb565_tile_copy_with_src_mask_and_opacity((uint16_t *)dsc->src_buf,
|
||||||
dsc->mask_stride,
|
src_stride,
|
||||||
&draw_size,
|
(uint8_t *)dsc->mask_buf,
|
||||||
0x00,
|
dsc->mask_stride,
|
||||||
255 - dsc->opa);
|
&draw_size,
|
||||||
|
(uint16_t *)dsc->dest_buf,
|
||||||
__arm_2d_impl_rgb565_src_msk_copy((uint16_t *)dsc->src_buf,
|
des_stride,
|
||||||
src_stride,
|
&draw_size,
|
||||||
(uint8_t *)dsc->mask_buf,
|
dsc->opa);
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint16_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,20 +429,15 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_arm2d(lv
|
|||||||
des_stride,
|
des_stride,
|
||||||
&draw_size);
|
&draw_size);
|
||||||
|
|
||||||
__arm_2d_impl_gray8_colour_filling_with_opacity((uint8_t *)dsc->mask_buf,
|
__arm_2d_impl_rgb565_tile_copy_with_src_mask_and_opacity(tmp_buf,
|
||||||
dsc->mask_stride,
|
des_stride,
|
||||||
&draw_size,
|
(uint8_t *)dsc->mask_buf,
|
||||||
0x00,
|
dsc->mask_stride,
|
||||||
255 - dsc->opa);
|
&draw_size,
|
||||||
|
(uint16_t *)dsc->dest_buf,
|
||||||
__arm_2d_impl_rgb565_src_msk_copy(tmp_buf,
|
des_stride,
|
||||||
des_stride,
|
&draw_size,
|
||||||
(uint8_t *)dsc->mask_buf,
|
dsc->opa);
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint16_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_free(tmp_buf);
|
lv_free(tmp_buf);
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
@@ -453,37 +449,12 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_arm2d(lv_draw_sw_bl
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
|
|
||||||
__arm_2d_impl_ccca8888_to_rgb565((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_to_rgb565((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint16_t *)dsc->dest_buf,
|
(uint16_t *)dsc->dest_buf,
|
||||||
des_stride,
|
des_stride,
|
||||||
&draw_size);
|
&draw_size);
|
||||||
|
|
||||||
#else
|
|
||||||
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_buf) {
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
__arm_2d_impl_cccn888_to_rgb565((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
(uint16_t *)tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
__arm_2d_impl_rgb565_src_chn_msk_copy(tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint16_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_free(tmp_buf);
|
|
||||||
#endif
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -493,7 +464,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_opa_arm2d(lv_d
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
__arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_opacity((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_opacity((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint16_t *)dsc->dest_buf,
|
(uint16_t *)dsc->dest_buf,
|
||||||
@@ -501,50 +471,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_opa_arm2d(lv_d
|
|||||||
&draw_size,
|
&draw_size,
|
||||||
dsc->opa);
|
dsc->opa);
|
||||||
|
|
||||||
#else
|
|
||||||
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_buf) {
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
uint8_t * tmp_msk = (uint8_t *)lv_malloc(des_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_msk) {
|
|
||||||
lv_free(tmp_buf);
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* get rgb565 */
|
|
||||||
__arm_2d_impl_cccn888_to_rgb565((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
(uint16_t *)tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_memzero(tmp_msk, des_stride * dsc->dest_h);
|
|
||||||
|
|
||||||
/* get mask */
|
|
||||||
__arm_2d_impl_gray8_colour_filling_channel_mask_opacity(tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
0xFF,
|
|
||||||
dsc->opa);
|
|
||||||
|
|
||||||
__arm_2d_impl_rgb565_src_msk_copy(tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint16_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_free(tmp_msk);
|
|
||||||
lv_free(tmp_buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -554,8 +480,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_mask_arm2d(lv_
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
|
|
||||||
__arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_src_mask((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_src_mask((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint8_t *)dsc->mask_buf,
|
(uint8_t *)dsc->mask_buf,
|
||||||
@@ -564,49 +488,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_mask_arm2d(lv_
|
|||||||
(uint16_t *)dsc->dest_buf,
|
(uint16_t *)dsc->dest_buf,
|
||||||
des_stride,
|
des_stride,
|
||||||
&draw_size);
|
&draw_size);
|
||||||
#else
|
|
||||||
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_buf) {
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
uint8_t * tmp_msk = (uint8_t *)lv_malloc(des_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_msk) {
|
|
||||||
lv_free(tmp_buf);
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* get rgb565 */
|
|
||||||
__arm_2d_impl_cccn888_to_rgb565((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
(uint16_t *)tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_memzero(tmp_msk, des_stride * dsc->dest_h);
|
|
||||||
|
|
||||||
/* get mask */
|
|
||||||
__arm_2d_impl_gray8_colour_filling_channel_mask(tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
0xFF);
|
|
||||||
|
|
||||||
__arm_2d_impl_rgb565_masks_copy(tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint16_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
(uint8_t *)dsc->mask_buf,
|
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_free(tmp_msk);
|
|
||||||
lv_free(tmp_buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
@@ -617,7 +498,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_arm2d(
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
__arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_src_mask_and_opacity((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_src_mask_and_opacity((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint8_t *)dsc->mask_buf,
|
(uint8_t *)dsc->mask_buf,
|
||||||
@@ -627,50 +507,7 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_arm2d(
|
|||||||
des_stride,
|
des_stride,
|
||||||
&draw_size,
|
&draw_size,
|
||||||
dsc->opa);
|
dsc->opa);
|
||||||
#else
|
|
||||||
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_buf) {
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
uint8_t * tmp_msk = (uint8_t *)lv_malloc(des_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_msk) {
|
|
||||||
lv_free(tmp_buf);
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* get rgb565 */
|
|
||||||
__arm_2d_impl_cccn888_to_rgb565((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
(uint16_t *)tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_memzero(tmp_msk, des_stride * dsc->dest_h);
|
|
||||||
|
|
||||||
/* get mask */
|
|
||||||
__arm_2d_impl_gray8_colour_filling_channel_mask_opacity(tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
0xFF,
|
|
||||||
dsc->opa);
|
|
||||||
|
|
||||||
__arm_2d_impl_rgb565_masks_copy(tmp_buf,
|
|
||||||
des_stride,
|
|
||||||
tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint16_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
(uint8_t *)dsc->mask_buf,
|
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_free(tmp_msk);
|
|
||||||
lv_free(tmp_buf);
|
|
||||||
#endif
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -861,20 +698,15 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_arm2d(lv
|
|||||||
des_stride,
|
des_stride,
|
||||||
&draw_size);
|
&draw_size);
|
||||||
|
|
||||||
__arm_2d_impl_gray8_colour_filling_with_opacity((uint8_t *)dsc->mask_buf,
|
__arm_2d_impl_cccn888_tile_copy_with_src_mask_and_opacity(tmp_buf,
|
||||||
dsc->mask_stride,
|
des_stride,
|
||||||
&draw_size,
|
(uint8_t *)dsc->mask_buf,
|
||||||
0x00,
|
dsc->mask_stride,
|
||||||
255 - dsc->opa);
|
&draw_size,
|
||||||
|
(uint32_t *)dsc->dest_buf,
|
||||||
__arm_2d_impl_cccn888_src_msk_copy(tmp_buf,
|
des_stride,
|
||||||
des_stride,
|
&draw_size,
|
||||||
(uint8_t *)dsc->mask_buf,
|
dsc->opa);
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint32_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_free(tmp_buf);
|
lv_free(tmp_buf);
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
@@ -955,20 +787,15 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_arm2d(lv
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
__arm_2d_impl_gray8_colour_filling_with_opacity((uint8_t *)dsc->mask_buf,
|
__arm_2d_impl_cccn888_tile_copy_with_src_mask_and_opacity((uint32_t *)dsc->src_buf,
|
||||||
dsc->mask_stride,
|
src_stride,
|
||||||
&draw_size,
|
(uint8_t *)dsc->mask_buf,
|
||||||
0x00,
|
dsc->mask_stride,
|
||||||
255 - dsc->opa);
|
&draw_size,
|
||||||
|
(uint32_t *)dsc->dest_buf,
|
||||||
__arm_2d_impl_cccn888_src_msk_copy((uint32_t *)dsc->src_buf,
|
des_stride,
|
||||||
src_stride,
|
&draw_size,
|
||||||
(uint8_t *)dsc->mask_buf,
|
dsc->opa);
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint32_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -984,22 +811,12 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_arm2d(lv_draw_sw_bl
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
__arm_2d_impl_ccca8888_to_cccn888((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_to_cccn888((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint32_t *)dsc->dest_buf,
|
(uint32_t *)dsc->dest_buf,
|
||||||
des_stride,
|
des_stride,
|
||||||
&draw_size);
|
&draw_size);
|
||||||
#else
|
|
||||||
__arm_2d_impl_cccn888_src_chn_msk_copy((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint32_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
#endif
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1014,42 +831,13 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_opa_arm2d(lv_d
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
|
|
||||||
__arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_opacity((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_opacity((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint32_t *)dsc->dest_buf,
|
(uint32_t *)dsc->dest_buf,
|
||||||
des_stride,
|
des_stride,
|
||||||
&draw_size,
|
&draw_size,
|
||||||
dsc->opa);
|
dsc->opa);
|
||||||
#else
|
|
||||||
uint8_t * tmp_msk = (uint8_t *)lv_malloc(des_stride * dsc->dest_h);
|
|
||||||
if(NULL == tmp_msk) {
|
|
||||||
return LV_RESULT_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
lv_memzero(tmp_msk, des_stride * dsc->dest_h);
|
|
||||||
|
|
||||||
/* get mask */
|
|
||||||
__arm_2d_impl_gray8_colour_filling_channel_mask_opacity(tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
0xFF,
|
|
||||||
dsc->opa);
|
|
||||||
|
|
||||||
__arm_2d_impl_cccn888_src_msk_copy((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
tmp_msk,
|
|
||||||
des_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint32_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
&draw_size);
|
|
||||||
|
|
||||||
lv_free(tmp_msk);
|
|
||||||
#endif
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1065,8 +853,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_mask_arm2d(lv_
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
|
|
||||||
__arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_src_mask((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_src_mask((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint8_t *)dsc->mask_buf,
|
(uint8_t *)dsc->mask_buf,
|
||||||
@@ -1075,19 +861,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_mask_arm2d(lv_
|
|||||||
(uint32_t *)dsc->dest_buf,
|
(uint32_t *)dsc->dest_buf,
|
||||||
des_stride,
|
des_stride,
|
||||||
&draw_size);
|
&draw_size);
|
||||||
#else
|
|
||||||
__arm_2d_impl_cccn888_src_chn_msk_des_msk_copy((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint32_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
(uint8_t *)dsc->mask_buf,
|
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
&draw_size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
@@ -1103,8 +876,6 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_arm2d(
|
|||||||
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
|
||||||
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
|
||||||
|
|
||||||
#if ARM_2D_VERSION >= 10106ul
|
|
||||||
|
|
||||||
__arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_src_mask_and_opacity((uint32_t *)dsc->src_buf,
|
__arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_src_mask_and_opacity((uint32_t *)dsc->src_buf,
|
||||||
src_stride,
|
src_stride,
|
||||||
(uint8_t *)dsc->mask_buf,
|
(uint8_t *)dsc->mask_buf,
|
||||||
@@ -1114,25 +885,7 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_arm2d(
|
|||||||
des_stride,
|
des_stride,
|
||||||
&draw_size,
|
&draw_size,
|
||||||
dsc->opa);
|
dsc->opa);
|
||||||
#else
|
|
||||||
__arm_2d_impl_gray8_colour_filling_with_opacity((uint8_t *)dsc->mask_buf,
|
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
0x00,
|
|
||||||
255 - dsc->opa);
|
|
||||||
|
|
||||||
__arm_2d_impl_cccn888_src_chn_msk_des_msk_copy((uint32_t *)dsc->src_buf,
|
|
||||||
src_stride,
|
|
||||||
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
|
|
||||||
src_stride,
|
|
||||||
&draw_size,
|
|
||||||
(uint32_t *)dsc->dest_buf,
|
|
||||||
des_stride,
|
|
||||||
(uint8_t *)dsc->mask_buf,
|
|
||||||
dsc->mask_stride,
|
|
||||||
&draw_size,
|
|
||||||
&draw_size);
|
|
||||||
#endif
|
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user