summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCedric Bail <cedric.bail@samsung.com>2013-06-24 11:41:32 +0900
committerCedric Bail <cedric.bail@samsung.com>2013-06-24 12:04:18 +0900
commitd06a0982ef3d156059b2264d4494e036cbe409ee (patch)
tree2895f26d9a65fd81045601505d650b8e2034b79a /src/lib
parent8e3d94d66130f16cec0d518a0ad6ec5fae04fec9 (diff)
evas: add support for asynchronously uploading GL texture.
NOTE: when using Evas_Object image preload infrastructure the GL texture upload was uploaded from the main loop during the rendering stage. This could lead to some frame drop during fast animation due to the time needed to upload that texture. This patch fix this problem by uploading a small texture quickly (16x16) and waiting for going back to the main loop to be able to use the same GL context from another thread to do the texture upload asynchronously without blocking the main loop.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/evas/cache/evas_cache_image.c1
-rw-r--r--src/lib/evas/include/evas_common_private.h2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/evas/cache/evas_cache_image.c b/src/lib/evas/cache/evas_cache_image.c
index fe779a57f1..06d74def49 100644
--- a/src/lib/evas/cache/evas_cache_image.c
+++ b/src/lib/evas/cache/evas_cache_image.c
@@ -396,6 +396,7 @@ _evas_cache_image_async_end(void *data)
396 ie->cache->pending = eina_list_remove(ie->cache->pending, ie); 396 ie->cache->pending = eina_list_remove(ie->cache->pending, ie);
397 ie->preload = NULL; 397 ie->preload = NULL;
398 ie->flags.preload_done = ie->flags.loaded; 398 ie->flags.preload_done = ie->flags.loaded;
399 ie->flags.updated_data = 1;
399 while ((tmp = ie->targets)) 400 while ((tmp = ie->targets))
400 { 401 {
401 evas_object_inform_call_image_preloaded((Evas_Object*) tmp->target); 402 evas_object_inform_call_image_preloaded((Evas_Object*) tmp->target);
diff --git a/src/lib/evas/include/evas_common_private.h b/src/lib/evas/include/evas_common_private.h
index 1a3c10c086..f051a72a0a 100644
--- a/src/lib/evas/include/evas_common_private.h
+++ b/src/lib/evas/include/evas_common_private.h
@@ -519,6 +519,8 @@ struct _Image_Entry_Flags
519 Eina_Bool rotated : 1; 519 Eina_Bool rotated : 1;
520 Eina_Bool unload_cancel : 1; 520 Eina_Bool unload_cancel : 1;
521 Eina_Bool given_mmap : 1; 521 Eina_Bool given_mmap : 1;
522
523 Eina_Bool updated_data : 1;
522}; 524};
523 525
524struct _Image_Entry_Frame 526struct _Image_Entry_Frame