Lines Matching +full:- +full:w
66 void lv_canvas_set_buffer(lv_obj_t * obj, void * buf, lv_coord_t w, lv_coord_t h, lv_img_cf_t cf) in lv_canvas_set_buffer() argument
73 canvas->dsc.header.cf = cf; in lv_canvas_set_buffer()
74 canvas->dsc.header.w = w; in lv_canvas_set_buffer()
75 canvas->dsc.header.h = h; in lv_canvas_set_buffer()
76 canvas->dsc.data = buf; in lv_canvas_set_buffer()
78 lv_img_set_src(obj, &canvas->dsc); in lv_canvas_set_buffer()
79 lv_img_cache_invalidate_src(&canvas->dsc); in lv_canvas_set_buffer()
88 lv_img_buf_set_px_color(&canvas->dsc, x, y, c); in lv_canvas_set_px_color()
98 lv_img_buf_set_px_alpha(&canvas->dsc, x, y, opa); in lv_canvas_set_px_opa()
108 lv_img_buf_set_palette(&canvas->dsc, id, c); in lv_canvas_set_palette()
123 return lv_img_buf_get_px_color(&canvas->dsc, x, y, color); in lv_canvas_get_px()
131 return &canvas->dsc; in lv_canvas_get_img()
138 …y_buf(lv_obj_t * obj, const void * to_copy, lv_coord_t x, lv_coord_t y, lv_coord_t w, lv_coord_t h) in lv_canvas_copy_buf() argument
145 …if(x + w - 1 >= (lv_coord_t)canvas->dsc.header.w || y + h - 1 >= (lv_coord_t)canvas->dsc.header.h)… in lv_canvas_copy_buf()
150 uint32_t px_size = lv_img_cf_get_px_size(canvas->dsc.header.cf) >> 3; in lv_canvas_copy_buf()
151 uint32_t px = canvas->dsc.header.w * y * px_size + x * px_size; in lv_canvas_copy_buf()
155 lv_memcpy((void *)&canvas->dsc.data[px], to_copy8, w * px_size); in lv_canvas_copy_buf()
156 px += canvas->dsc.header.w * px_size; in lv_canvas_copy_buf()
157 to_copy8 += w * px_size; in lv_canvas_copy_buf()
170 lv_img_dsc_t * dest_img = &canvas->dsc; in lv_canvas_transform()
184 dest_area.x1 = -offset_x; in lv_canvas_transform()
185 dest_area.x2 = dest_area.x1 + dest_img->header.w - 1; in lv_canvas_transform()
186 dest_area.y1 = -offset_y; in lv_canvas_transform()
187 dest_area.y2 = -offset_y; in lv_canvas_transform()
189 lv_color_t * cbuf = lv_mem_alloc(dest_img->header.w * sizeof(lv_color_t)); in lv_canvas_transform()
190 lv_opa_t * abuf = lv_mem_alloc(dest_img->header.w * sizeof(lv_opa_t)); in lv_canvas_transform()
191 for(y = 0; y < dest_img->header.h; y++) { in lv_canvas_transform()
192 …v_draw_sw_transform(NULL, &dest_area, src_img->data, src_img->header.w, src_img->header.h, src_img… in lv_canvas_transform()
193 &draw_dsc, canvas->dsc.header.cf, cbuf, abuf); in lv_canvas_transform()
195 for(x = 0; x < dest_img->header.w; x++) { in lv_canvas_transform()
237 if(a.x2 > canvas->dsc.header.w - 1) a.x2 = canvas->dsc.header.w - 1; in lv_canvas_blur_hor()
238 if(a.y2 > canvas->dsc.header.h - 1) a.y2 = canvas->dsc.header.h - 1; in lv_canvas_blur_hor()
243 a.x2 = canvas->dsc.header.w - 1; in lv_canvas_blur_hor()
244 a.y2 = canvas->dsc.header.h - 1; in lv_canvas_blur_hor()
252 if((r & 0x1) == 0) r_back--; in lv_canvas_blur_hor()
254 bool has_alpha = lv_img_cf_has_alpha(canvas->dsc.header.cf); in lv_canvas_blur_hor()
256 lv_coord_t line_w = lv_img_buf_get_img_size(canvas->dsc.header.w, 1, canvas->dsc.header.cf); in lv_canvas_blur_hor()
262 line_img.header.w = canvas->dsc.header.w; in lv_canvas_blur_hor()
264 line_img.header.cf = canvas->dsc.header.cf; in lv_canvas_blur_hor()
278 lv_memcpy(line_buf, &canvas->dsc.data[y * line_w], line_w); in lv_canvas_blur_hor()
280 for(x = a.x1 - r_back; x <= a.x1 + r_front; x++) { in lv_canvas_blur_hor()
282 x_safe = x_safe > canvas->dsc.header.w - 1 ? canvas->dsc.header.w - 1 : x_safe; in lv_canvas_blur_hor()
314 lv_img_buf_set_px_color(&canvas->dsc, x, y, c); in lv_canvas_blur_hor()
316 if(has_alpha) lv_img_buf_set_px_alpha(&canvas->dsc, x, y, opa); in lv_canvas_blur_hor()
318 x_safe = x - r_back; in lv_canvas_blur_hor()
323 rsum -= c.ch.red; in lv_canvas_blur_hor()
325 gsum -= (c.ch.green_h << 3) + c.ch.green_l; in lv_canvas_blur_hor()
327 gsum -= c.ch.green; in lv_canvas_blur_hor()
329 bsum -= c.ch.blue; in lv_canvas_blur_hor()
330 if(has_alpha) asum -= opa; in lv_canvas_blur_hor()
333 x_safe = x_safe > canvas->dsc.header.w - 1 ? canvas->dsc.header.w - 1 : x_safe; in lv_canvas_blur_hor()
365 if(a.x2 > canvas->dsc.header.w - 1) a.x2 = canvas->dsc.header.w - 1; in lv_canvas_blur_ver()
366 if(a.y2 > canvas->dsc.header.h - 1) a.y2 = canvas->dsc.header.h - 1; in lv_canvas_blur_ver()
371 a.x2 = canvas->dsc.header.w - 1; in lv_canvas_blur_ver()
372 a.y2 = canvas->dsc.header.h - 1; in lv_canvas_blur_ver()
380 if((r & 0x1) == 0) r_back--; in lv_canvas_blur_ver()
382 bool has_alpha = lv_img_cf_has_alpha(canvas->dsc.header.cf); in lv_canvas_blur_ver()
383 lv_coord_t col_w = lv_img_buf_get_img_size(1, canvas->dsc.header.h, canvas->dsc.header.cf); in lv_canvas_blur_ver()
389 line_img.header.w = 1; in lv_canvas_blur_ver()
390 line_img.header.h = canvas->dsc.header.h; in lv_canvas_blur_ver()
391 line_img.header.cf = canvas->dsc.header.cf; in lv_canvas_blur_ver()
406 for(y = a.y1 - r_back; y <= a.y1 + r_front; y++) { in lv_canvas_blur_ver()
408 y_safe = y_safe > canvas->dsc.header.h - 1 ? canvas->dsc.header.h - 1 : y_safe; in lv_canvas_blur_ver()
410 c = lv_img_buf_get_px_color(&canvas->dsc, x, y_safe, color); in lv_canvas_blur_ver()
411 if(has_alpha) opa = lv_img_buf_get_px_alpha(&canvas->dsc, x, y_safe); in lv_canvas_blur_ver()
442 lv_img_buf_set_px_color(&canvas->dsc, x, y, c); in lv_canvas_blur_ver()
444 if(has_alpha) lv_img_buf_set_px_alpha(&canvas->dsc, x, y, opa); in lv_canvas_blur_ver()
446 y_safe = y - r_back; in lv_canvas_blur_ver()
451 rsum -= c.ch.red; in lv_canvas_blur_ver()
453 gsum -= (c.ch.green_h << 3) + c.ch.green_l; in lv_canvas_blur_ver()
455 gsum -= c.ch.green; in lv_canvas_blur_ver()
457 bsum -= c.ch.blue; in lv_canvas_blur_ver()
458 if(has_alpha) asum -= opa; in lv_canvas_blur_ver()
461 y_safe = y_safe > canvas->dsc.header.h - 1 ? canvas->dsc.header.h - 1 : y_safe; in lv_canvas_blur_ver()
463 c = lv_img_buf_get_px_color(&canvas->dsc, x, y_safe, color); in lv_canvas_blur_ver()
464 if(has_alpha) opa = lv_img_buf_get_px_alpha(&canvas->dsc, x, y_safe); in lv_canvas_blur_ver()
491 if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT) { in lv_canvas_fill_bg()
492 uint32_t row_byte_cnt = (dsc->header.w + 7) >> 3; in lv_canvas_fill_bg()
494 lv_memset((uint8_t *)dsc->data + 8, color.full ? 0xff : 0x00, row_byte_cnt * dsc->header.h); in lv_canvas_fill_bg()
496 else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) { in lv_canvas_fill_bg()
497 uint32_t row_byte_cnt = (dsc->header.w + 7) >> 3; in lv_canvas_fill_bg()
498 … lv_memset((uint8_t *)dsc->data, opa > LV_OPA_50 ? 0xff : 0x00, row_byte_cnt * dsc->header.h); in lv_canvas_fill_bg()
503 for(y = 0; y < dsc->header.h; y++) { in lv_canvas_fill_bg()
504 for(x = 0; x < dsc->header.w; x++) { in lv_canvas_fill_bg()
514 void lv_canvas_draw_rect(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_coord_t w, lv_coord_t h, in lv_canvas_draw_rect() argument
521 if(dsc->header.cf >= LV_IMG_CF_INDEXED_1BIT && dsc->header.cf <= LV_IMG_CF_INDEXED_8BIT) { in lv_canvas_draw_rect()
536 /*Disable anti-aliasing if drawing with transparent color to chroma keyed canvas*/ in lv_canvas_draw_rect()
538 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED && in lv_canvas_draw_rect()
539 draw_dsc->bg_color.full == ctransp.full) { in lv_canvas_draw_rect()
540 fake_disp.driver->antialiasing = 0; in lv_canvas_draw_rect()
546 coords.x2 = x + w - 1; in lv_canvas_draw_rect()
547 coords.y2 = y + h - 1; in lv_canvas_draw_rect()
565 if(dsc->header.cf >= LV_IMG_CF_INDEXED_1BIT && dsc->header.cf <= LV_IMG_CF_INDEXED_8BIT) { in lv_canvas_draw_text()
583 coords.x2 = x + max_w - 1; in lv_canvas_draw_text()
584 coords.y2 = dsc->header.h - 1; in lv_canvas_draw_text()
601 if(dsc->header.cf >= LV_IMG_CF_INDEXED_1BIT && dsc->header.cf <= LV_IMG_CF_INDEXED_8BIT) { in lv_canvas_draw_img()
625 coords.x2 = x + header.w - 1; in lv_canvas_draw_img()
626 coords.y2 = y + header.h - 1; in lv_canvas_draw_img()
644 if(dsc->header.cf >= LV_IMG_CF_INDEXED_1BIT && dsc->header.cf <= LV_IMG_CF_INDEXED_8BIT) { in lv_canvas_draw_line()
659 /*Disable anti-aliasing if drawing with transparent color to chroma keyed canvas*/ in lv_canvas_draw_line()
661 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED && in lv_canvas_draw_line()
662 draw_dsc->color.full == ctransp.full) { in lv_canvas_draw_line()
663 fake_disp.driver->antialiasing = 0; in lv_canvas_draw_line()
667 for(i = 0; i < point_cnt - 1; i++) { in lv_canvas_draw_line()
685 if(dsc->header.cf >= LV_IMG_CF_INDEXED_1BIT && dsc->header.cf <= LV_IMG_CF_INDEXED_8BIT) { in lv_canvas_draw_polygon()
700 /*Disable anti-aliasing if drawing with transparent color to chroma keyed canvas*/ in lv_canvas_draw_polygon()
702 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED && in lv_canvas_draw_polygon()
703 draw_dsc->bg_color.full == ctransp.full) { in lv_canvas_draw_polygon()
704 fake_disp.driver->antialiasing = 0; in lv_canvas_draw_polygon()
724 if(dsc->header.cf >= LV_IMG_CF_INDEXED_1BIT && dsc->header.cf <= LV_IMG_CF_INDEXED_8BIT) { in lv_canvas_draw_arc()
770 canvas->dsc.header.always_zero = 0; in lv_canvas_constructor()
771 canvas->dsc.header.cf = LV_IMG_CF_TRUE_COLOR; in lv_canvas_constructor()
772 canvas->dsc.header.h = 0; in lv_canvas_constructor()
773 canvas->dsc.header.w = 0; in lv_canvas_constructor()
774 canvas->dsc.data_size = 0; in lv_canvas_constructor()
775 canvas->dsc.data = NULL; in lv_canvas_constructor()
777 lv_img_set_src(obj, &canvas->dsc); in lv_canvas_constructor()
788 lv_img_cache_invalidate_src(&canvas->dsc); in lv_canvas_destructor()
795 clip_area->x1 = 0; in init_fake_disp()
796 clip_area->x2 = dsc->header.w - 1; in init_fake_disp()
797 clip_area->y1 = 0; in init_fake_disp()
798 clip_area->y2 = dsc->header.h - 1; in init_fake_disp()
802 disp->driver = drv; in init_fake_disp()
804 lv_disp_drv_init(disp->driver); in init_fake_disp()
805 disp->driver->hor_res = dsc->header.w; in init_fake_disp()
806 disp->driver->ver_res = dsc->header.h; in init_fake_disp()
812 disp->driver->draw_ctx = draw_ctx; in init_fake_disp()
813 draw_ctx->clip_area = clip_area; in init_fake_disp()
814 draw_ctx->buf_area = clip_area; in init_fake_disp()
815 draw_ctx->buf = (void *)dsc->data; in init_fake_disp()
817 lv_disp_drv_use_generic_set_px_cb(disp->driver, dsc->header.cf); in init_fake_disp()
818 if(LV_COLOR_SCREEN_TRANSP && dsc->header.cf != LV_IMG_CF_TRUE_COLOR_ALPHA) { in init_fake_disp()
819 drv->screen_transp = 0; in init_fake_disp()
826 lv_draw_sw_deinit_ctx(disp->driver, disp->driver->draw_ctx); in deinit_fake_disp()
827 lv_mem_free(disp->driver->draw_ctx); in deinit_fake_disp()