mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-28 07:03:00 +08:00
draw(sw): use src_stride is byte unit
This commit is contained in:
parent
e27491cb2a
commit
2a5f9ecb25
@ -96,12 +96,12 @@ void lv_draw_sw_blend(lv_draw_unit_t * draw_unit, const lv_draw_sw_blend_dsc_t *
|
||||
|
||||
image_dsc.opa = blend_dsc->opa;
|
||||
image_dsc.blend_mode = blend_dsc->blend_mode;
|
||||
image_dsc.src_stride = blend_dsc->src_stride / lv_color_format_get_size(blend_dsc->src_color_format);
|
||||
image_dsc.src_stride = blend_dsc->src_stride;
|
||||
image_dsc.src_color_format = blend_dsc->src_color_format;
|
||||
|
||||
const uint8_t * src_buf = blend_dsc->src_buf;
|
||||
uint32_t src_px_size = lv_color_format_get_size(blend_dsc->src_color_format);
|
||||
src_buf += image_dsc.src_stride * (blend_area.y1 - blend_dsc->src_area->y1) * src_px_size;
|
||||
src_buf += image_dsc.src_stride * (blend_area.y1 - blend_dsc->src_area->y1);
|
||||
src_buf += (blend_area.x1 - blend_dsc->src_area->x1) * src_px_size;
|
||||
image_dsc.src_buf = src_buf;
|
||||
|
||||
|
@ -183,7 +183,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
lv_color32_t * dest_buf_c32 = dsc->dest_buf;
|
||||
int32_t dest_stride_px = dsc->dest_stride / 4;
|
||||
const lv_color16_t * src_buf_c16 = (const lv_color16_t *) dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
int32_t src_stride_px = dsc->src_stride / 2;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
@ -205,7 +205,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
dest_buf_c32[x] = lv_color_32_32_mix(color_argb, dest_buf_c32[x], &cache);
|
||||
}
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c16 += src_stride;
|
||||
src_buf_c16 += src_stride_px;
|
||||
}
|
||||
}
|
||||
else if(mask_buf && opa >= LV_OPA_MAX) {
|
||||
@ -218,7 +218,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
dest_buf_c32[x] = lv_color_32_32_mix(color_argb, dest_buf_c32[x], &cache);
|
||||
}
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c16 += src_stride;
|
||||
src_buf_c16 += src_stride_px;
|
||||
mask_buf += mask_stride;
|
||||
}
|
||||
}
|
||||
@ -232,7 +232,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
dest_buf_c32[x] = lv_color_32_32_mix(color_argb, dest_buf_c32[x], &cache);
|
||||
}
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c16 += src_stride;
|
||||
src_buf_c16 += src_stride_px;
|
||||
mask_buf += mask_stride;
|
||||
}
|
||||
}
|
||||
@ -250,7 +250,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
}
|
||||
if(mask_buf) mask_buf += mask_stride;
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c16 += src_stride;
|
||||
src_buf_c16 += src_stride_px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -264,7 +264,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb888_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
lv_color32_t * dest_buf_c32 = dsc->dest_buf;
|
||||
int32_t dest_stride_px = dsc->dest_stride / 4;
|
||||
const uint8_t * src_buf = dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride * src_px_size;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
@ -369,7 +369,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
lv_color32_t * dest_buf_c32 = dsc->dest_buf;
|
||||
int32_t dest_stride_px = dsc->dest_stride / 4;
|
||||
const lv_color32_t * src_buf_c32 = dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
int32_t src_stride_px = dsc->src_stride / 4;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
@ -387,7 +387,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
dest_buf_c32[x] = lv_color_32_32_mix(src_buf_c32[x], dest_buf_c32[x], &cache);
|
||||
}
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c32 += src_stride;
|
||||
src_buf_c32 += src_stride_px;
|
||||
}
|
||||
}
|
||||
else if(mask_buf == NULL && opa < LV_OPA_MAX) {
|
||||
@ -398,7 +398,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
dest_buf_c32[x] = lv_color_32_32_mix(color_argb, dest_buf_c32[x], &cache);
|
||||
}
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c32 += src_stride;
|
||||
src_buf_c32 += src_stride_px;
|
||||
}
|
||||
}
|
||||
else if(mask_buf && opa >= LV_OPA_MAX) {
|
||||
@ -409,7 +409,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
dest_buf_c32[x] = lv_color_32_32_mix(color_argb, dest_buf_c32[x], &cache);
|
||||
}
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c32 += src_stride;
|
||||
src_buf_c32 += src_stride_px;
|
||||
mask_buf += mask_stride;
|
||||
}
|
||||
}
|
||||
@ -421,7 +421,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
dest_buf_c32[x] = lv_color_32_32_mix(color_argb, dest_buf_c32[x], &cache);
|
||||
}
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c32 += src_stride;
|
||||
src_buf_c32 += src_stride_px;
|
||||
mask_buf += mask_stride;
|
||||
}
|
||||
}
|
||||
@ -436,7 +436,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
}
|
||||
if(mask_buf) mask_buf += mask_stride;
|
||||
dest_buf_c32 += dest_stride_px;
|
||||
src_buf_c32 += src_stride;
|
||||
src_buf_c32 += src_stride_px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -233,7 +233,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
uint16_t * dest_buf_u16 = dsc->dest_buf;
|
||||
int32_t dest_stride_px = dsc->dest_stride / 2;
|
||||
const uint16_t * src_buf_u16 = dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
int32_t src_stride_px = dsc->src_stride / 2;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
@ -246,7 +246,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
for(y = 0; y < h; y++) {
|
||||
lv_memcpy(dest_buf_u16, src_buf_u16, line_in_bytes);
|
||||
dest_buf_u16 += dest_stride_px;
|
||||
src_buf_u16 += src_stride;
|
||||
src_buf_u16 += src_stride_px;
|
||||
}
|
||||
}
|
||||
else if(mask_buf == NULL && opa < LV_OPA_MAX) {
|
||||
@ -255,7 +255,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
dest_buf_u16[x] = lv_color_16_16_mix(src_buf_u16[x], dest_buf_u16[x], opa);
|
||||
}
|
||||
dest_buf_u16 += dest_stride_px;
|
||||
src_buf_u16 += src_stride;
|
||||
src_buf_u16 += src_stride_px;
|
||||
}
|
||||
}
|
||||
else if(mask_buf && opa >= LV_OPA_MAX) {
|
||||
@ -264,7 +264,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
dest_buf_u16[x] = lv_color_16_16_mix(src_buf_u16[x], dest_buf_u16[x], mask_buf[x]);
|
||||
}
|
||||
dest_buf_u16 += dest_stride_px;
|
||||
src_buf_u16 += src_stride;
|
||||
src_buf_u16 += src_stride_px;
|
||||
mask_buf += mask_stride;
|
||||
}
|
||||
}
|
||||
@ -274,7 +274,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
dest_buf_u16[x] = lv_color_16_16_mix(src_buf_u16[x], dest_buf_u16[x], LV_OPA_MIX2(mask_buf[x], opa));
|
||||
}
|
||||
dest_buf_u16 += dest_stride_px;
|
||||
src_buf_u16 += src_stride;
|
||||
src_buf_u16 += src_stride_px;
|
||||
mask_buf += mask_stride;
|
||||
}
|
||||
}
|
||||
@ -319,7 +319,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
}
|
||||
|
||||
dest_buf_u16 += dest_stride_px;
|
||||
src_buf_u16 += src_stride;
|
||||
src_buf_u16 += src_stride_px;
|
||||
if(mask_buf) mask_buf += mask_stride;
|
||||
}
|
||||
}
|
||||
@ -333,7 +333,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb888_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
uint16_t * dest_buf_u16 = dsc->dest_buf;
|
||||
int32_t dest_stride_px = dsc->dest_stride / 2;
|
||||
const uint8_t * src_buf_u8 = dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride * src_px_size;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
@ -434,7 +434,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
uint16_t * dest_buf_u16 = dsc->dest_buf;
|
||||
int32_t dest_stride_px = dsc->dest_stride / 2;
|
||||
const uint8_t * src_buf_u8 = dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride * 4;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
|
@ -225,7 +225,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb565_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
uint8_t * dest_buf_u8 = dsc->dest_buf;
|
||||
int32_t dest_stride = dsc->dest_stride;
|
||||
const lv_color16_t * src_buf_c16 = (const lv_color16_t *) dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
int32_t src_stride = dsc->src_stride / 2;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
@ -314,7 +314,7 @@ LV_ATTRIBUTE_FAST_MEM static void rgb888_image_blend(_lv_draw_sw_blend_image_dsc
|
||||
uint8_t * dest_buf = dsc->dest_buf;
|
||||
int32_t dest_stride = dsc->dest_stride;
|
||||
const uint8_t * src_buf = dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride * src_px_size;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
@ -403,7 +403,7 @@ LV_ATTRIBUTE_FAST_MEM static void argb8888_image_blend(_lv_draw_sw_blend_image_d
|
||||
uint8_t * dest_buf = dsc->dest_buf;
|
||||
int32_t dest_stride = dsc->dest_stride;
|
||||
const lv_color32_t * src_buf_c32 = dsc->src_buf;
|
||||
int32_t src_stride = dsc->src_stride;
|
||||
int32_t src_stride = dsc->src_stride / 4;
|
||||
const lv_opa_t * mask_buf = dsc->mask_buf;
|
||||
int32_t mask_stride = dsc->mask_stride;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user