remove transform stuff - never was implemented anyway so no effective

break.



SVN revision: 51384
This commit is contained in:
Carsten Haitzler 2010-08-19 07:32:44 +00:00
parent 390dc8e8e3
commit 817c505230
3 changed files with 82 additions and 304 deletions

View File

@ -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);

View File

@ -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;

View File

@ -1,162 +1,2 @@
#include "evas_common.h"
#include "evas_private.h"
#include <math.h>
/**
* @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);
}
/**
* @}
*/