fix(vg_lite): fix linear gradient matrix error (#7110)
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com> Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
@@ -270,12 +270,14 @@ static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vec
|
||||
}
|
||||
break;
|
||||
case LV_VECTOR_DRAW_STYLE_GRADIENT: {
|
||||
vg_lite_matrix_t grad_matrix;
|
||||
vg_lite_identity(&grad_matrix);
|
||||
vg_lite_matrix_t grad_matrix = matrix;
|
||||
|
||||
#if !LV_USE_VG_LITE_THORVG
|
||||
/* Workaround inconsistent matrix behavior between device and ThorVG */
|
||||
lv_vg_lite_matrix_multiply(&grad_matrix, &matrix);
|
||||
#if LV_USE_VG_LITE_THORVG
|
||||
/* Workaround inconsistent radial gradient matrix behavior between device and ThorVG */
|
||||
if(dsc->fill_dsc.gradient.style == LV_VECTOR_GRADIENT_STYLE_RADIAL) {
|
||||
/* Restore matrix to identity */
|
||||
vg_lite_identity(&grad_matrix);
|
||||
}
|
||||
#endif
|
||||
vg_lite_matrix_t fill_matrix;
|
||||
lv_vg_lite_matrix(&fill_matrix, &dsc->fill_dsc.matrix);
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.0 KiB |