Lines Matching +full:- +full:p

50                                                                      lv_draw_mask_line_param_t * p);
53 … lv_draw_mask_line_param_t * p);
107 * - `LV_DRAW_MASK_RES_FULL_TRANSP`: the whole line is transparent. `mask_buf` is not set to zero
108 * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged
109 …* - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel…
119 while(m->param) { in lv_draw_mask_apply()
120 dsc = m->param; in lv_draw_mask_apply()
122 res = dsc->cb(mask_buf, abs_x, abs_y, len, (void *)m->param); in lv_draw_mask_apply()
141 * - `LV_DRAW_MASK_RES_FULL_TRANSP`: the whole line is transparent. `mask_buf` is not set to zero
142 * - `LV_DRAW_MASK_RES_FULL_COVER`: the whole line is fully visible. `mask_buf` is unchanged
143 …* - `LV_DRAW_MASK_RES_CHANGED`: `mask_buf` has changed, it shows the desired opacity of each pixel…
158 res = dsc->cb(mask_buf, abs_x, abs_y, len, dsc); in lv_draw_mask_apply_ids()
174 _lv_draw_mask_common_dsc_t * p = NULL; in lv_draw_mask_remove_id() local
177 p = LV_GC_ROOT(_lv_draw_mask_list[id]).param; in lv_draw_mask_remove_id()
182 return p; in lv_draw_mask_remove_id()
193 _lv_draw_mask_common_dsc_t * p = NULL; in lv_draw_mask_remove_custom() local
197 p = LV_GC_ROOT(_lv_draw_mask_list[i]).param; in lv_draw_mask_remove_custom()
201 return p; in lv_draw_mask_remove_custom()
209 * @param p pointer to a mask parameter
211 void lv_draw_mask_free_param(void * p) in lv_draw_mask_free_param() argument
213 _lv_draw_mask_common_dsc_t * pdsc = p; in lv_draw_mask_free_param()
214 if(pdsc->type == LV_DRAW_MASK_TYPE_RADIUS) { in lv_draw_mask_free_param()
215 lv_draw_mask_radius_param_t * radius_p = (lv_draw_mask_radius_param_t *) p; in lv_draw_mask_free_param()
216 if(radius_p->circle) { in lv_draw_mask_free_param()
217 if(radius_p->circle->life < 0) { in lv_draw_mask_free_param()
218 lv_mem_free(radius_p->circle->cir_opa); in lv_draw_mask_free_param()
219 lv_mem_free(radius_p->circle); in lv_draw_mask_free_param()
222 radius_p->circle->used_cnt--; in lv_draw_mask_free_param()
226 else if(pdsc->type == LV_DRAW_MASK_TYPE_POLYGON) { in lv_draw_mask_free_param()
227 lv_draw_mask_polygon_param_t * poly_p = (lv_draw_mask_polygon_param_t *) p; in lv_draw_mask_free_param()
228 lv_mem_free(poly_p->cfg.points); in lv_draw_mask_free_param()
265 if(comm_param->type == LV_DRAW_MASK_TYPE_RADIUS) { in lv_draw_mask_is_any()
267 if(radius_param->cfg.outer) { in lv_draw_mask_is_any()
268 … if(!_lv_area_is_out(a, &radius_param->cfg.rect, radius_param->cfg.radius)) return true; in lv_draw_mask_is_any()
271 … if(!_lv_area_is_in(a, &radius_param->cfg.rect, radius_param->cfg.radius)) return true; in lv_draw_mask_is_any()
300 p1y--; in lv_draw_mask_line_points_init()
301 p2y--; in lv_draw_mask_line_points_init()
315 param->cfg.p1.x = p1x; in lv_draw_mask_line_points_init()
316 param->cfg.p1.y = p1y; in lv_draw_mask_line_points_init()
317 param->cfg.p2.x = p2x; in lv_draw_mask_line_points_init()
318 param->cfg.p2.y = p2y; in lv_draw_mask_line_points_init()
319 param->cfg.side = side; in lv_draw_mask_line_points_init()
321 param->origo.x = p1x; in lv_draw_mask_line_points_init()
322 param->origo.y = p1y; in lv_draw_mask_line_points_init()
323 param->flat = (LV_ABS(p2x - p1x) > LV_ABS(p2y - p1y)) ? 1 : 0; in lv_draw_mask_line_points_init()
324 param->yx_steep = 0; in lv_draw_mask_line_points_init()
325 param->xy_steep = 0; in lv_draw_mask_line_points_init()
326 param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line; in lv_draw_mask_line_points_init()
327 param->dsc.type = LV_DRAW_MASK_TYPE_LINE; in lv_draw_mask_line_points_init()
329 int32_t dx = p2x - p1x; in lv_draw_mask_line_points_init()
330 int32_t dy = p2y - p1y; in lv_draw_mask_line_points_init()
332 if(param->flat) { in lv_draw_mask_line_points_init()
338 param->yx_steep = (m * dy) >> 10; in lv_draw_mask_line_points_init()
343 param->xy_steep = (m * dx) >> 10; in lv_draw_mask_line_points_init()
345 param->steep = param->yx_steep; in lv_draw_mask_line_points_init()
353 param->xy_steep = (m * dx) >> 10; in lv_draw_mask_line_points_init()
358 param->yx_steep = (m * dy) >> 10; in lv_draw_mask_line_points_init()
360 param->steep = param->xy_steep; in lv_draw_mask_line_points_init()
363 if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; in lv_draw_mask_line_points_init()
364 else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1; in lv_draw_mask_line_points_init()
365 else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) { in lv_draw_mask_line_points_init()
366 if(param->steep > 0) param->inv = 1; in lv_draw_mask_line_points_init()
367 else param->inv = 0; in lv_draw_mask_line_points_init()
369 else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) { in lv_draw_mask_line_points_init()
370 if(param->steep > 0) param->inv = 0; in lv_draw_mask_line_points_init()
371 else param->inv = 1; in lv_draw_mask_line_points_init()
374 param->spx = param->steep >> 2; in lv_draw_mask_line_points_init()
375 if(param->steep < 0) param->spx = -param->spx; in lv_draw_mask_line_points_init()
395 if(angle > 180) angle -= 180; /*> 180 will swap the origo*/ in lv_draw_mask_line_angle_init()
432 param->delta_deg = 360 - start_angle + end_angle; in lv_draw_mask_angle_init()
435 param->delta_deg = LV_ABS(end_angle - start_angle); in lv_draw_mask_angle_init()
438 param->cfg.start_angle = start_angle; in lv_draw_mask_angle_init()
439 param->cfg.end_angle = end_angle; in lv_draw_mask_angle_init()
440 param->cfg.vertex_p.x = vertex_x; in lv_draw_mask_angle_init()
441 param->cfg.vertex_p.y = vertex_y; in lv_draw_mask_angle_init()
442 param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_angle; in lv_draw_mask_angle_init()
443 param->dsc.type = LV_DRAW_MASK_TYPE_ANGLE; in lv_draw_mask_angle_init()
464 lv_draw_mask_line_angle_init(&param->start_line, vertex_x, vertex_y, start_angle, start_side); in lv_draw_mask_angle_init()
465 lv_draw_mask_line_angle_init(&param->end_line, vertex_x, vertex_y, end_angle, end_side); in lv_draw_mask_angle_init()
483 lv_area_copy(&param->cfg.rect, rect); in lv_draw_mask_radius_init()
484 param->cfg.radius = radius; in lv_draw_mask_radius_init()
485 param->cfg.outer = inv ? 1 : 0; in lv_draw_mask_radius_init()
486 param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius; in lv_draw_mask_radius_init()
487 param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS; in lv_draw_mask_radius_init()
490 param->circle = NULL; in lv_draw_mask_radius_init()
501 param->circle = &LV_GC_ROOT(_lv_circle_cache[i]); in lv_draw_mask_radius_init()
511 …else if(LV_GC_ROOT(_lv_circle_cache[i]).life < entry->life) entry = &LV_GC_ROOT(_lv_circle_cache[i… in lv_draw_mask_radius_init()
519 entry->life = -1; in lv_draw_mask_radius_init()
522 entry->used_cnt++; in lv_draw_mask_radius_init()
523 entry->life = 0; in lv_draw_mask_radius_init()
524 CIRCLE_CACHE_AGING(entry->life, radius); in lv_draw_mask_radius_init()
527 param->circle = entry; in lv_draw_mask_radius_init()
529 circ_calc_aa4(param->circle, radius); in lv_draw_mask_radius_init()
545 lv_area_copy(&param->cfg.coords, coords); in lv_draw_mask_fade_init()
546 param->cfg.opa_top = opa_top; in lv_draw_mask_fade_init()
547 param->cfg.opa_bottom = opa_bottom; in lv_draw_mask_fade_init()
548 param->cfg.y_top = y_top; in lv_draw_mask_fade_init()
549 param->cfg.y_bottom = y_bottom; in lv_draw_mask_fade_init()
550 param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_fade; in lv_draw_mask_fade_init()
551 param->dsc.type = LV_DRAW_MASK_TYPE_FADE; in lv_draw_mask_fade_init()
562 lv_area_copy(&param->cfg.coords, coords); in lv_draw_mask_map_init()
563 param->cfg.map = map; in lv_draw_mask_map_init()
564 param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_map; in lv_draw_mask_map_init()
565 param->dsc.type = LV_DRAW_MASK_TYPE_MAP; in lv_draw_mask_map_init()
571 lv_point_t * p = lv_mem_alloc(point_cnt * sizeof(lv_point_t)); in lv_draw_mask_polygon_init() local
572 if(p == NULL) return; in lv_draw_mask_polygon_init()
575 p[0] = points[0]; in lv_draw_mask_polygon_init()
576 for(i = 0; i < point_cnt - 1; i++) { in lv_draw_mask_polygon_init()
578 p[pcnt] = points[i]; in lv_draw_mask_polygon_init()
583 if(points[0].x != points[point_cnt - 1].x || points[0].y != points[point_cnt - 1].y) { in lv_draw_mask_polygon_init()
584 p[pcnt] = points[point_cnt - 1]; in lv_draw_mask_polygon_init()
587 param->cfg.points = p; in lv_draw_mask_polygon_init()
588 param->cfg.point_cnt = pcnt; in lv_draw_mask_polygon_init()
589 param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_polygon; in lv_draw_mask_polygon_init()
590 param->dsc.type = LV_DRAW_MASK_TYPE_POLYGON; in lv_draw_mask_polygon_init()
599 lv_draw_mask_line_param_t * p) in lv_draw_mask_line() argument
602 abs_y -= p->origo.y; in lv_draw_mask_line()
603 abs_x -= p->origo.x; in lv_draw_mask_line()
606 if(p->steep == 0) { in lv_draw_mask_line()
608 if(p->flat) { in lv_draw_mask_line()
610 if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT || in lv_draw_mask_line()
611 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_line()
612 …else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_C… in lv_draw_mask_line()
613 …else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_CO… in lv_draw_mask_line()
621 if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP || in lv_draw_mask_line()
622 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_line()
623 …else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COV… in lv_draw_mask_line()
624 else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) { in lv_draw_mask_line()
627 int32_t k = - abs_x; in lv_draw_mask_line()
629 if(k >= 0 && k < len) lv_memset_00(&mask_buf[k], len - k); in lv_draw_mask_line()
636 int32_t k = - abs_x; in lv_draw_mask_line()
647 if(p->flat) { in lv_draw_mask_line()
648 res = line_mask_flat(mask_buf, abs_x, abs_y, len, p); in lv_draw_mask_line()
651 res = line_mask_steep(mask_buf, abs_x, abs_y, len, p); in lv_draw_mask_line()
659 lv_draw_mask_line_param_t * p) in line_mask_flat() argument
663 y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10; in line_mask_flat()
665 if(p->yx_steep > 0) { in line_mask_flat()
667 if(p->inv) { in line_mask_flat()
677 if(p->inv) { in line_mask_flat()
688 y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10; in line_mask_flat()
689 if(p->yx_steep > 0) { in line_mask_flat()
691 if(p->inv) { in line_mask_flat()
701 if(p->inv) { in line_mask_flat()
711 if(p->yx_steep > 0) xe = ((abs_y * 256) * p->xy_steep) >> 10; in line_mask_flat()
712 else xe = (((abs_y + 1) * 256) * p->xy_steep) >> 10; in line_mask_flat()
719 else px_h = 255 - (((255 - xef) * p->spx) >> 8); in line_mask_flat()
720 int32_t k = xei - abs_x; in line_mask_flat()
725 m = 255 - (((255 - xef) * (255 - px_h)) >> 9); in line_mask_flat()
726 if(p->inv) m = 255 - m; in line_mask_flat()
732 while(px_h > p->spx) { in line_mask_flat()
734 m = px_h - (p->spx >> 1); in line_mask_flat()
735 if(p->inv) m = 255 - m; in line_mask_flat()
738 px_h -= p->spx; in line_mask_flat()
744 int32_t x_inters = (px_h * p->xy_steep) >> 10; in line_mask_flat()
746 if(p->yx_steep < 0) m = 255 - m; in line_mask_flat()
747 if(p->inv) m = 255 - m; in line_mask_flat()
751 if(p->inv) { in line_mask_flat()
752 k = xei - abs_x; in line_mask_flat()
766 lv_memset_00(&mask_buf[k], len - k); in line_mask_flat()
775 lv_draw_mask_line_param_t * p) in line_mask_steep() argument
781 x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; in line_mask_steep()
782 if(p->xy_steep > 0) x_at_y++; in line_mask_steep()
784 if(p->inv) { in line_mask_steep()
794 x_at_y = (int32_t)((int32_t)p->xy_steep * (abs_y)) >> 10; in line_mask_steep()
796 if(p->inv) { in line_mask_steep()
805 int32_t xs = ((abs_y * 256) * p->xy_steep) >> 10; in line_mask_steep()
810 int32_t xe = (((abs_y + 1) * 256) * p->xy_steep) >> 10; in line_mask_steep()
816 k = xsi - abs_x; in line_mask_steep()
817 if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { in line_mask_steep()
820 k--; in line_mask_steep()
826 if(p->inv) m = 255 - m; in line_mask_steep()
831 if(p->inv) { in line_mask_steep()
832 k = xsi - abs_x; in line_mask_steep()
842 else if(k > 0) lv_memset_00(&mask_buf[k], len - k); in line_mask_steep()
848 if(p->xy_steep < 0) { in line_mask_steep()
849 y_inters = (xsf * (-p->yx_steep)) >> 10; in line_mask_steep()
852 if(p->inv) m = 255 - m; in line_mask_steep()
855 k--; in line_mask_steep()
857 int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; in line_mask_steep()
860 m = 255 - (((255 - y_inters) * x_inters) >> 9); in line_mask_steep()
861 if(p->inv) m = 255 - m; in line_mask_steep()
867 if(p->inv) { in line_mask_steep()
868 k = xsi - abs_x - 1; in line_mask_steep()
876 if(k >= 0) lv_memset_00(&mask_buf[k], len - k); in line_mask_steep()
881 y_inters = ((255 - xsf) * p->yx_steep) >> 10; in line_mask_steep()
883 m = 255 - ((y_inters * (255 - xsf)) >> 9); in line_mask_steep()
884 if(p->inv) m = 255 - m; in line_mask_steep()
890 int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10; in line_mask_steep()
892 m = ((255 - y_inters) * x_inters) >> 9; in line_mask_steep()
893 if(p->inv) m = 255 - m; in line_mask_steep()
898 if(p->inv) { in line_mask_steep()
899 k = xsi - abs_x; in line_mask_steep()
907 else if(k > 0) lv_memset_00(&mask_buf[k], len - k); in line_mask_steep()
917 lv_draw_mask_angle_param_t * p) in lv_draw_mask_angle() argument
919 int32_t rel_y = abs_y - p->cfg.vertex_p.y; in lv_draw_mask_angle()
920 int32_t rel_x = abs_x - p->cfg.vertex_p.x; in lv_draw_mask_angle()
922 if(p->cfg.start_angle < 180 && p->cfg.end_angle < 180 && in lv_draw_mask_angle()
923 p->cfg.start_angle != 0 && p->cfg.end_angle != 0 && in lv_draw_mask_angle()
924 p->cfg.start_angle > p->cfg.end_angle) { in lv_draw_mask_angle()
926 if(abs_y < p->cfg.vertex_p.y) { in lv_draw_mask_angle()
931 int32_t end_angle_first = (rel_y * p->end_line.xy_steep) >> 10; in lv_draw_mask_angle()
932 int32_t start_angle_last = ((rel_y + 1) * p->start_line.xy_steep) >> 10; in lv_draw_mask_angle()
935 …if(p->cfg.start_angle > 270 && p->cfg.start_angle <= 359 && start_angle_last < 0) start_angle_last… in lv_draw_mask_angle()
936 …else if(p->cfg.start_angle > 0 && p->cfg.start_angle <= 90 && start_angle_last < 0) start_angle_la… in lv_draw_mask_angle()
937 …else if(p->cfg.start_angle > 90 && p->cfg.start_angle < 270 && start_angle_last > 0) start_angle_l… in lv_draw_mask_angle()
939 …if(p->cfg.end_angle > 270 && p->cfg.end_angle <= 359 && start_angle_last < 0) start_angle_last = 0; in lv_draw_mask_angle()
940 …else if(p->cfg.end_angle > 0 && p->cfg.end_angle <= 90 && start_angle_last < 0) start_angle_last… in lv_draw_mask_angle()
941 …else if(p->cfg.end_angle > 90 && p->cfg.end_angle < 270 && start_angle_last > 0) start_angle_last… in lv_draw_mask_angle()
943 int32_t dist = (end_angle_first - start_angle_last) >> 1; in lv_draw_mask_angle()
948 int32_t tmp = start_angle_last + dist - rel_x; in lv_draw_mask_angle()
951 res1 = lv_draw_mask_line(&mask_buf[0], abs_x, abs_y, tmp, &p->start_line); in lv_draw_mask_angle()
959 res2 = lv_draw_mask_line(&mask_buf[tmp], abs_x + tmp, abs_y, len - tmp, &p->end_line); in lv_draw_mask_angle()
961 lv_memset_00(&mask_buf[tmp], len - tmp); in lv_draw_mask_angle()
966 …else if(p->cfg.start_angle > 180 && p->cfg.end_angle > 180 && p->cfg.start_angle > p->cfg.end_angl… in lv_draw_mask_angle()
968 if(abs_y > p->cfg.vertex_p.y) { in lv_draw_mask_angle()
973 int32_t end_angle_first = (rel_y * p->end_line.xy_steep) >> 10; in lv_draw_mask_angle()
974 int32_t start_angle_last = ((rel_y + 1) * p->start_line.xy_steep) >> 10; in lv_draw_mask_angle()
977 …if(p->cfg.start_angle > 270 && p->cfg.start_angle <= 359 && start_angle_last < 0) start_angle_last… in lv_draw_mask_angle()
978 …else if(p->cfg.start_angle > 0 && p->cfg.start_angle <= 90 && start_angle_last < 0) start_angle_la… in lv_draw_mask_angle()
979 …else if(p->cfg.start_angle > 90 && p->cfg.start_angle < 270 && start_angle_last > 0) start_angle_l… in lv_draw_mask_angle()
981 …if(p->cfg.end_angle > 270 && p->cfg.end_angle <= 359 && start_angle_last < 0) start_angle_last = 0; in lv_draw_mask_angle()
982 …else if(p->cfg.end_angle > 0 && p->cfg.end_angle <= 90 && start_angle_last < 0) start_angle_last… in lv_draw_mask_angle()
983 …else if(p->cfg.end_angle > 90 && p->cfg.end_angle < 270 && start_angle_last > 0) start_angle_last… in lv_draw_mask_angle()
985 int32_t dist = (end_angle_first - start_angle_last) >> 1; in lv_draw_mask_angle()
990 int32_t tmp = start_angle_last + dist - rel_x; in lv_draw_mask_angle()
993 …s1 = lv_draw_mask_line(&mask_buf[0], abs_x, abs_y, tmp, (lv_draw_mask_line_param_t *)&p->end_line); in lv_draw_mask_angle()
1001 …v_draw_mask_line(&mask_buf[tmp], abs_x + tmp, abs_y, len - tmp, (lv_draw_mask_line_param_t *)&p->s… in lv_draw_mask_angle()
1003 lv_memset_00(&mask_buf[tmp], len - tmp); in lv_draw_mask_angle()
1013 if(p->cfg.start_angle == 180) { in lv_draw_mask_angle()
1014 if(abs_y < p->cfg.vertex_p.y) res1 = LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_angle()
1017 else if(p->cfg.start_angle == 0) { in lv_draw_mask_angle()
1018 if(abs_y < p->cfg.vertex_p.y) res1 = LV_DRAW_MASK_RES_UNKNOWN; in lv_draw_mask_angle()
1021 else if((p->cfg.start_angle < 180 && abs_y < p->cfg.vertex_p.y) || in lv_draw_mask_angle()
1022 (p->cfg.start_angle > 180 && abs_y >= p->cfg.vertex_p.y)) { in lv_draw_mask_angle()
1026 res1 = lv_draw_mask_line(mask_buf, abs_x, abs_y, len, &p->start_line); in lv_draw_mask_angle()
1029 if(p->cfg.end_angle == 180) { in lv_draw_mask_angle()
1030 if(abs_y < p->cfg.vertex_p.y) res2 = LV_DRAW_MASK_RES_UNKNOWN; in lv_draw_mask_angle()
1033 else if(p->cfg.end_angle == 0) { in lv_draw_mask_angle()
1034 if(abs_y < p->cfg.vertex_p.y) res2 = LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_angle()
1037 else if((p->cfg.end_angle < 180 && abs_y < p->cfg.vertex_p.y) || in lv_draw_mask_angle()
1038 (p->cfg.end_angle > 180 && abs_y >= p->cfg.vertex_p.y)) { in lv_draw_mask_angle()
1042 res2 = lv_draw_mask_line(mask_buf, abs_x, abs_y, len, &p->end_line); in lv_draw_mask_angle()
1054 lv_draw_mask_radius_param_t * p) in lv_draw_mask_radius() argument
1056 bool outer = p->cfg.outer; in lv_draw_mask_radius()
1057 int32_t radius = p->cfg.radius; in lv_draw_mask_radius()
1059 lv_area_copy(&rect, &p->cfg.rect); in lv_draw_mask_radius()
1072 if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || in lv_draw_mask_radius()
1073 (abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) { in lv_draw_mask_radius()
1076 int32_t last = rect.x1 - abs_x; in lv_draw_mask_radius()
1082 int32_t first = rect.x2 - abs_x + 1; in lv_draw_mask_radius()
1085 lv_memset_00(&mask_buf[first], len - first); in lv_draw_mask_radius()
1091 int32_t first = rect.x1 - abs_x; in lv_draw_mask_radius()
1094 int32_t last = rect.x2 - abs_x - first + 1; in lv_draw_mask_radius()
1095 if(first + last > len) last = len - first; in lv_draw_mask_radius()
1103 …rintf("exec: x:%d.. %d, y:%d: r:%d, %s\n", abs_x, abs_x + len - 1, abs_y, p->cfg.radius, p->cfg.ou… in lv_draw_mask_radius()
1105 …// if( abs_x == 276 && abs_x + len - 1 == 479 && abs_y == 63 && p->cfg.radius == 5 && p->cfg.ou… in lv_draw_mask_radius()
1110 int32_t k = rect.x1 - abs_x; /*First relevant coordinate on the of the mask*/ in lv_draw_mask_radius()
1113 abs_x -= rect.x1; in lv_draw_mask_radius()
1114 abs_y -= rect.y1; in lv_draw_mask_radius()
1120 cir_y = radius - abs_y - 1; in lv_draw_mask_radius()
1123 cir_y = abs_y - (h - radius); in lv_draw_mask_radius()
1125 lv_opa_t * aa_opa = get_next_line(p->circle, cir_y, &aa_len, &x_start); in lv_draw_mask_radius()
1126 lv_coord_t cir_x_right = k + w - radius + x_start; in lv_draw_mask_radius()
1127 lv_coord_t cir_x_left = k + radius - x_start - 1; in lv_draw_mask_radius()
1132 lv_opa_t opa = aa_opa[aa_len - i - 1]; in lv_draw_mask_radius()
1136 if(cir_x_left - i >= 0 && cir_x_left - i < len) { in lv_draw_mask_radius()
1137 mask_buf[cir_x_left - i] = mask_mix(opa, mask_buf[cir_x_left - i]); in lv_draw_mask_radius()
1143 lv_memset_00(&mask_buf[cir_x_right], len - cir_x_right); in lv_draw_mask_radius()
1146 cir_x_left = LV_CLAMP(0, cir_x_left - aa_len + 1, len); in lv_draw_mask_radius()
1151 lv_opa_t opa = 255 - (aa_opa[aa_len - 1 - i]); in lv_draw_mask_radius()
1155 if(cir_x_left - i >= 0 && cir_x_left - i < len) { in lv_draw_mask_radius()
1156 mask_buf[cir_x_left - i] = mask_mix(opa, mask_buf[cir_x_left - i]); in lv_draw_mask_radius()
1161 lv_coord_t clr_len = LV_CLAMP(0, cir_x_right - clr_start, len - clr_start); in lv_draw_mask_radius()
1170 lv_draw_mask_fade_param_t * p) in lv_draw_mask_fade() argument
1172 if(abs_y < p->cfg.coords.y1) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_fade()
1173 if(abs_y > p->cfg.coords.y2) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_fade()
1174 if(abs_x + len < p->cfg.coords.x1) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_fade()
1175 if(abs_x > p->cfg.coords.x2) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_fade()
1177 if(abs_x + len > p->cfg.coords.x2) len -= abs_x + len - p->cfg.coords.x2 - 1; in lv_draw_mask_fade()
1179 if(abs_x < p->cfg.coords.x1) { in lv_draw_mask_fade()
1181 x_ofs = p->cfg.coords.x1 - abs_x; in lv_draw_mask_fade()
1182 len -= x_ofs; in lv_draw_mask_fade()
1188 if(abs_y <= p->cfg.y_top) { in lv_draw_mask_fade()
1190 mask_buf[i] = mask_mix(mask_buf[i], p->cfg.opa_top); in lv_draw_mask_fade()
1194 else if(abs_y >= p->cfg.y_bottom) { in lv_draw_mask_fade()
1196 mask_buf[i] = mask_mix(mask_buf[i], p->cfg.opa_bottom); in lv_draw_mask_fade()
1202 int16_t opa_diff = p->cfg.opa_bottom - p->cfg.opa_top; in lv_draw_mask_fade()
1203 int32_t y_diff = p->cfg.y_bottom - p->cfg.y_top + 1; in lv_draw_mask_fade()
1204 lv_opa_t opa_act = (int32_t)((int32_t)(abs_y - p->cfg.y_top) * opa_diff) / y_diff; in lv_draw_mask_fade()
1205 opa_act += p->cfg.opa_top; in lv_draw_mask_fade()
1216 lv_draw_mask_map_param_t * p) in lv_draw_mask_map() argument
1219 if(abs_y < p->cfg.coords.y1) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_map()
1220 if(abs_y > p->cfg.coords.y2) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_map()
1221 if(abs_x + len < p->cfg.coords.x1) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_map()
1222 if(abs_x > p->cfg.coords.x2) return LV_DRAW_MASK_RES_FULL_COVER; in lv_draw_mask_map()
1225 const lv_opa_t * map_tmp = p->cfg.map; in lv_draw_mask_map()
1226 map_tmp += (abs_y - p->cfg.coords.y1) * lv_area_get_width(&p->cfg.coords); in lv_draw_mask_map()
1228 if(abs_x + len > p->cfg.coords.x2) len -= abs_x + len - p->cfg.coords.x2 - 1; in lv_draw_mask_map()
1230 if(abs_x < p->cfg.coords.x1) { in lv_draw_mask_map()
1232 x_ofs = p->cfg.coords.x1 - abs_x; in lv_draw_mask_map()
1233 len -= x_ofs; in lv_draw_mask_map()
1237 map_tmp += (abs_x - p->cfg.coords.x1); in lv_draw_mask_map()
1260 for(i = 0; i < param->cfg.point_cnt; i++) { in lv_draw_mask_polygon()
1261 lv_point_t p1 = param->cfg.points[i]; in lv_draw_mask_polygon()
1262 lv_point_t p2 = param->cfg.points[i + 1 < param->cfg.point_cnt ? i + 1 : 0]; in lv_draw_mask_polygon()
1263 int pdiff = p1.y - p2.y, psign = pdiff / LV_ABS(pdiff); in lv_draw_mask_polygon()
1329 c->x = radius; in circ_init()
1330 c->y = 0; in circ_init()
1331 *tmp = 1 - radius; in circ_init()
1341 return c->y <= c->x ? true : false; in circ_cont()
1353 (*tmp) += 2 * c->y + 3; /*Change in decision criterion for y -> y+1*/ in circ_next()
1356 (*tmp) += 2 * (c->y - c->x) + 5; /*Change for y -> y+1, x -> x-1*/ in circ_next()
1357 c->x--; in circ_next()
1359 c->y++; in circ_next()
1365 c->radius = radius; in circ_calc_aa4()
1368 if(c->buf) lv_mem_free(c->buf); in circ_calc_aa4()
1370 c->buf = lv_mem_alloc(radius * 6 + 6); /*Use uint16_t for opa_start_on_y and x_start_on_y*/ in circ_calc_aa4()
1371 LV_ASSERT_MALLOC(c->buf); in circ_calc_aa4()
1372 c->cir_opa = c->buf; in circ_calc_aa4()
1373 c->opa_start_on_y = (uint16_t *)(c->buf + 2 * radius + 2); in circ_calc_aa4()
1374 c->x_start_on_y = (uint16_t *)(c->buf + 4 * radius + 4); in circ_calc_aa4()
1378 c->cir_opa[0] = 180; in circ_calc_aa4()
1379 c->opa_start_on_y[0] = 0; in circ_calc_aa4()
1380 c->opa_start_on_y[1] = 1; in circ_calc_aa4()
1381 c->x_start_on_y[0] = 0; in circ_calc_aa4()
1415 c->cir_opa[cir_size] = x_fract[0] + x_fract[1] + x_fract[2] + x_fract[3]; in circ_calc_aa4()
1416 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1423 c->cir_opa[cir_size] = x_fract[0]; in circ_calc_aa4()
1424 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1427 cir_x[cir_size] = x_int[0] - 1; in circ_calc_aa4()
1429 c->cir_opa[cir_size] = 1 * 4 + x_fract[1] + x_fract[2] + x_fract[3];; in circ_calc_aa4()
1430 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1437 c->cir_opa[cir_size] = x_fract[0] + x_fract[1]; in circ_calc_aa4()
1438 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1441 cir_x[cir_size] = x_int[0] - 1; in circ_calc_aa4()
1443 c->cir_opa[cir_size] = 2 * 4 + x_fract[2] + x_fract[3];; in circ_calc_aa4()
1444 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1451 c->cir_opa[cir_size] = x_fract[0] + x_fract[1] + x_fract[2]; in circ_calc_aa4()
1452 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1455 cir_x[cir_size] = x_int[0] - 1; in circ_calc_aa4()
1457 c->cir_opa[cir_size] = 3 * 4 + x_fract[3];; in circ_calc_aa4()
1458 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1468 if(cir_x[cir_size - 1] != mid_int || cir_y[cir_size - 1] != mid_int) { in circ_calc_aa4()
1469 int32_t tmp_val = mid - (mid_int << 10); in circ_calc_aa4()
1475 tmp_val = 1024 - tmp_val; in circ_calc_aa4()
1478 tmp_val = 15 - tmp_val; in circ_calc_aa4()
1483 c->cir_opa[cir_size] = tmp_val; in circ_calc_aa4()
1484 c->cir_opa[cir_size] *= 16; in circ_calc_aa4()
1489 for(i = cir_size - 2; i >= 0; i--, cir_size++) { in circ_calc_aa4()
1492 c->cir_opa[cir_size] = c->cir_opa[i]; in circ_calc_aa4()
1497 c->opa_start_on_y[0] = 0; in circ_calc_aa4()
1499 c->opa_start_on_y[y] = i; in circ_calc_aa4()
1500 c->x_start_on_y[y] = cir_x[i]; in circ_calc_aa4()
1502 c->x_start_on_y[y] = LV_MIN(c->x_start_on_y[y], cir_x[i]); in circ_calc_aa4()
1513 *len = c->opa_start_on_y[y + 1] - c->opa_start_on_y[y]; in get_next_line()
1514 *x_start = c->x_start_on_y[y]; in get_next_line()
1515 return &c->cir_opa[c->opa_start_on_y[y]]; in get_next_line()