EAPI int evas_common_tilebuf_add_motion_vector(Tilebuf *tb, int x, int y, int w, int h, int dx, int dy, int alpha __UNUSED__) { #ifdef EVAS_RECT_SPLIT list_t lr = list_zeroed; int num; num = _add_redraw(&lr, tb->outbuf_w, tb->outbuf_h, x, y, w, h); num += _add_redraw(&lr, tb->outbuf_w, tb->outbuf_h, x + dx, y + dy, w, h); while (lr.head) { list_node_t *node = rect_list_unlink_next(&lr, NULL); rect_list_add_split_fuzzy_and_merge(&tb->rects, node, FUZZ * FUZZ, FUZZ * FUZZ); } return num; #else /* FIXME: need to actually implement motion vectors. for now it just */ /* implements redraws */ int num; num = evas_common_tilebuf_add_redraw(tb, x, y, w, h); num += evas_common_tilebuf_add_redraw(tb, x + dx, y + dy, w, h); return num; #endif }
static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h) { Render_Engine *re; re = (Render_Engine *)data; evas_common_tilebuf_add_redraw(re->tb, x, y, w, h); }