seoz pushed a commit to branch master.

commit 20ff3f1bd209bb282a97f2aa3f87c0936cfa021c
Author: Daniel Juyung Seo <[email protected]>
Date:   Tue Apr 2 21:58:32 2013 +0900

    evas_object_image.c/Evas.h: Added Eo apis for image preload.
    
    1. Added evas_obj_image_preload_begin/cancel APIs.
    2. Removed evas_obj_image_preload. This accepts 'cancel' as a parameter and 
it's so confusing to developers.
    3. No ChangeLog/NEWS for this change because Eo APIs were not released yet.
    4. Discussed with Raster.
    5. It's encouraged to use elm_image however. elm_image has 
elm_image_preload_disabled_set() API.
---
 src/lib/evas/Evas.h                     | 19 ++++++++++++++-----
 src/lib/evas/canvas/evas_object_image.c | 26 +++++++++++++++++++++-----
 2 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/src/lib/evas/Evas.h b/src/lib/evas/Evas.h
index cfd1e00..21d6be1 100644
--- a/src/lib/evas/Evas.h
+++ b/src/lib/evas/Evas.h
@@ -18471,7 +18471,8 @@ enum
    EVAS_OBJ_IMAGE_SUB_ID_DATA_CONVERT,
    EVAS_OBJ_IMAGE_SUB_ID_DATA_SET,
    EVAS_OBJ_IMAGE_SUB_ID_DATA_GET,
-   EVAS_OBJ_IMAGE_SUB_ID_PRELOAD,
+   EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_BEGIN,
+   EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_CANCEL,
    EVAS_OBJ_IMAGE_SUB_ID_DATA_COPY_SET,
    EVAS_OBJ_IMAGE_SUB_ID_DATA_UPDATE_ADD,
    EVAS_OBJ_IMAGE_SUB_ID_ALPHA_SET,
@@ -18978,16 +18979,24 @@ enum
 #define evas_obj_image_smooth_scale_get(smooth_scale) 
EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_GET), 
EO_TYPECHECK(Eina_Bool *, smooth_scale)
 
 /**
- * @def evas_obj_image_preload
+ * @def evas_obj_image_preload_begin
  * @since 1.8
  *
- * Preload an image object's image data in the background
+ * Begin preloading an image object's image data in the background
+ *
+ * @see evas_object_image_preload
+ */
+#define evas_obj_image_preload_begin() 
EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_BEGIN)
+
+/**
+ * @def evas_obj_image_preload_cancel
+ * @since 1.8
  *
- * @param[in] cancel in
+ * Cancel preloading an image object's image data in the background
  *
  * @see evas_object_image_preload
  */
-#define evas_obj_image_preload(cancel) 
EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD), EO_TYPECHECK(Eina_Bool, 
cancel)
+#define evas_obj_image_preload_cancel() 
EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_CANCEL)
 
 /**
  * @def evas_obj_image_reload
diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index f9c7c0b..d50780a 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1566,11 +1566,14 @@ evas_object_image_preload(Evas_Object *eo_obj, 
Eina_Bool cancel)
    MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
    return ;
    MAGIC_CHECK_END();
-   eo_do(eo_obj, evas_obj_image_preload(cancel));
+   if (cancel)
+     eo_do(eo_obj, evas_obj_image_preload_cancel());
+   else
+     eo_do(eo_obj, evas_obj_image_preload_begin());
 }
 
 static void
-_image_preload(Eo *eo_obj, void *_pd, va_list *list)
+_image_preload_internal(Eo *eo_obj, void *_pd, Eina_Bool cancel)
 {
    Evas_Object_Image *o = _pd;
 
@@ -1583,7 +1586,6 @@ _image_preload(Eo *eo_obj, void *_pd, va_list *list)
    // FIXME: if already busy preloading, then dont request again until
    // preload done
    Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
-   Eina_Bool cancel = va_arg(*list, int);
    if (cancel)
      {
         if (o->preloading)
@@ -1606,6 +1608,18 @@ _image_preload(Eo *eo_obj, void *_pd, va_list *list)
      }
 }
 
+static void
+_image_preload_begin(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
+{
+   _image_preload_internal(eo_obj, _pd, EINA_FALSE);
+}
+
+static void
+_image_preload_cancel(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
+{
+   _image_preload_internal(eo_obj, _pd, EINA_TRUE);
+}
+
 EAPI void
 evas_object_image_data_copy_set(Evas_Object *eo_obj, void *data)
 {
@@ -5093,7 +5107,8 @@ _class_constructor(Eo_Class *klass)
         EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_DATA_CONVERT), 
_image_data_convert),
         EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_DATA_SET), 
_image_data_set),
         EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_DATA_GET), 
_image_data_get),
-        EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD), 
_image_preload),
+        EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_BEGIN), 
_image_preload_begin),
+        EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_CANCEL), 
_image_preload_cancel),
         EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_DATA_COPY_SET), 
_image_data_copy_set),
         EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_DATA_UPDATE_ADD), 
_image_data_update_add),
         EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_ALPHA_SET), 
_image_alpha_set),
@@ -5168,7 +5183,8 @@ static const Eo_Op_Description op_desc[] = {
      EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_DATA_CONVERT, "Converts the raw 
image data of the given image object to the specified colorspace."),
      EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_DATA_SET, "Sets the raw image 
data of the given image object."),
      EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_DATA_GET, "Get a pointer to the 
raw image data of the given image object."),
-     EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD, "Preload an image 
object's image data in the background."),
+     EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_BEGIN, "Begin preload an 
image object's image data in the background."),
+     EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_PRELOAD_CANCEL, "Cancel preload 
an image object's image data in the background."),
      EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_DATA_COPY_SET, "Replaces the raw 
image data of the given image object."),
      EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_DATA_UPDATE_ADD, "Mark a 
sub-region of the given image object to be redrawn."),
      EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_ALPHA_SET, "Enable or disable 
alpha channel usage on the given image object."),

-- 

------------------------------------------------------------------------------
Own the Future-Intel(R) Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest. Compete 
for recognition, cash, and the chance to get your game on Steam. 
$5K grand prize plus 10 genre and skill prizes. Submit your demo 
by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2

Reply via email to