diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h index 049fb36993..b358541b99 100644 --- a/legacy/evas/src/lib/Evas.h +++ b/legacy/evas/src/lib/Evas.h @@ -166,7 +166,6 @@ typedef enum _Evas_Object_Table_Homogeneous_Mode EVAS_OBJECT_TABLE_HOMOGENEOUS_ITEM = 2 } Evas_Object_Table_Homogeneous_Mode; /**< Table cell pack mode. */ -typedef struct _Evas_Transform Evas_Transform; /**< An Evas projective or affine transform */ typedef struct _Evas_Coord_Rectangle Evas_Coord_Rectangle; /**< A generic rectangle handle */ typedef struct _Evas_Point Evas_Point; /**< integer point */ @@ -227,13 +226,6 @@ typedef int Evas_Coord; typedef int Evas_Font_Size; typedef int Evas_Angle; -struct _Evas_Transform /** An affine or projective coordinate transformation matrix */ -{ - float mxx, mxy, mxz; - float myx, myy, myz; - float mzx, mzy, mzz; -}; - struct _Evas_Coord_Rectangle /**< A rectangle in Evas_Coord */ { Evas_Coord x; /**< top-left x co-ordinate of rectangle */ @@ -1208,8 +1200,6 @@ typedef void (*Evas_Object_Event_Cb) (void *data, Evas *e, Evas_Object *obj EAPI void evas_object_image_fill_get (const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1); EAPI void evas_object_image_fill_spread_set (Evas_Object *obj, int tile_mode) EINA_ARG_NONNULL(1); EAPI int evas_object_image_fill_spread_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; - EAPI void evas_object_image_fill_transform_set (Evas_Object *obj, Evas_Transform *t) EINA_ARG_NONNULL(1); - EAPI void evas_object_image_fill_transform_get (const Evas_Object *obj, Evas_Transform *t) EINA_ARG_NONNULL(1, 2); EAPI void evas_object_image_size_set (Evas_Object *obj, int w, int h) EINA_ARG_NONNULL(1); EAPI void evas_object_image_size_get (const Evas_Object *obj, int *w, int *h) EINA_ARG_NONNULL(1); EAPI int evas_object_image_stride_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; @@ -2148,20 +2138,6 @@ struct _Evas_Smart_Cb_Description EAPI void evas_data_argb_premul (unsigned int *data, unsigned int len); EAPI void evas_data_argb_unpremul (unsigned int *data, unsigned int len); -/* Evas utility routines for working with transforms */ - /* Set t to the identity */ - EAPI void evas_transform_identity_set (Evas_Transform *t); - /* Left-multiply t by an xy rotation defined by the given angle (in degrees) */ - EAPI void evas_transform_rotate (double angle, Evas_Transform *t); - /* Left-multiply t by an xy translation defined by the given dx, dy values */ - EAPI void evas_transform_translate (float dx, float dy, Evas_Transform *t); - /* Left-multiply t by an xy scaling defined by the given sx, sy factors */ - EAPI void evas_transform_scale (float sx, float sy, Evas_Transform *t); - /* Left-multiply t by an xy shearing defined by the given sh, sv values */ - EAPI void evas_transform_shear (float sh, float sv, Evas_Transform *t); - /* Left-multiply t by the given transform l */ - EAPI void evas_transform_compose (Evas_Transform *l, Evas_Transform *t); - /* string and font handling */ EAPI int evas_string_char_next_get (const char *str, int pos, int *decoded) EINA_ARG_NONNULL(1); EAPI int evas_string_char_prev_get (const char *str, int pos, int *decoded) EINA_ARG_NONNULL(1); diff --git a/legacy/evas/src/lib/canvas/evas_object_image.c b/legacy/evas/src/lib/canvas/evas_object_image.c index d5d94f2abb..ca04c5a7dd 100644 --- a/legacy/evas/src/lib/canvas/evas_object_image.c +++ b/legacy/evas/src/lib/canvas/evas_object_image.c @@ -15,8 +15,7 @@ struct _Evas_Object_Image DATA32 magic; struct { - Evas_Common_Transform transform; - int spread; + int spread; Evas_Coord_Rectangle fill; struct { short w, h, stride; @@ -681,86 +680,6 @@ evas_object_image_fill_spread_get(const Evas_Object *obj) return o->cur.spread; } -EAPI void -evas_object_image_fill_transform_set(Evas_Object *obj, Evas_Transform *t) -{ - 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(); - if (!t) - { - o->cur.transform.mxx = 1; - o->cur.transform.mxy = 0; - o->cur.transform.mxz = 0; - o->cur.transform.myx = 0; - o->cur.transform.myy = 1; - o->cur.transform.myz = 0; - o->cur.transform.mzx = 0; - o->cur.transform.mzy = 0; - o->cur.transform.mzz = 1; - - o->changed = 1; - evas_object_change(obj); - return; - } - if ( (o->cur.transform.mxx == t->mxx) || - (o->cur.transform.mxy == t->mxy) || - (o->cur.transform.mxy == t->mxy) || - (o->cur.transform.mxy == t->mxy) || - (o->cur.transform.mxy == t->mxy) || - (o->cur.transform.mxy == t->mxy) || - (o->cur.transform.mxy == t->mxy) || - (o->cur.transform.mxy == t->mxy) || - (o->cur.transform.mxy == t->mxy) ) - return; - - o->cur.transform.mxx = t->mxx; - o->cur.transform.mxy = t->mxy; - o->cur.transform.mxz = t->mxz; - o->cur.transform.myx = t->myx; - o->cur.transform.myy = t->myy; - o->cur.transform.myz = t->myz; - o->cur.transform.mzx = t->mzx; - o->cur.transform.mzy = t->mzy; - o->cur.transform.mzz = t->mzz; - - o->changed = 1; - evas_object_change(obj); -} - -/*FIXME: To be documented*/ -EAPI void -evas_object_image_fill_transform_get(const Evas_Object *obj, Evas_Transform *t) -{ - 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(); - if (t) - { - t->mxx = o->cur.transform.mxx; - t->mxy = o->cur.transform.mxy; - t->mxz = o->cur.transform.mxz; - t->myx = o->cur.transform.myx; - t->myy = o->cur.transform.myy; - t->myz = o->cur.transform.myz; - t->mzx = o->cur.transform.mzx; - t->mzy = o->cur.transform.mzy; - t->mzz = o->cur.transform.mzz; - } -} - /** * Sets the size of the given image object. * @@ -815,8 +734,9 @@ evas_object_image_size_set(Evas_Object *obj, int w, int h) (obj->layer->evas->engine.data.output, o->engine_data, o->content_hint); if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &stride); + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); else stride = w; } @@ -993,6 +913,8 @@ evas_object_image_data_set(Evas_Object *obj, void *data) o->cur.cspace); if (o->engine_data) { + int stride = 0; + if (obj->layer->evas->engine.func->image_scale_hint_set) obj->layer->evas->engine.func->image_scale_hint_set (obj->layer->evas->engine.data.output, @@ -1000,11 +922,15 @@ evas_object_image_data_set(Evas_Object *obj, void *data) if (obj->layer->evas->engine.func->image_content_hint_set) obj->layer->evas->engine.func->image_content_hint_set (obj->layer->evas->engine.data.output, - o->engine_data, o->content_hint); + o->engine_data, o->content_hint); if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &o->cur.image.stride); - } + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); + else + stride = o->cur.image.w; + o->cur.image.stride = stride; + } } else { @@ -1081,9 +1007,15 @@ evas_object_image_data_get(const Evas_Object *obj, Eina_Bool for_writing) &data); if (o->engine_data) { + int stride = 0; + if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &o->cur.image.stride); + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); + else + stride = o->cur.image.w; + o->cur.image.stride = stride; } o->pixels_checked_out++; if (for_writing) @@ -1183,6 +1115,8 @@ evas_object_image_data_copy_set(Evas_Object *obj, void *data) o->cur.cspace); if (o->engine_data) { + int stride = 0; + o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, o->engine_data, o->cur.has_alpha); @@ -1195,8 +1129,12 @@ evas_object_image_data_copy_set(Evas_Object *obj, void *data) (obj->layer->evas->engine.data.output, o->engine_data, o->content_hint); if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &o->cur.image.stride); + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); + else + stride = o->cur.image.w; + o->cur.image.stride = stride; } o->pixels_checked_out = 0; EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o); @@ -1265,6 +1203,8 @@ evas_object_image_alpha_set(Evas_Object *obj, Eina_Bool has_alpha) o->cur.has_alpha = has_alpha; if (o->engine_data) { + int stride = 0; + #ifdef EVAS_FRAME_QUEUING evas_common_pipe_op_image_flush(o->engine_data); #endif @@ -1280,8 +1220,12 @@ evas_object_image_alpha_set(Evas_Object *obj, Eina_Bool has_alpha) (obj->layer->evas->engine.data.output, o->engine_data, o->content_hint); if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &o->cur.image.stride); + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); + else + stride = o->cur.image.w; + o->cur.image.stride = stride; } evas_object_image_data_update_add(obj, 0, 0, o->cur.image.w, o->cur.image.h); EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o); @@ -2011,13 +1955,19 @@ evas_object_image_scale_hint_set(Evas_Object *obj, Evas_Image_Scale_Hint hint) o->scale_hint = hint; if (o->engine_data) { + int stride = 0; + if (obj->layer->evas->engine.func->image_scale_hint_set) obj->layer->evas->engine.func->image_scale_hint_set (obj->layer->evas->engine.data.output, o->engine_data, o->scale_hint); if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &o->cur.image.stride); + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); + else + stride = o->cur.image.w; + o->cur.image.stride = stride; } } @@ -2073,13 +2023,19 @@ evas_object_image_content_hint_set(Evas_Object *obj, Evas_Image_Content_Hint hin o->content_hint = hint; if (o->engine_data) { + int stride = 0; + if (obj->layer->evas->engine.func->image_content_hint_set) obj->layer->evas->engine.func->image_content_hint_set (obj->layer->evas->engine.data.output, o->engine_data, o->content_hint); if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &o->cur.image.stride); + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); + else + stride = o->cur.image.w; + o->cur.image.stride = stride; } } @@ -2243,10 +2199,11 @@ evas_object_image_unload(Evas_Object *obj, Eina_Bool dirty) if (dirty) { if (o->engine_data) - o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, - o->engine_data, - 0, 0, - o->cur.image.w, o->cur.image.h); + o->engine_data = obj->layer->evas->engine.func->image_dirty_region + (obj->layer->evas->engine.data.output, + o->engine_data, + 0, 0, + o->cur.image.w, o->cur.image.h); } if (o->engine_data) obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, @@ -2277,27 +2234,32 @@ evas_object_image_load(Evas_Object *obj) lo.region.y = o->load_opts.region.y; lo.region.w = o->load_opts.region.w; lo.region.h = o->load_opts.region.h; - o->engine_data = obj->layer->evas->engine.func->image_load(obj->layer->evas->engine.data.output, - o->cur.file, - o->cur.key, - &o->load_error, - &lo); + o->engine_data = obj->layer->evas->engine.func->image_load + (obj->layer->evas->engine.data.output, + o->cur.file, + o->cur.key, + &o->load_error, + &lo); if (o->engine_data) { int w, h; int stride; - obj->layer->evas->engine.func->image_size_get(obj->layer->evas->engine.data.output, - o->engine_data, &w, &h); + obj->layer->evas->engine.func->image_size_get + (obj->layer->evas->engine.data.output, + o->engine_data, &w, &h); if (obj->layer->evas->engine.func->image_stride_get) - obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output, - o->engine_data, &stride); + obj->layer->evas->engine.func->image_stride_get + (obj->layer->evas->engine.data.output, + o->engine_data, &stride); else stride = w; - o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get(obj->layer->evas->engine.data.output, - o->engine_data); - o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output, - o->engine_data); + o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get + (obj->layer->evas->engine.data.output, + o->engine_data); + o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get + (obj->layer->evas->engine.data.output, + o->engine_data); o->cur.image.w = w; o->cur.image.h = h; o->cur.image.stride = stride; @@ -2390,7 +2352,6 @@ evas_object_image_new(void) o->cur.border.fill = 1; o->cur.border.scale = 1.0; o->cur.cspace = EVAS_COLORSPACE_ARGB8888; - o->cur.transform.mxx = o->cur.transform.myy = o->cur.transform.mzz = 1; o->cur.spread = EVAS_TEXTURE_REPEAT; o->cur.opaque_valid = 0; o->prev = o->cur; @@ -3145,10 +3106,11 @@ evas_object_image_is_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y) stride = o->cur.image.stride; - o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output, - o->engine_data, - 0, - &data); + o->engine_data = obj->layer->evas->engine.func->image_data_get + (obj->layer->evas->engine.data.output, + o->engine_data, + 0, + &data); if (!data) return 0; diff --git a/legacy/evas/src/lib/canvas/evas_transform.c b/legacy/evas/src/lib/canvas/evas_transform.c index 024e173e66..b28c2ccfff 100644 --- a/legacy/evas/src/lib/canvas/evas_transform.c +++ b/legacy/evas/src/lib/canvas/evas_transform.c @@ -1,162 +1,2 @@ #include "evas_common.h" #include "evas_private.h" -#include - -/** - * @addtogroup Evas_Utils - * @{ - */ - -/** - * To be documented. - * - * FIXME: To be fixed. - * - */ -EAPI void -evas_transform_identity_set(Evas_Transform *t) -{ - if (t) - { - t->mxx = t->myy = t->mzz = 1; - t->mxy = t->mxz = 0; - t->myx = t->myz = 0; - t->mzx = t->mzy = 0; - } -} - -/** - * To be documented. - * - * FIXME: To be fixed. - * - */ -EAPI void -evas_transform_rotate(double angle, Evas_Transform *t) -{ - double ca, sa; - float mxx, mxy, mxz; - float myx, myy, myz; - - if (!t) return; - - angle = (angle * M_PI) / 180.0; - ca = cos(angle); sa = sin(angle); - if ((ca == 1) && (sa == 0)) return; - - mxx = t->mxx; mxy = t->mxy; mxz = t->mxz; - myx = t->myx; myy = t->myy; myz = t->myz; - - t->mxx = (ca * mxx) + (sa * myx); - t->mxy = (ca * mxy) + (sa * myy); - t->mxz = (ca * mxz) + (sa * myz); - - t->myx = (-sa * mxx) + (ca * myx); - t->myy = (-sa * mxy) + (ca * myy); - t->myz = (-sa * mxz) + (ca * myz); -} - -/** - * To be documented. - * - * FIXME: To be fixed. - * - */ -EAPI void -evas_transform_translate(float dx, float dy, Evas_Transform *t) -{ - if (!t) return; - if (!dx && !dy) return; - - t->mxx = dx * t->mzx; - t->mxy = dx * t->mzy; - t->mxz = dx * t->mzz; - - t->myx = dy * t->mzx; - t->myy = dy * t->mzy; - t->myz = dy * t->mzz; -} - -/** - * To be documented. - * - * FIXME: To be fixed. - * - */ -EAPI void -evas_transform_scale(float sx, float sy, Evas_Transform *t) -{ - if (!t) return; - if ((sx == 1) && (sy == 1)) return; - - t->mxx = sx * t->mxx; - t->mxy = sx * t->mxy; - t->mxz = sx * t->mxz; - - t->myx = sy * t->myx; - t->myy = sy * t->myy; - t->myz = sy * t->myz; -} - -/** - * To be documented. - * - * FIXME: To be fixed. - * - */ -EAPI void -evas_transform_shear(float sh, float sv, Evas_Transform *t) -{ - float mxx, mxy, mxz; - float myx, myy, myz; - - if (!t) return; - if ((sh == 1) && (sv == 1)) return; - - mxx = t->mxx; mxy = t->mxy; mxz = t->mxz; - myx = t->myx; myy = t->myy; myz = t->myz; - - t->mxx = mxx + (sh * myx); - t->mxy = mxy + (sh * myy); - t->mxz = mxz + (sh * myz); - - t->myx = (sv * mxx) + myx; - t->myy = (sv * mxy) + myy; - t->myz = (sv * mxz) + myz; -} - -/** - * To be documented. - * - * FIXME: To be fixed. - * - */ -EAPI void -evas_transform_compose(Evas_Transform *l, Evas_Transform *t) -{ - float mxx, mxy, mxz; - float myx, myy, myz; - float mzx, mzy, mzz; - - if (!t || !l) return; - - mxx = t->mxx; mxy = t->mxy; mxz = t->mxz; - myx = t->myx; myy = t->myy; myz = t->myz; - mzx = t->mzx; mzy = t->mzy; mzz = t->mzz; - - t->mxx = (l->mxx * mxx) + (l->mxy * myx) + (l->mxz * mzx); - t->mxy = (l->mxx * mxy) + (l->mxy * myy) + (l->mxz * mzy); - t->mxz = (l->mxx * mxz) + (l->mxy * myz) + (l->mxz * mzz); - - t->myx = (l->myx * mxx) + (l->myy * myx) + (l->myz * mzx); - t->myy = (l->myx * mxy) + (l->myy * myy) + (l->myz * mzy); - t->myz = (l->myx * mxz) + (l->myy * myz) + (l->myz * mzz); - - t->mzx = (l->mzx * mxx) + (l->mzy * myx) + (l->mzz * mzx); - t->mzy = (l->mzx * mxy) + (l->mzy * myy) + (l->mzz * mzy); - t->mzz = (l->mzx * mxz) + (l->mzy * myz) + (l->mzz * mzz); -} - -/** - * @} - */