api for image content hint - nothing uses it yet, but... it will. and does
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 7 Mar 2010 04:19:17 +0000 (04:19 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 7 Mar 2010 04:19:17 +0000 (04:19 +0000)
nothing right now... but that will be able to change. it opens up better
optimisation paths in future.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@46922 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Evas.h
src/lib/canvas/evas_object_image.c

index 841a6a2..00c8609 100644 (file)
@@ -532,6 +532,13 @@ typedef enum _Evas_Image_Scale_Hint
    EVAS_IMAGE_SCALE_HINT_STATIC = 2
 } Evas_Image_Scale_Hint;
 
+typedef enum _Evas_Image_Content_Hint
+{
+   EVAS_IMAGE_CONTENT_HINT_NONE = 0,
+   EVAS_IMAGE_CONTENT_HINT_DYNAMIC = 1,
+   EVAS_IMAGE_CONTENT_HINT_STATIC = 2
+} Evas_Image_Content_Hint;
+
 struct _Evas_Engine_Info /** Generic engine information. Generic info is useless */
 {
    int magic; /**< Magic number */
@@ -895,6 +902,8 @@ extern "C" {
    EAPI Evas_Native_Surface *evas_object_image_native_surface_get  (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
    EAPI void                  evas_object_image_scale_hint_set     (Evas_Object *obj, Evas_Image_Scale_Hint hint) EINA_ARG_NONNULL(1);
    EAPI Evas_Image_Scale_Hint evas_object_image_scale_hint_get     (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
+   EAPI void                    evas_object_image_content_hint_set (Evas_Object *obj, Evas_Image_Content_Hint hint) EINA_ARG_NONNULL(1);
+   EAPI Evas_Image_Content_Hint evas_object_image_content_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
 
 /* image cache */
    EAPI void              evas_image_cache_flush            (Evas *e) EINA_ARG_NONNULL(1);
index 85d2ec3..4b773d0 100644 (file)
@@ -57,7 +57,8 @@ struct _Evas_Object_Image
       void             *get_pixels_data;
    } func;
 
-   Evas_Image_Scale_Hint scale_hint;
+   Evas_Image_Scale_Hint   scale_hint;
+   Evas_Image_Content_Hint content_hint;
 
    void             *engine_data;
 
@@ -2023,6 +2024,53 @@ evas_object_image_scale_hint_get(const Evas_Object *obj)
 }
 
 /**
+ * Set the content hint of a given image of the canvas.
+ *
+ * @param obj The given canvas pointer.
+ * @param hint The content hint value.
+ *
+ * This function sets the content hint value of the given image of the canvas.
+ *
+ */
+EAPI void
+evas_object_image_content_hint_set(Evas_Object *obj, Evas_Image_Content_Hint hint)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return;
+   MAGIC_CHECK_END();
+   o->content_hint = hint;
+}
+
+/**
+ * Get the content hint of a given image of the canvas.
+ *
+ * @param obj The given canvas pointer.
+ *
+ * This function returns the content hint value of the given image of the canvas.
+ *
+ */
+EAPI Evas_Image_Content_Hint
+evas_object_image_content_hint_get(const Evas_Object *obj)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return EVAS_IMAGE_CONTENT_HINT_NONE;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return EVAS_IMAGE_CONTENT_HINT_NONE;
+   MAGIC_CHECK_END();
+   return o->content_hint;
+}
+
+/**
  * Flush the image cache of the canvas.
  *
  * @param e The given evas pointer.