Lines Matching +full:- +full:- +full:include

9 #include "../display/lv_display_private.h"
10 #include "../misc/lv_event_private.h"
11 #include "../misc/lv_anim_private.h"
12 #include "../draw/lv_draw_private.h"
13 #include "../core/lv_obj_private.h"
14 #include "lv_display.h"
15 #include "../misc/lv_math.h"
16 #include "../core/lv_refr_private.h"
17 #include "../stdlib/lv_string.h"
18 #include "../themes/lv_theme.h"
19 #include "../core/lv_global.h"
20 #include "../others/sysmon/lv_sysmon.h"
23 #include "../draw/sw/lv_draw_sw.h"
29 #define disp_def LV_GLOBAL_DEFAULT()->disp_default
30 #define disp_ll_p &(LV_GLOBAL_DEFAULT()->disp_ll)
70 disp->hor_res = hor_res; in lv_display_create()
71 disp->ver_res = ver_res; in lv_display_create()
72 disp->physical_hor_res = -1; in lv_display_create()
73 disp->physical_ver_res = -1; in lv_display_create()
74 disp->offset_x = 0; in lv_display_create()
75 disp->offset_y = 0; in lv_display_create()
76 disp->antialiasing = LV_COLOR_DEPTH > 8 ? 1 : 0; in lv_display_create()
77 disp->dpi = LV_DPI_DEF; in lv_display_create()
78 disp->color_format = LV_COLOR_FORMAT_NATIVE; in lv_display_create()
82 disp->tile_cnt = LV_DRAW_SW_DRAW_UNIT_CNT; in lv_display_create()
84 disp->tile_cnt = 1; in lv_display_create()
87 disp->layer_head = lv_malloc(sizeof(lv_layer_t)); in lv_display_create()
88 LV_ASSERT_MALLOC(disp->layer_head); in lv_display_create()
89 if(disp->layer_head == NULL) return NULL; in lv_display_create()
90 lv_layer_init(disp->layer_head); in lv_display_create()
92 if(disp->layer_init) disp->layer_init(disp, disp->layer_head); in lv_display_create()
93 disp->layer_head->buf_area.x1 = 0; in lv_display_create()
94 disp->layer_head->buf_area.y1 = 0; in lv_display_create()
95 disp->layer_head->buf_area.x2 = hor_res - 1; in lv_display_create()
96 disp->layer_head->buf_area.y2 = ver_res - 1; in lv_display_create()
97 disp->layer_head->color_format = disp->color_format; in lv_display_create()
99 disp->inv_en_cnt = 1; in lv_display_create()
100 disp->last_activity_time = lv_tick_get(); in lv_display_create()
102 lv_ll_init(&disp->sync_areas, sizeof(lv_area_t)); in lv_display_create()
108 disp->refr_timer = lv_timer_create(lv_display_refr_timer, LV_DEF_REFR_PERIOD, disp); in lv_display_create()
109 LV_ASSERT_MALLOC(disp->refr_timer); in lv_display_create()
110 if(disp->refr_timer == NULL) { in lv_display_create()
117 …disp->theme = lv_theme_default_init(disp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PAL… in lv_display_create()
121 disp->theme = lv_theme_default_get(); in lv_display_create()
125 disp->theme = lv_theme_simple_init(disp); in lv_display_create()
128 disp->theme = lv_theme_simple_get(); in lv_display_create()
132 disp->bottom_layer = lv_obj_create(NULL); /*Create bottom layer on the display*/ in lv_display_create()
133 disp->act_scr = lv_obj_create(NULL); /*Create a default screen on the display*/ in lv_display_create()
134 disp->top_layer = lv_obj_create(NULL); /*Create top layer on the display*/ in lv_display_create()
135 disp->sys_layer = lv_obj_create(NULL); /*Create sys layer on the display*/ in lv_display_create()
136 lv_obj_remove_style_all(disp->bottom_layer); in lv_display_create()
137 lv_obj_remove_style_all(disp->top_layer); in lv_display_create()
138 lv_obj_remove_style_all(disp->sys_layer); in lv_display_create()
139 lv_obj_remove_flag(disp->top_layer, LV_OBJ_FLAG_CLICKABLE); in lv_display_create()
140 lv_obj_remove_flag(disp->sys_layer, LV_OBJ_FLAG_CLICKABLE); in lv_display_create()
142 lv_obj_set_scrollbar_mode(disp->bottom_layer, LV_SCROLLBAR_MODE_OFF); in lv_display_create()
143 lv_obj_set_scrollbar_mode(disp->top_layer, LV_SCROLLBAR_MODE_OFF); in lv_display_create()
144 lv_obj_set_scrollbar_mode(disp->sys_layer, LV_SCROLLBAR_MODE_OFF); in lv_display_create()
146 lv_obj_invalidate(disp->act_scr); in lv_display_create()
153 … lv_timer_ready(disp->refr_timer); /*Be sure the screen will be refreshed immediately on start up*/ in lv_display_create()
174 lv_event_remove_all(&(disp->event_list)); in lv_display_delete()
187 if(disp->sys_layer) { in lv_display_delete()
188 lv_obj_delete(disp->sys_layer); in lv_display_delete()
189 disp->sys_layer = NULL; in lv_display_delete()
191 if(disp->top_layer) { in lv_display_delete()
192 lv_obj_delete(disp->top_layer); in lv_display_delete()
193 disp->top_layer = NULL; in lv_display_delete()
196 if(disp->bottom_layer) { in lv_display_delete()
197 lv_obj_delete(disp->bottom_layer); in lv_display_delete()
198 disp->bottom_layer = NULL; in lv_display_delete()
201 disp->act_scr = NULL; in lv_display_delete()
203 while(disp->screen_cnt != 0) { in lv_display_delete()
205 lv_obj_delete(disp->screens[0]); in lv_display_delete()
208 lv_ll_clear(&disp->sync_areas); in lv_display_delete()
210 if(disp->refr_timer) lv_timer_delete(disp->refr_timer); in lv_display_delete()
212 if(disp->layer_deinit) disp->layer_deinit(disp, disp->layer_head); in lv_display_delete()
213 lv_free(disp->layer_head); in lv_display_delete()
240 /*---------------------
242 *--------------------*/
249 if(disp->hor_res == hor_res && disp->ver_res == ver_res) return; in lv_display_set_resolution()
251 disp->hor_res = hor_res; in lv_display_set_resolution()
252 disp->ver_res = ver_res; in lv_display_set_resolution()
262 disp->physical_hor_res = hor_res; in lv_display_set_physical_resolution()
263 disp->physical_ver_res = ver_res; in lv_display_set_physical_resolution()
265 lv_obj_invalidate(disp->sys_layer); in lv_display_set_physical_resolution()
274 disp->offset_x = x; in lv_display_set_offset()
275 disp->offset_y = y; in lv_display_set_offset()
277 lv_obj_invalidate(disp->sys_layer); in lv_display_set_offset()
286 disp->dpi = dpi; in lv_display_set_dpi()
297 switch(disp->rotation) { in lv_display_get_horizontal_resolution()
300 return disp->ver_res; in lv_display_get_horizontal_resolution()
302 return disp->hor_res; in lv_display_get_horizontal_resolution()
315 switch(disp->rotation) { in lv_display_get_vertical_resolution()
318 return disp->hor_res; in lv_display_get_vertical_resolution()
320 return disp->ver_res; in lv_display_get_vertical_resolution()
333 switch(disp->rotation) { in lv_display_get_physical_horizontal_resolution()
336 return disp->physical_ver_res > 0 ? disp->physical_ver_res : disp->ver_res; in lv_display_get_physical_horizontal_resolution()
338 return disp->physical_hor_res > 0 ? disp->physical_hor_res : disp->hor_res; in lv_display_get_physical_horizontal_resolution()
351 switch(disp->rotation) { in lv_display_get_physical_vertical_resolution()
354 return disp->physical_hor_res > 0 ? disp->physical_hor_res : disp->hor_res; in lv_display_get_physical_vertical_resolution()
356 return disp->physical_ver_res > 0 ? disp->physical_ver_res : disp->ver_res; in lv_display_get_physical_vertical_resolution()
369 switch(disp->rotation) { in lv_display_get_offset_x()
371 return disp->offset_y; in lv_display_get_offset_x()
373 return lv_display_get_physical_horizontal_resolution(disp) - disp->offset_x; in lv_display_get_offset_x()
375 return lv_display_get_physical_horizontal_resolution(disp) - disp->offset_y; in lv_display_get_offset_x()
377 return disp->offset_x; in lv_display_get_offset_x()
390 switch(disp->rotation) { in lv_display_get_offset_y()
392 return disp->offset_x; in lv_display_get_offset_y()
394 return lv_display_get_physical_vertical_resolution(disp) - disp->offset_y; in lv_display_get_offset_y()
396 return lv_display_get_physical_vertical_resolution(disp) - disp->offset_x; in lv_display_get_offset_y()
398 return disp->offset_y; in lv_display_get_offset_y()
407 return disp->dpi; in lv_display_get_dpi()
410 /*---------------------
412 *--------------------*/
419 disp->buf_1 = buf1; in lv_display_set_draw_buffers()
420 disp->buf_2 = buf2; in lv_display_set_draw_buffers()
421 disp->buf_act = disp->buf_1; in lv_display_set_draw_buffers()
449 lv_draw_buf_init(&disp->_static_buf1, w, h, cf, stride, buf1, buf_size); in lv_display_set_buffers()
450 lv_draw_buf_init(&disp->_static_buf2, w, h, cf, stride, buf2, buf_size); in lv_display_set_buffers()
451 lv_display_set_draw_buffers(disp, &disp->_static_buf1, buf2 ? &disp->_static_buf2 : NULL); in lv_display_set_buffers()
474 lv_draw_buf_init(&disp->_static_buf1, w, h, cf, stride, buf1, buf_size); in lv_display_set_buffers_with_stride()
475 lv_draw_buf_init(&disp->_static_buf2, w, h, cf, stride, buf2, buf_size); in lv_display_set_buffers_with_stride()
476 lv_display_set_draw_buffers(disp, &disp->_static_buf1, buf2 ? &disp->_static_buf2 : NULL); in lv_display_set_buffers_with_stride()
484 disp->render_mode = render_mode; in lv_display_set_render_mode()
492 disp->flush_cb = flush_cb; in lv_display_set_flush_cb()
500 disp->flush_wait_cb = wait_cb; in lv_display_set_flush_wait_cb()
508 disp->color_format = color_format; in lv_display_set_color_format()
509 disp->layer_head->color_format = color_format; in lv_display_set_color_format()
510 if(disp->buf_1) disp->buf_1->header.cf = color_format; in lv_display_set_color_format()
511 if(disp->buf_2) disp->buf_2->header.cf = color_format; in lv_display_set_color_format()
521 return disp->color_format; in lv_display_get_color_format()
531 disp->tile_cnt = tile_cnt; in lv_display_set_tile_cnt()
539 return disp->tile_cnt; in lv_display_get_tile_cnt()
547 disp->antialiasing = en; in lv_display_set_antialiasing()
555 return disp->antialiasing; in lv_display_get_antialiasing()
560 disp->flushing = 0; in lv_display_flush_ready()
565 return disp->flushing_last; in lv_display_flush_is_last()
570 return disp->buf_2 != NULL; in lv_display_is_double_buffered()
573 /*---------------------
575 *--------------------*/
585 return disp->act_scr; in lv_display_get_screen_active()
596 return disp->prev_scr; in lv_display_get_screen_prev()
607 return disp->top_layer; in lv_display_get_layer_top()
618 return disp->sys_layer; in lv_display_get_layer_sys()
629 return disp->bottom_layer; in lv_display_get_layer_bottom()
641 lv_obj_t * act_scr = d->act_scr; in lv_screen_load_anim()
643 if(act_scr == new_scr || d->scr_to_load == new_scr) { in lv_screen_load_anim()
649 if(d->scr_to_load && act_scr != d->scr_to_load) { in lv_screen_load_anim()
650 lv_anim_delete(d->scr_to_load, NULL); in lv_screen_load_anim()
651 lv_obj_set_pos(d->scr_to_load, 0, 0); in lv_screen_load_anim()
652 lv_obj_remove_local_style_prop(d->scr_to_load, LV_STYLE_OPA, 0); in lv_screen_load_anim()
654 d->prev_scr = d->act_scr; in lv_screen_load_anim()
655 act_scr = d->scr_to_load; /*Active screen changed.*/ in lv_screen_load_anim()
657 scr_load_internal(d->scr_to_load); in lv_screen_load_anim()
660 d->scr_to_load = new_scr; in lv_screen_load_anim()
662 if(d->prev_scr && d->del_prev) lv_obj_delete(d->prev_scr); in lv_screen_load_anim()
663 d->prev_scr = NULL; in lv_screen_load_anim()
665 d->draw_prev_over_act = is_out_anim(anim_type); in lv_screen_load_anim()
666 d->del_prev = auto_del; in lv_screen_load_anim()
711 lv_anim_set_values(&a_new, -lv_display_get_horizontal_resolution(d), 0); in lv_screen_load_anim()
719 lv_anim_set_values(&a_new, -lv_display_get_vertical_resolution(d), 0); in lv_screen_load_anim()
726 lv_anim_set_values(&a_old, 0, -lv_display_get_horizontal_resolution(d)); in lv_screen_load_anim()
730 lv_anim_set_values(&a_new, -lv_display_get_horizontal_resolution(d), 0); in lv_screen_load_anim()
740 lv_anim_set_values(&a_old, 0, -lv_display_get_vertical_resolution(d)); in lv_screen_load_anim()
744 lv_anim_set_values(&a_new, -lv_display_get_vertical_resolution(d), 0); in lv_screen_load_anim()
759 lv_anim_set_values(&a_old, 0, -lv_display_get_horizontal_resolution(d)); in lv_screen_load_anim()
767 lv_anim_set_values(&a_old, 0, -lv_display_get_vertical_resolution(d)); in lv_screen_load_anim()
781 /*---------------------
783 *--------------------*/
789 lv_event_add(&disp->event_list, event_cb, filter, user_data); in lv_display_add_event_cb()
795 return lv_event_get_count(&disp->event_list); in lv_display_get_event_count()
801 return lv_event_get_dsc(&disp->event_list, index); in lv_display_get_event_dsc()
809 return lv_event_remove(&disp->event_list, index); in lv_display_delete_event()
820 for(i = event_cnt - 1; i >= 0; i--) { in lv_display_remove_event_cb_with_user_data()
822 if(dsc && dsc->cb == event_cb && dsc->user_data == user_data) { in lv_display_remove_event_cb_with_user_data()
841 res = lv_event_send(&disp->event_list, &e, true); in lv_display_send_event()
844 res = lv_event_send(&disp->event_list, &e, false); in lv_display_send_event()
852 if(e->code == LV_EVENT_INVALIDATE_AREA) { in lv_event_get_invalidated_area()
866 disp->rotation = rotation; in lv_display_set_rotation()
874 return disp->rotation; in lv_display_get_rotation()
885 disp->theme = th; in lv_display_set_theme()
887 if(disp->screen_cnt == 4 && in lv_display_set_theme()
888 lv_obj_get_child_count(disp->screens[0]) == 0 && in lv_display_set_theme()
889 lv_obj_get_child_count(disp->screens[1]) == 0 && in lv_display_set_theme()
890 lv_obj_get_child_count(disp->screens[2]) == 0) { in lv_display_set_theme()
891 lv_theme_apply(disp->screens[0]); in lv_display_set_theme()
898 return disp->theme; in lv_display_get_theme()
903 if(disp) return lv_tick_elaps(disp->last_activity_time); in lv_display_get_inactive_time()
909 uint32_t elaps = lv_tick_elaps(d->last_activity_time); in lv_display_get_inactive_time()
925 disp->last_activity_time = lv_tick_get(); in lv_display_trigger_activity()
936 disp->inv_en_cnt += en ? 1 : -1; in lv_display_enable_invalidation()
947 return (disp->inv_en_cnt > 0); in lv_display_is_invalidation_enabled()
955 return disp->refr_timer; in lv_display_get_refr_timer()
961 if(!disp || !disp->refr_timer) return; in lv_display_delete_refr_timer()
963 lv_timer_delete(disp->refr_timer); in lv_display_delete_refr_timer()
964 disp->refr_timer = NULL; in lv_display_delete_refr_timer()
971 disp->user_data = user_data; in lv_display_set_user_data()
979 disp->driver_data = driver_data; in lv_display_set_driver_data()
986 return disp->user_data; in lv_display_get_user_data()
994 return disp->driver_data; in lv_display_get_driver_data()
1001 return disp->buf_act; in lv_display_get_buf_active()
1015 area->y2 = disp->ver_res - area->x1 - 1; in lv_display_rotate_area()
1016 area->x1 = area->y1; in lv_display_rotate_area()
1017 area->x2 = area->x1 + h - 1; in lv_display_rotate_area()
1018 area->y1 = area->y2 - w + 1; in lv_display_rotate_area()
1021 area->y2 = disp->ver_res - area->y1 - 1; in lv_display_rotate_area()
1022 area->y1 = area->y2 - h + 1; in lv_display_rotate_area()
1023 area->x2 = disp->hor_res - area->x1 - 1; in lv_display_rotate_area()
1024 area->x1 = area->x2 - w + 1; in lv_display_rotate_area()
1027 area->x1 = disp->hor_res - area->y2 - 1; in lv_display_rotate_area()
1028 area->y2 = area->x2; in lv_display_rotate_area()
1029 area->x2 = area->x1 + h - 1; in lv_display_rotate_area()
1030 area->y1 = area->y2 - w + 1; in lv_display_rotate_area()
1040 if(disp->buf_1) { in lv_display_get_draw_buf_size()
1041 return disp->buf_1->data_size; in lv_display_get_draw_buf_size()
1051 if(disp->render_mode == LV_DISPLAY_RENDER_MODE_FULL) { in lv_display_get_invalidated_draw_buf_size()
1060 LV_ASSERT(disp->buf_1 && disp->buf_1->data_size >= buf_size); in lv_display_get_invalidated_draw_buf_size()
1061 if(disp->buf_2) LV_ASSERT(disp->buf_2->data_size >= buf_size); in lv_display_get_invalidated_draw_buf_size()
1106 lv_obj_get_coords(disp->sys_layer, &prev_coords); in update_resolution()
1108 for(i = 0; i < disp->screen_cnt; i++) { in update_resolution()
1109 lv_area_set_width(&disp->screens[i]->coords, hor_res); in update_resolution()
1110 lv_area_set_height(&disp->screens[i]->coords, ver_res); in update_resolution()
1111 lv_obj_send_event(disp->screens[i], LV_EVENT_SIZE_CHANGED, &prev_coords); in update_resolution()
1114 lv_area_set_width(&disp->top_layer->coords, hor_res); in update_resolution()
1115 lv_area_set_height(&disp->top_layer->coords, ver_res); in update_resolution()
1116 lv_obj_send_event(disp->top_layer, LV_EVENT_SIZE_CHANGED, &prev_coords); in update_resolution()
1118 lv_area_set_width(&disp->sys_layer->coords, hor_res); in update_resolution()
1119 lv_area_set_height(&disp->sys_layer->coords, ver_res); in update_resolution()
1120 lv_obj_send_event(disp->sys_layer, LV_EVENT_SIZE_CHANGED, &prev_coords); in update_resolution()
1122 lv_area_set_width(&disp->bottom_layer->coords, hor_res); in update_resolution()
1123 lv_area_set_height(&disp->bottom_layer->coords, ver_res); in update_resolution()
1124 lv_obj_send_event(disp->bottom_layer, LV_EVENT_SIZE_CHANGED, &prev_coords); in update_resolution()
1126 lv_memzero(disp->inv_areas, sizeof(disp->inv_areas)); in update_resolution()
1127 lv_memzero(disp->inv_area_joined, sizeof(disp->inv_area_joined)); in update_resolution()
1128 disp->inv_p = 0; in update_resolution()
1129 lv_obj_invalidate(disp->sys_layer); in update_resolution()
1145 /*scr must not be NULL, but d->act_scr might be*/ in scr_load_internal()
1152 lv_obj_t * old_scr = d->act_scr; in scr_load_internal()
1157 d->act_scr = scr; in scr_load_internal()
1158 d->scr_to_load = NULL; in scr_load_internal()
1168 lv_display_t * d = lv_obj_get_display(a->var); in scr_load_anim_start()
1170 d->prev_scr = d->act_scr; in scr_load_anim_start()
1171 d->act_scr = a->var; in scr_load_anim_start()
1173 lv_obj_send_event(d->act_scr, LV_EVENT_SCREEN_LOAD_START, NULL); in scr_load_anim_start()
1193 lv_display_t * d = lv_obj_get_display(a->var); in scr_anim_completed()
1195 lv_obj_send_event(d->act_scr, LV_EVENT_SCREEN_LOADED, NULL); in scr_anim_completed()
1196 lv_obj_send_event(d->prev_scr, LV_EVENT_SCREEN_UNLOADED, NULL); in scr_anim_completed()
1198 if(d->prev_scr && d->del_prev) lv_obj_delete(d->prev_scr); in scr_anim_completed()
1199 d->prev_scr = NULL; in scr_anim_completed()
1200 d->draw_prev_over_act = false; in scr_anim_completed()
1201 d->scr_to_load = NULL; in scr_anim_completed()
1202 lv_obj_remove_local_style_prop(a->var, LV_STYLE_OPA, 0); in scr_anim_completed()
1203 lv_obj_invalidate(d->act_scr); in scr_anim_completed()
1221 if(disp->refr_timer) lv_timer_resume(disp->refr_timer); in disp_event_cb()