summaryrefslogtreecommitdiff
path: root/src/lib/evas/vg/evas_vg_cache.c
diff options
context:
space:
mode:
authorHermet Park <hermetpark@gmail.com>2019-11-29 11:18:15 +0900
committerHermet Park <hermetpark@gmail.com>2019-11-29 11:20:48 +0900
commitd05c2169a89bb17f0ab985ea01f48ca26b2218c1 (patch)
tree52fc12797451bf72f639b949dcc361d827c2f6ba /src/lib/evas/vg/evas_vg_cache.c
parent153b5cffd80748aa913a3fa7da0337167496ad10 (diff)
vector cache: skip animation update as possible.
Since the vector file data is shareable among the multiple vg instances, vfd could keep the requested frame data already by the other instance. This case vector cache quickly return the vector data withouth any further progress.
Diffstat (limited to 'src/lib/evas/vg/evas_vg_cache.c')
-rw-r--r--src/lib/evas/vg/evas_vg_cache.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/evas/vg/evas_vg_cache.c b/src/lib/evas/vg/evas_vg_cache.c
index ed65f50099..5c0242db23 100644
--- a/src/lib/evas/vg/evas_vg_cache.c
+++ b/src/lib/evas/vg/evas_vg_cache.c
@@ -432,8 +432,17 @@ evas_cache_vg_tree_get(Vg_Cache_Entry *vg_entry, unsigned int frame_num)
432 if (!vfd) return NULL; 432 if (!vfd) return NULL;
433 433
434 //No need to update. 434 //No need to update.
435 if (!vfd->anim_data && vg_entry->root) 435 if (vfd->anim_data)
436 return vg_entry->root; 436 {
437 if (vg_entry->root &&
438 vfd->anim_data->frame_num == frame_num)
439 return vg_entry->root;
440 }
441 else
442 {
443 if (vg_entry->root)
444 return vg_entry->root;
445 }
437 446
438 if (!vfd->static_viewbox) 447 if (!vfd->static_viewbox)
439 { 448 {