Lines Matching refs:disp
40 static void update_resolution(lv_display_t * disp);
64 lv_display_t * disp = lv_ll_ins_head(disp_ll_p); in lv_display_create() local
65 LV_ASSERT_MALLOC(disp); in lv_display_create()
66 if(!disp) return NULL; in lv_display_create()
68 lv_memzero(disp, sizeof(lv_display_t)); in lv_display_create()
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()
105 …disp_def = disp; /*Temporarily change the default screen to create the default scr… 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()
111 lv_free(disp); 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()
149 if(disp_def == NULL) disp_def = disp; /*Initialize the default display*/ in lv_display_create()
151 lv_display_add_event_cb(disp, disp_event_cb, LV_EVENT_REFR_REQUEST, NULL); 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()
156 lv_sysmon_show_performance(disp); in lv_display_create()
160 lv_sysmon_show_memory(disp); in lv_display_create()
163 return disp; in lv_display_create()
166 void lv_display_delete(lv_display_t * disp) in lv_display_delete() argument
170 if(disp == lv_display_get_default()) was_default = true; in lv_display_delete()
171 if(disp == lv_refr_get_disp_refreshing()) was_refr = true; in lv_display_delete()
173 lv_display_send_event(disp, LV_EVENT_DELETE, NULL); in lv_display_delete()
174 lv_event_remove_all(&(disp->event_list)); in lv_display_delete()
180 if(lv_indev_get_display(indev) == disp) { 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()
209 lv_ll_remove(disp_ll_p, disp); 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()
215 lv_free(disp); in lv_display_delete()
222 void lv_display_set_default(lv_display_t * disp) in lv_display_set_default() argument
224 disp_def = disp; in lv_display_set_default()
232 lv_display_t * lv_display_get_next(lv_display_t * disp) in lv_display_get_next() argument
234 if(disp == NULL) in lv_display_get_next()
237 return lv_ll_get_next(disp_ll_p, disp); in lv_display_get_next()
244 void lv_display_set_resolution(lv_display_t * disp, int32_t hor_res, int32_t ver_res) in lv_display_set_resolution() argument
246 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_resolution()
247 if(disp == NULL) return; in lv_display_set_resolution()
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()
254 update_resolution(disp); in lv_display_set_resolution()
257 void lv_display_set_physical_resolution(lv_display_t * disp, int32_t hor_res, int32_t ver_res) in lv_display_set_physical_resolution() argument
259 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_physical_resolution()
260 if(disp == NULL) return; in lv_display_set_physical_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()
269 void lv_display_set_offset(lv_display_t * disp, int32_t x, int32_t y) in lv_display_set_offset() argument
271 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_offset()
272 if(disp == NULL) return; in lv_display_set_offset()
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()
281 void lv_display_set_dpi(lv_display_t * disp, int32_t dpi) in lv_display_set_dpi() argument
283 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_dpi()
284 if(disp == NULL) return; in lv_display_set_dpi()
286 disp->dpi = dpi; in lv_display_set_dpi()
289 int32_t lv_display_get_horizontal_resolution(const lv_display_t * disp) in lv_display_get_horizontal_resolution() argument
291 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_horizontal_resolution()
293 if(disp == NULL) { in lv_display_get_horizontal_resolution()
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()
307 int32_t lv_display_get_vertical_resolution(const lv_display_t * disp) in lv_display_get_vertical_resolution() argument
309 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_vertical_resolution()
311 if(disp == NULL) { in lv_display_get_vertical_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()
325 int32_t lv_display_get_physical_horizontal_resolution(const lv_display_t * disp) in lv_display_get_physical_horizontal_resolution() argument
327 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_physical_horizontal_resolution()
329 if(disp == NULL) { in lv_display_get_physical_horizontal_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()
343 int32_t lv_display_get_physical_vertical_resolution(const lv_display_t * disp) in lv_display_get_physical_vertical_resolution() argument
345 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_physical_vertical_resolution()
347 if(disp == NULL) { in lv_display_get_physical_vertical_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()
361 int32_t lv_display_get_offset_x(const lv_display_t * disp) in lv_display_get_offset_x() argument
363 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_offset_x()
365 if(disp == NULL) { in lv_display_get_offset_x()
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()
382 int32_t lv_display_get_offset_y(const lv_display_t * disp) in lv_display_get_offset_y() argument
384 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_offset_y()
386 if(disp == NULL) { in lv_display_get_offset_y()
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()
403 int32_t lv_display_get_dpi(const lv_display_t * disp) in lv_display_get_dpi() argument
405 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_dpi()
406 if(disp == NULL) return LV_DPI_DEF; /*Do not return 0 because it might be a divider*/ in lv_display_get_dpi()
407 return disp->dpi; in lv_display_get_dpi()
414 void lv_display_set_draw_buffers(lv_display_t * disp, lv_draw_buf_t * buf1, lv_draw_buf_t * buf2) in lv_display_set_draw_buffers() argument
416 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_draw_buffers()
417 if(disp == NULL) return; in lv_display_set_draw_buffers()
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()
424 void lv_display_set_buffers(lv_display_t * disp, void * buf1, void * buf2, uint32_t buf_size, in lv_display_set_buffers() argument
428 lv_color_format_t cf = lv_display_get_color_format(disp); in lv_display_set_buffers()
429 uint32_t w = lv_display_get_horizontal_resolution(disp); in lv_display_set_buffers()
430 uint32_t h = lv_display_get_vertical_resolution(disp); in lv_display_set_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()
452 lv_display_set_render_mode(disp, render_mode); in lv_display_set_buffers()
455 void lv_display_set_buffers_with_stride(lv_display_t * disp, void * buf1, void * buf2, uint32_t buf… in lv_display_set_buffers_with_stride() argument
459 lv_color_format_t cf = lv_display_get_color_format(disp); in lv_display_set_buffers_with_stride()
460 uint32_t w = lv_display_get_horizontal_resolution(disp); in lv_display_set_buffers_with_stride()
461 uint32_t h = lv_display_get_vertical_resolution(disp); in lv_display_set_buffers_with_stride()
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()
477 lv_display_set_render_mode(disp, render_mode); in lv_display_set_buffers_with_stride()
480 void lv_display_set_render_mode(lv_display_t * disp, lv_display_render_mode_t render_mode) in lv_display_set_render_mode() argument
482 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_render_mode()
483 if(disp == NULL) return; in lv_display_set_render_mode()
484 disp->render_mode = render_mode; in lv_display_set_render_mode()
487 void lv_display_set_flush_cb(lv_display_t * disp, lv_display_flush_cb_t flush_cb) in lv_display_set_flush_cb() argument
489 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_flush_cb()
490 if(disp == NULL) return; in lv_display_set_flush_cb()
492 disp->flush_cb = flush_cb; in lv_display_set_flush_cb()
495 void lv_display_set_flush_wait_cb(lv_display_t * disp, lv_display_flush_wait_cb_t wait_cb) in lv_display_set_flush_wait_cb() argument
497 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_flush_wait_cb()
498 if(disp == NULL) return; in lv_display_set_flush_wait_cb()
500 disp->flush_wait_cb = wait_cb; in lv_display_set_flush_wait_cb()
503 void lv_display_set_color_format(lv_display_t * disp, lv_color_format_t color_format) in lv_display_set_color_format() argument
505 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_color_format()
506 if(disp == NULL) return; in lv_display_set_color_format()
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()
513 lv_display_send_event(disp, LV_EVENT_COLOR_FORMAT_CHANGED, NULL); in lv_display_set_color_format()
516 lv_color_format_t lv_display_get_color_format(lv_display_t * disp) in lv_display_get_color_format() argument
518 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_color_format()
519 if(disp == NULL) return LV_COLOR_FORMAT_UNKNOWN; in lv_display_get_color_format()
521 return disp->color_format; in lv_display_get_color_format()
524 void lv_display_set_tile_cnt(lv_display_t * disp, uint32_t tile_cnt) in lv_display_set_tile_cnt() argument
528 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_tile_cnt()
529 if(disp == NULL) return; in lv_display_set_tile_cnt()
531 disp->tile_cnt = tile_cnt; in lv_display_set_tile_cnt()
534 uint32_t lv_display_get_tile_cnt(lv_display_t * disp) in lv_display_get_tile_cnt() argument
536 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_tile_cnt()
537 if(disp == NULL) return 0; in lv_display_get_tile_cnt()
539 return disp->tile_cnt; in lv_display_get_tile_cnt()
542 void lv_display_set_antialiasing(lv_display_t * disp, bool en) in lv_display_set_antialiasing() argument
544 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_antialiasing()
545 if(disp == NULL) return; in lv_display_set_antialiasing()
547 disp->antialiasing = en; in lv_display_set_antialiasing()
550 bool lv_display_get_antialiasing(lv_display_t * disp) in lv_display_get_antialiasing() argument
552 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_antialiasing()
553 if(disp == NULL) return false; in lv_display_get_antialiasing()
555 return disp->antialiasing; in lv_display_get_antialiasing()
558 LV_ATTRIBUTE_FLUSH_READY void lv_display_flush_ready(lv_display_t * disp) in lv_display_flush_ready() argument
560 disp->flushing = 0; in lv_display_flush_ready()
563 LV_ATTRIBUTE_FLUSH_READY bool lv_display_flush_is_last(lv_display_t * disp) in lv_display_flush_is_last() argument
565 return disp->flushing_last; in lv_display_flush_is_last()
568 bool lv_display_is_double_buffered(lv_display_t * disp) in lv_display_is_double_buffered() argument
570 return disp->buf_2 != NULL; in lv_display_is_double_buffered()
577 lv_obj_t * lv_display_get_screen_active(lv_display_t * disp) in lv_display_get_screen_active() argument
579 if(!disp) disp = lv_display_get_default(); in lv_display_get_screen_active()
580 if(!disp) { in lv_display_get_screen_active()
585 return disp->act_scr; in lv_display_get_screen_active()
588 lv_obj_t * lv_display_get_screen_prev(lv_display_t * disp) in lv_display_get_screen_prev() argument
590 if(!disp) disp = lv_display_get_default(); in lv_display_get_screen_prev()
591 if(!disp) { in lv_display_get_screen_prev()
596 return disp->prev_scr; in lv_display_get_screen_prev()
599 lv_obj_t * lv_display_get_layer_top(lv_display_t * disp) in lv_display_get_layer_top() argument
601 if(!disp) disp = lv_display_get_default(); in lv_display_get_layer_top()
602 if(!disp) { in lv_display_get_layer_top()
607 return disp->top_layer; in lv_display_get_layer_top()
610 lv_obj_t * lv_display_get_layer_sys(lv_display_t * disp) in lv_display_get_layer_sys() argument
612 if(!disp) disp = lv_display_get_default(); in lv_display_get_layer_sys()
613 if(!disp) { in lv_display_get_layer_sys()
618 return disp->sys_layer; in lv_display_get_layer_sys()
621 lv_obj_t * lv_display_get_layer_bottom(lv_display_t * disp) in lv_display_get_layer_bottom() argument
623 if(!disp) disp = lv_display_get_default(); in lv_display_get_layer_bottom()
624 if(!disp) { in lv_display_get_layer_bottom()
629 return disp->bottom_layer; in lv_display_get_layer_bottom()
785 void lv_display_add_event_cb(lv_display_t * disp, lv_event_cb_t event_cb, lv_event_code_t filter, v… in lv_display_add_event_cb() argument
787 LV_ASSERT_NULL(disp); in lv_display_add_event_cb()
789 lv_event_add(&disp->event_list, event_cb, filter, user_data); in lv_display_add_event_cb()
792 uint32_t lv_display_get_event_count(lv_display_t * disp) in lv_display_get_event_count() argument
794 LV_ASSERT_NULL(disp); in lv_display_get_event_count()
795 return lv_event_get_count(&disp->event_list); in lv_display_get_event_count()
798 lv_event_dsc_t * lv_display_get_event_dsc(lv_display_t * disp, uint32_t index) in lv_display_get_event_dsc() argument
800 LV_ASSERT_NULL(disp); in lv_display_get_event_dsc()
801 return lv_event_get_dsc(&disp->event_list, index); in lv_display_get_event_dsc()
805 bool lv_display_delete_event(lv_display_t * disp, uint32_t index) in lv_display_delete_event() argument
807 LV_ASSERT_NULL(disp); in lv_display_delete_event()
809 return lv_event_remove(&disp->event_list, index); in lv_display_delete_event()
812 uint32_t lv_display_remove_event_cb_with_user_data(lv_display_t * disp, lv_event_cb_t event_cb, voi… in lv_display_remove_event_cb_with_user_data() argument
814 LV_ASSERT_NULL(disp); in lv_display_remove_event_cb_with_user_data()
816 uint32_t event_cnt = lv_display_get_event_count(disp); in lv_display_remove_event_cb_with_user_data()
821 lv_event_dsc_t * dsc = lv_display_get_event_dsc(disp, i); in lv_display_remove_event_cb_with_user_data()
823 lv_display_delete_event(disp, i); in lv_display_remove_event_cb_with_user_data()
831 lv_result_t lv_display_send_event(lv_display_t * disp, lv_event_code_t code, void * param) in lv_display_send_event() argument
837 e.current_target = disp; in lv_display_send_event()
838 e.original_target = disp; in lv_display_send_event()
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()
861 void lv_display_set_rotation(lv_display_t * disp, lv_display_rotation_t rotation) in lv_display_set_rotation() argument
863 if(disp == NULL) disp = lv_display_get_default(); in lv_display_set_rotation()
864 if(disp == NULL) return; in lv_display_set_rotation()
866 disp->rotation = rotation; in lv_display_set_rotation()
867 update_resolution(disp); in lv_display_set_rotation()
870 lv_display_rotation_t lv_display_get_rotation(lv_display_t * disp) in lv_display_get_rotation() argument
872 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_rotation()
873 if(disp == NULL) return LV_DISPLAY_ROTATION_0; in lv_display_get_rotation()
874 return disp->rotation; in lv_display_get_rotation()
877 void lv_display_set_theme(lv_display_t * disp, lv_theme_t * th) in lv_display_set_theme() argument
879 if(!disp) disp = lv_display_get_default(); in lv_display_set_theme()
880 if(!disp) { in lv_display_set_theme()
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()
895 lv_theme_t * lv_display_get_theme(lv_display_t * disp) in lv_display_get_theme() argument
897 if(disp == NULL) disp = lv_display_get_default(); in lv_display_get_theme()
898 return disp->theme; in lv_display_get_theme()
901 uint32_t lv_display_get_inactive_time(const lv_display_t * disp) in lv_display_get_inactive_time() argument
903 if(disp) return lv_tick_elaps(disp->last_activity_time); in lv_display_get_inactive_time()
917 void lv_display_trigger_activity(lv_display_t * disp) in lv_display_trigger_activity() argument
919 if(!disp) disp = lv_display_get_default(); in lv_display_trigger_activity()
920 if(!disp) { in lv_display_trigger_activity()
925 disp->last_activity_time = lv_tick_get(); in lv_display_trigger_activity()
928 void lv_display_enable_invalidation(lv_display_t * disp, bool en) in lv_display_enable_invalidation() argument
930 if(!disp) disp = lv_display_get_default(); in lv_display_enable_invalidation()
931 if(!disp) { in lv_display_enable_invalidation()
936 disp->inv_en_cnt += en ? 1 : -1; in lv_display_enable_invalidation()
939 bool lv_display_is_invalidation_enabled(lv_display_t * disp) in lv_display_is_invalidation_enabled() argument
941 if(!disp) disp = lv_display_get_default(); in lv_display_is_invalidation_enabled()
942 if(!disp) { in lv_display_is_invalidation_enabled()
947 return (disp->inv_en_cnt > 0); in lv_display_is_invalidation_enabled()
950 lv_timer_t * lv_display_get_refr_timer(lv_display_t * disp) in lv_display_get_refr_timer() argument
952 if(!disp) disp = lv_display_get_default(); in lv_display_get_refr_timer()
953 if(!disp) return NULL; in lv_display_get_refr_timer()
955 return disp->refr_timer; in lv_display_get_refr_timer()
958 void lv_display_delete_refr_timer(lv_display_t * disp) in lv_display_delete_refr_timer() argument
960 if(!disp) disp = lv_display_get_default(); in lv_display_delete_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()
967 void lv_display_set_user_data(lv_display_t * disp, void * user_data) in lv_display_set_user_data() argument
969 if(!disp) disp = lv_display_get_default(); in lv_display_set_user_data()
970 if(!disp) return; in lv_display_set_user_data()
971 disp->user_data = user_data; in lv_display_set_user_data()
974 void lv_display_set_driver_data(lv_display_t * disp, void * driver_data) in lv_display_set_driver_data() argument
976 if(!disp) disp = lv_display_get_default(); in lv_display_set_driver_data()
977 if(!disp) return; in lv_display_set_driver_data()
979 disp->driver_data = driver_data; in lv_display_set_driver_data()
982 void * lv_display_get_user_data(lv_display_t * disp) in lv_display_get_user_data() argument
984 if(!disp) disp = lv_display_get_default(); in lv_display_get_user_data()
985 if(!disp) return NULL; in lv_display_get_user_data()
986 return disp->user_data; in lv_display_get_user_data()
989 void * lv_display_get_driver_data(lv_display_t * disp) in lv_display_get_driver_data() argument
991 if(!disp) disp = lv_display_get_default(); in lv_display_get_driver_data()
992 if(!disp) return NULL; in lv_display_get_driver_data()
994 return disp->driver_data; in lv_display_get_driver_data()
997 lv_draw_buf_t * lv_display_get_buf_active(lv_display_t * disp) in lv_display_get_buf_active() argument
999 if(!disp) disp = lv_display_get_default(); in lv_display_get_buf_active()
1000 if(!disp) return NULL; in lv_display_get_buf_active()
1001 return disp->buf_act; in lv_display_get_buf_active()
1004 void lv_display_rotate_area(lv_display_t * disp, lv_area_t * area) in lv_display_rotate_area() argument
1006 lv_display_rotation_t rotation = lv_display_get_rotation(disp); in lv_display_rotate_area()
1015 area->y2 = disp->ver_res - area->x1 - 1; in lv_display_rotate_area()
1021 area->y2 = disp->ver_res - area->y1 - 1; in lv_display_rotate_area()
1023 area->x2 = disp->hor_res - area->x1 - 1; in lv_display_rotate_area()
1027 area->x1 = disp->hor_res - area->y2 - 1; in lv_display_rotate_area()
1035 uint32_t lv_display_get_draw_buf_size(lv_display_t * disp) in lv_display_get_draw_buf_size() argument
1037 if(!disp) disp = lv_display_get_default(); in lv_display_get_draw_buf_size()
1038 if(!disp) return 0; in lv_display_get_draw_buf_size()
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()
1046 uint32_t lv_display_get_invalidated_draw_buf_size(lv_display_t * disp, uint32_t width, uint32_t hei… in lv_display_get_invalidated_draw_buf_size() argument
1048 if(!disp) disp = lv_display_get_default(); in lv_display_get_invalidated_draw_buf_size()
1049 if(!disp) return 0; in lv_display_get_invalidated_draw_buf_size()
1051 if(disp->render_mode == LV_DISPLAY_RENDER_MODE_FULL) { in lv_display_get_invalidated_draw_buf_size()
1052 width = lv_display_get_horizontal_resolution(disp); in lv_display_get_invalidated_draw_buf_size()
1053 height = lv_display_get_vertical_resolution(disp); in lv_display_get_invalidated_draw_buf_size()
1056 lv_color_format_t cf = lv_display_get_color_format(disp); 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()
1091 int32_t lv_display_dpx(const lv_display_t * disp, int32_t n) in lv_display_dpx() argument
1093 return LV_DPX_CALC(lv_display_get_dpi(disp), n); in lv_display_dpx()
1100 static void update_resolution(lv_display_t * disp) in update_resolution() argument
1102 int32_t hor_res = lv_display_get_horizontal_resolution(disp); in update_resolution()
1103 int32_t ver_res = lv_display_get_vertical_resolution(disp); in update_resolution()
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()
1133 lv_display_send_event(disp, LV_EVENT_RESOLUTION_CHANGED, NULL); in update_resolution()
1218 lv_display_t * disp = lv_event_get_target(e); in disp_event_cb() local
1221 if(disp->refr_timer) lv_timer_resume(disp->refr_timer); in disp_event_cb()