improve soft_g2d

This commit is contained in:
lixianjing 2025-04-22 18:04:07 +08:00
parent 03764368ae
commit 9d9b0d904d
2 changed files with 5 additions and 4 deletions

View File

@ -2,6 +2,7 @@
2025/05/22
* 修复编译警告的问题(感谢智明提供补丁)
* 修复g2d缩放和旋转位图的时候有概率出现不缩放的情况(感谢智明提供补丁)
2025/04/17
* 修改mutable_image的need_redraw的机制(感谢智明提供补丁)

View File

@ -458,7 +458,7 @@ ret_t soft_blend_image_rotate(bitmap_t* dst, bitmap_t* src, const rectf_t* dst_r
return soft_copy_image(dst, src, (const rect_t*)(&tmp_src), (xy_t)(dst_r->x),
(xy_t)(dst_r->y));
} else if (alpha > 0xf8) {
} else if (dst_r->w == src_r->w && dst_r->h == src_r->h && alpha > 0xf8) {
rect_t tmp_src = rect_from_rectf(src_r);
rect_t tmp_dst = soft_blend_image_rotate_get_dst_point(dst, dst_r, o);
return soft_rotate_image_ex(dst, src, (const rect_t*)(&tmp_src), tmp_dst.x, tmp_dst.y,
@ -492,7 +492,7 @@ ret_t soft_blend_image_rotate(bitmap_t* dst, bitmap_t* src, const rectf_t* dst_r
rect_t tmp_src = rect_from_rectf(src_r);
return soft_copy_image(dst, src, (const rect_t*)(&tmp_src), (xy_t)(dst_r->x),
(xy_t)(dst_r->y));
} else if (alpha > 0xf8) {
} else if (dst_r->w == src_r->w && dst_r->h == src_r->h && alpha > 0xf8) {
rect_t tmp_src = rect_from_rectf(src_r);
rect_t tmp_dst = soft_blend_image_rotate_get_dst_point(dst, dst_r, o);
return soft_rotate_image_ex(dst, src, (const rect_t*)(&tmp_src), tmp_dst.x, tmp_dst.y,
@ -529,7 +529,7 @@ ret_t soft_blend_image_rotate(bitmap_t* dst, bitmap_t* src, const rectf_t* dst_r
rect_t tmp_src = rect_from_rectf(src_r);
return soft_copy_image(dst, src, (const rect_t*)(&tmp_src), (xy_t)(dst_r->x),
(xy_t)(dst_r->y));
} else if (alpha > 0xf8) {
} else if (dst_r->w == src_r->w && dst_r->h == src_r->h && alpha > 0xf8) {
rect_t tmp_src = rect_from_rectf(src_r);
rect_t tmp_dst = soft_blend_image_rotate_get_dst_point(dst, dst_r, o);
return soft_rotate_image_ex(dst, src, (const rect_t*)(&tmp_src), tmp_dst.x, tmp_dst.y,
@ -563,7 +563,7 @@ ret_t soft_blend_image_rotate(bitmap_t* dst, bitmap_t* src, const rectf_t* dst_r
rect_t tmp_src = rect_from_rectf(src_r);
return soft_copy_image(dst, src, (const rect_t*)(&tmp_src), (xy_t)(dst_r->x),
(xy_t)(dst_r->y));
} else if (alpha > 0xf8) {
} else if (dst_r->w == src_r->w && dst_r->h == src_r->h && alpha > 0xf8) {
rect_t tmp_src = rect_from_rectf(src_r);
rect_t tmp_dst = soft_blend_image_rotate_get_dst_point(dst, dst_r, o);
return soft_rotate_image_ex(dst, src, (const rect_t*)(&tmp_src), tmp_dst.x, tmp_dst.y,