mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-28 07:03:00 +08:00
refactor(display_rotate_area): use a copy instead of const casting
This commit is contained in:
parent
fd79a4f427
commit
20bbe4a8ac
@ -264,6 +264,7 @@ static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * colo
|
||||
lv_color_format_t cf = lv_display_get_color_format(disp);
|
||||
uint32_t px_size = lv_color_format_get_size(cf);
|
||||
|
||||
lv_area_t rotated_area;
|
||||
lv_display_rotation_t rotation = lv_display_get_rotation(disp);
|
||||
|
||||
/* Not all framebuffer kernel drivers support hardware rotation, so we need to handle it in software here */
|
||||
@ -295,7 +296,10 @@ static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * colo
|
||||
color_p = dsc->rotated_buf;
|
||||
|
||||
/* Rotate the area */
|
||||
lv_display_rotate_area(disp, (lv_area_t *)area);
|
||||
rotated_area = *area;
|
||||
lv_display_rotate_area(disp, &rotated_area);
|
||||
area = &rotated_area;
|
||||
|
||||
if(rotation != LV_DISPLAY_ROTATION_180) {
|
||||
w = lv_area_get_width(area);
|
||||
h = lv_area_get_height(area);
|
||||
|
@ -284,6 +284,7 @@ static void flush_partial(lv_display_t * display, const lv_area_t * area, uint8_
|
||||
{
|
||||
uint16_t * img = (uint16_t *)px_map;
|
||||
|
||||
lv_area_t rotated_area;
|
||||
lv_color_format_t cf = lv_display_get_color_format(display);
|
||||
lv_display_rotation_t rotation = lv_display_get_rotation(display);
|
||||
|
||||
@ -305,7 +306,10 @@ static void flush_partial(lv_display_t * display, const lv_area_t * area, uint8_
|
||||
lv_draw_sw_rotate(img, rotation_buffer, w, h, w_stride, h_stride, rotation, cf);
|
||||
|
||||
img = rotation_buffer;
|
||||
lv_display_rotate_area(display, (lv_area_t *)area);
|
||||
|
||||
rotated_area = *area;
|
||||
lv_display_rotate_area(display, &rotated_area);
|
||||
area = &rotated_area;
|
||||
}
|
||||
|
||||
int32_t w = lv_area_get_width(area);
|
||||
|
@ -222,6 +222,7 @@ static inline int sdl_render_mode(void)
|
||||
static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
|
||||
{
|
||||
#if LV_USE_DRAW_SDL == 0
|
||||
lv_area_t rotated_area;
|
||||
lv_sdl_window_t * dsc = lv_display_get_driver_data(disp);
|
||||
lv_color_format_t cf = lv_display_get_color_format(disp);
|
||||
|
||||
@ -258,7 +259,9 @@ static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_m
|
||||
|
||||
px_map = dsc->rotated_buf;
|
||||
|
||||
lv_display_rotate_area(disp, (lv_area_t *)area);
|
||||
rotated_area = *area;
|
||||
lv_display_rotate_area(disp, &rotated_area);
|
||||
area = &rotated_area;
|
||||
}
|
||||
|
||||
uint32_t px_map_stride = lv_draw_buf_width_to_stride(lv_area_get_width(area), cf);
|
||||
|
Loading…
x
Reference in New Issue
Block a user