Lines Matching refs:layer

46 static void refr_configured_layer(lv_layer_t * layer);
48 static void refr_obj_and_children(lv_layer_t * layer, lv_obj_t * top_obj);
49 static void refr_obj(lv_layer_t * layer, lv_obj_t * obj);
100 void lv_obj_redraw(lv_layer_t * layer, lv_obj_t * obj) in lv_obj_redraw() argument
103 lv_area_t clip_area_ori = layer->_clip_area; in lv_obj_redraw()
117 layer->_clip_area = clip_coords_for_obj; in lv_obj_redraw()
119 lv_obj_send_event(obj, LV_EVENT_DRAW_MAIN_BEGIN, layer); in lv_obj_redraw()
120 lv_obj_send_event(obj, LV_EVENT_DRAW_MAIN, layer); in lv_obj_redraw()
121 lv_obj_send_event(obj, LV_EVENT_DRAW_MAIN_END, layer); in lv_obj_redraw()
131 lv_draw_rect(layer, &draw_dsc, &obj_coords_ext); in lv_obj_redraw()
152 layer->_clip_area = clip_coords_for_obj; in lv_obj_redraw()
154 lv_obj_send_event(obj, LV_EVENT_DRAW_POST_BEGIN, layer); in lv_obj_redraw()
155 lv_obj_send_event(obj, LV_EVENT_DRAW_POST, layer); in lv_obj_redraw()
156 lv_obj_send_event(obj, LV_EVENT_DRAW_POST_END, layer); in lv_obj_redraw()
159 layer->_clip_area = clip_coords_for_children; in lv_obj_redraw()
171 refr_obj(layer, child); in lv_obj_redraw()
175 layer->_clip_area = clip_coords_for_obj; in lv_obj_redraw()
177 lv_obj_send_event(obj, LV_EVENT_DRAW_POST_BEGIN, layer); in lv_obj_redraw()
178 lv_obj_send_event(obj, LV_EVENT_DRAW_POST, layer); in lv_obj_redraw()
179 lv_obj_send_event(obj, LV_EVENT_DRAW_POST_END, layer); in lv_obj_redraw()
197 layer_children = lv_draw_layer_create(layer, LV_COLOR_FORMAT_ARGB8888, &bottom); in lv_obj_redraw()
212 lv_draw_layer(layer, &img_draw_dsc, &bottom); in lv_obj_redraw()
218 layer_children = lv_draw_layer_create(layer, LV_COLOR_FORMAT_ARGB8888, &top); in lv_obj_redraw()
233 lv_draw_layer(layer, &img_draw_dsc, &top); in lv_obj_redraw()
241 layer->_clip_area = mid; in lv_obj_redraw()
244 refr_obj(layer, child); in lv_obj_redraw()
248 lv_obj_send_event(obj, LV_EVENT_DRAW_POST_BEGIN, layer); in lv_obj_redraw()
249 lv_obj_send_event(obj, LV_EVENT_DRAW_POST, layer); in lv_obj_redraw()
250 lv_obj_send_event(obj, LV_EVENT_DRAW_POST_END, layer); in lv_obj_redraw()
258 layer->_clip_area = clip_area_ori; in lv_obj_redraw()
641 static void layer_reshape_draw_buf(lv_layer_t * layer, uint32_t stride) in layer_reshape_draw_buf() argument
644 layer->draw_buf, in layer_reshape_draw_buf()
645 layer->color_format, in layer_reshape_draw_buf()
646 lv_area_get_width(&layer->buf_area), in layer_reshape_draw_buf()
647 lv_area_get_height(&layer->buf_area), in layer_reshape_draw_buf()
660 lv_layer_t * layer = disp_refr->layer_head; in refr_area() local
661 layer->draw_buf = disp_refr->buf_act; in refr_area()
662 layer->_clip_area = *area_p; in refr_area()
663 layer->phy_clip_area = *area_p; in refr_area()
667 layer->buf_area = *area_p; in refr_area()
668 layer_reshape_draw_buf(layer, layer->draw_buf->header.stride); in refr_area()
673 layer->buf_area = *area_p; in refr_area()
674 layer_reshape_draw_buf(layer, LV_STRIDE_AUTO); in refr_area()
678 layer->buf_area.x1 = 0; in refr_area()
679 layer->buf_area.y1 = 0; in refr_area()
680 layer->buf_area.x2 = lv_display_get_horizontal_resolution(disp_refr) - 1; in refr_area()
681 layer->buf_area.y2 = lv_display_get_vertical_resolution(disp_refr) - 1; in refr_area()
682 layer_reshape_draw_buf(layer, layer->draw_buf->header.stride); in refr_area()
688 if(LV_COLOR_FORMAT_IS_INDEXED(layer->color_format) == false) { in refr_area()
694 uint32_t total_buf_size = layer->draw_buf->data_size; in refr_area()
696 … uint32_t area_buf_size = lv_area_get_size(area_p) * lv_color_format_get_size(layer->color_format); in refr_area()
703 refr_configured_layer(layer); in refr_area()
727 lv_draw_layer_init(tile_layer, NULL, layer->color_format, &tile_area); in refr_area()
728 tile_layer->buf_area = layer->buf_area; /*the buffer is still large*/ in refr_area()
729 tile_layer->draw_buf = layer->draw_buf; in refr_area()
760 static void refr_configured_layer(lv_layer_t * layer) in refr_configured_layer() argument
764 lv_layer_reset(layer); in refr_configured_layer()
773 lv_area_t clear_area = layer->_clip_area; in refr_configured_layer()
774 lv_area_move(&clear_area, -layer->buf_area.x1, -layer->buf_area.y1); in refr_configured_layer()
775 lv_draw_buf_clear(layer->draw_buf, &clear_area); in refr_configured_layer()
782 top_act_scr = lv_refr_get_top_obj(&layer->_clip_area, lv_display_get_screen_active(disp_refr)); in refr_configured_layer()
784 top_prev_scr = lv_refr_get_top_obj(&layer->_clip_area, disp_refr->prev_scr); in refr_configured_layer()
789 refr_obj_and_children(layer, lv_display_get_layer_bottom(disp_refr)); in refr_configured_layer()
794 refr_obj_and_children(layer, top_act_scr); in refr_configured_layer()
799 refr_obj_and_children(layer, top_prev_scr); in refr_configured_layer()
806 refr_obj_and_children(layer, top_prev_scr); in refr_configured_layer()
810 refr_obj_and_children(layer, top_act_scr); in refr_configured_layer()
814 refr_obj_and_children(layer, lv_display_get_layer_top(disp_refr)); in refr_configured_layer()
815 refr_obj_and_children(layer, lv_display_get_layer_sys(disp_refr)); in refr_configured_layer()
867 static void refr_obj_and_children(lv_layer_t * layer, lv_obj_t * top_obj) in refr_obj_and_children() argument
877 refr_obj(layer, top_obj); in refr_obj_and_children()
897 refr_obj(layer, child); in refr_obj_and_children()
902 lv_obj_send_event(parent, LV_EVENT_DRAW_POST_BEGIN, (void *)layer); in refr_obj_and_children()
903 lv_obj_send_event(parent, LV_EVENT_DRAW_POST, (void *)layer); in refr_obj_and_children()
904 lv_obj_send_event(parent, LV_EVENT_DRAW_POST_END, (void *)layer); in refr_obj_and_children()
915 static lv_result_t layer_get_area(lv_layer_t * layer, lv_obj_t * obj, lv_layer_type_t layer_type, in layer_get_area() argument
928 if(!lv_area_intersect(&clip_coords_for_obj, &layer->_clip_area, &tranf_coords)) { in layer_get_area()
946 if(!lv_area_intersect(&clip_coords_for_obj, &layer->_clip_area, obj_draw_size_out)) { in layer_get_area()
1028 static void refr_obj_matrix(lv_layer_t * layer, lv_obj_t * obj) in refr_obj_matrix() argument
1046 lv_matrix_t ori_matrix = layer->matrix; in refr_obj_matrix()
1049 lv_matrix_multiply(&layer->matrix, &obj_matrix); in refr_obj_matrix()
1052 lv_area_t clip_area = layer->_clip_area; in refr_obj_matrix()
1053 lv_area_t clip_area_ori = layer->_clip_area; in refr_obj_matrix()
1061 layer->_clip_area = clip_area; in refr_obj_matrix()
1064 lv_obj_redraw(layer, obj); in refr_obj_matrix()
1067 layer->matrix = ori_matrix; in refr_obj_matrix()
1069 layer->_clip_area = clip_area_ori; in refr_obj_matrix()
1073 static bool refr_check_obj_clip_overflow(lv_layer_t * layer, lv_obj_t * obj) in refr_check_obj_clip_overflow() argument
1088 if(!lv_area_intersect(&clip_coords_for_obj, &layer->_clip_area, &obj_coords)) { in refr_check_obj_clip_overflow()
1098 static void refr_obj(lv_layer_t * layer, lv_obj_t * obj) in refr_obj() argument
1106 const lv_opa_t layer_opa_ori = layer->opa; in refr_obj()
1111 layer->opa = LV_OPA_MIX2(layer_opa_ori, opa_main); in refr_obj()
1116 lv_obj_redraw(layer, obj); in refr_obj()
1120 else if(opa_layered >= LV_OPA_MAX && !refr_check_obj_clip_overflow(layer, obj)) { in refr_obj()
1121 refr_obj_matrix(layer, obj); in refr_obj()
1127 lv_result_t res = layer_get_area(layer, obj, layer_type, &layer_area_full, &obj_draw_size); in refr_obj()
1160 lv_layer_t * new_layer = lv_draw_layer_create(layer, in refr_obj()
1195 lv_draw_layer(layer, &layer_draw_dsc, &layer_area_act); in refr_obj()
1202 layer->opa = layer_opa_ori; in refr_obj()
1256 lv_layer_t * layer = disp->layer_head; in draw_buf_flush() local
1258 while(layer->draw_task_head) { in draw_buf_flush()
1279 call_flush_cb(disp, &disp->refreshed_area, layer->draw_buf->data); in draw_buf_flush()