a few things.
1. disable viewports other than 1:1 at 0,0 2. remove output space coorsds for pointer. 3. remove geom caching 4. make threaded pipelined engine a runtime detect if u have > 1 cpu. 5. pthread build default if u have pthread.h and sched.h SVN revision: 27131
This commit is contained in:
parent
ccc60306a0
commit
f80a02f999
|
@ -989,6 +989,15 @@ AM_CONDITIONAL(BUILD_LOADER_SVG, test x$have_svg = xyes)
|
||||||
pthread_cflags=""
|
pthread_cflags=""
|
||||||
pthread_libs=""
|
pthread_libs=""
|
||||||
build_pthreads="no"
|
build_pthreads="no"
|
||||||
|
AC_CHECK_HEADER(pthread.h,
|
||||||
|
[
|
||||||
|
AC_CHECK_HEADER(sched.h,
|
||||||
|
[ build_pthreads="yes" ],
|
||||||
|
[ build_pthreads="no" ]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
[ build_pthreads="no" ]
|
||||||
|
)
|
||||||
AC_MSG_CHECKING(whether to build pthread code)
|
AC_MSG_CHECKING(whether to build pthread code)
|
||||||
AC_ARG_ENABLE(pthreads,
|
AC_ARG_ENABLE(pthreads,
|
||||||
[ --enable-pthreads enable threaded rendering], [
|
[ --enable-pthreads enable threaded rendering], [
|
||||||
|
|
|
@ -9,8 +9,10 @@ evas_object_clip_recalc(Evas_Object *obj)
|
||||||
|
|
||||||
if (obj->layer->evas->events_frozen > 0) return;
|
if (obj->layer->evas->events_frozen > 0) return;
|
||||||
evas_object_coords_recalc(obj);
|
evas_object_coords_recalc(obj);
|
||||||
cx = obj->cur.cache.geometry.x; cy = obj->cur.cache.geometry.y;
|
cx = obj->cur.geometry.x; cy = obj->cur.geometry.y;
|
||||||
cw = obj->cur.cache.geometry.w; ch = obj->cur.cache.geometry.h;
|
cw = obj->cur.geometry.w; ch = obj->cur.geometry.h;
|
||||||
|
//// cx = obj->cur.cache.geometry.x; cy = obj->cur.cache.geometry.y;
|
||||||
|
//// cw = obj->cur.cache.geometry.w; ch = obj->cur.cache.geometry.h;
|
||||||
if (obj->cur.color.a == 0) cvis = 0;
|
if (obj->cur.color.a == 0) cvis = 0;
|
||||||
else cvis = obj->cur.visible;
|
else cvis = obj->cur.visible;
|
||||||
cr = obj->cur.color.r; cg = obj->cur.color.g;
|
cr = obj->cur.color.r; cg = obj->cur.color.g;
|
||||||
|
|
|
@ -248,8 +248,10 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
|
||||||
ev.button = b;
|
ev.button = b;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -298,8 +300,10 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
|
||||||
ev.button = b;
|
ev.button = b;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -333,8 +337,10 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -360,8 +366,10 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -417,8 +425,10 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
|
||||||
ev.z = z;
|
ev.z = z;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *) data;
|
ev.data = (void *) data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -441,7 +451,7 @@ EAPI void
|
||||||
evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const void *data)
|
evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const void *data)
|
||||||
{
|
{
|
||||||
int px, py;
|
int px, py;
|
||||||
Evas_Coord pcx, pcy;
|
//// Evas_Coord pcx, pcy;
|
||||||
|
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return;
|
return;
|
||||||
|
@ -449,16 +459,18 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
|
|
||||||
px = e->pointer.x;
|
px = e->pointer.x;
|
||||||
py = e->pointer.y;
|
py = e->pointer.y;
|
||||||
pcx = e->pointer.canvas_x;
|
//// pcx = e->pointer.canvas_x;
|
||||||
pcy = e->pointer.canvas_y;
|
//// pcy = e->pointer.canvas_y;
|
||||||
|
|
||||||
if (e->events_frozen > 0) return;
|
if (e->events_frozen > 0) return;
|
||||||
e->last_timestamp = timestamp;
|
e->last_timestamp = timestamp;
|
||||||
|
|
||||||
e->pointer.x = x;
|
e->pointer.x = x;
|
||||||
e->pointer.y = y;
|
e->pointer.y = y;
|
||||||
e->pointer.canvas_x = evas_coord_screen_x_to_world(e, x);
|
//// e->pointer.canvas_x = x;
|
||||||
e->pointer.canvas_y = evas_coord_screen_y_to_world(e, y);
|
//// e->pointer.canvas_y = y;
|
||||||
|
//// e->pointer.canvas_x = evas_coord_screen_x_to_world(e, x);
|
||||||
|
//// e->pointer.canvas_y = evas_coord_screen_y_to_world(e, y);
|
||||||
if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return;
|
if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return;
|
||||||
/* if our mouse button is grabbed to any objects */
|
/* if our mouse button is grabbed to any objects */
|
||||||
if (e->pointer.mouse_grabbed > 0)
|
if (e->pointer.mouse_grabbed > 0)
|
||||||
|
@ -485,12 +497,16 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.cur.output.x = e->pointer.x;
|
ev.cur.output.x = e->pointer.x;
|
||||||
ev.cur.output.y = e->pointer.y;
|
ev.cur.output.y = e->pointer.y;
|
||||||
ev.cur.canvas.x = e->pointer.canvas_x;
|
ev.cur.canvas.x = e->pointer.x;
|
||||||
ev.cur.canvas.y = e->pointer.canvas_y;
|
ev.cur.canvas.y = e->pointer.y;
|
||||||
|
//// ev.cur.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.cur.canvas.y = e->pointer.canvas_y;
|
||||||
ev.prev.output.x = px;
|
ev.prev.output.x = px;
|
||||||
ev.prev.output.y = py;
|
ev.prev.output.y = py;
|
||||||
ev.prev.canvas.x = pcx;
|
ev.prev.canvas.x = px;
|
||||||
ev.prev.canvas.y = pcy;
|
ev.prev.canvas.y = py;
|
||||||
|
//// ev.prev.canvas.x = pcx;
|
||||||
|
//// ev.prev.canvas.y = pcy;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -519,8 +535,10 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -563,12 +581,16 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.cur.output.x = e->pointer.x;
|
ev.cur.output.x = e->pointer.x;
|
||||||
ev.cur.output.y = e->pointer.y;
|
ev.cur.output.y = e->pointer.y;
|
||||||
ev.cur.canvas.x = e->pointer.canvas_x;
|
ev.cur.canvas.x = e->pointer.x;
|
||||||
ev.cur.canvas.y = e->pointer.canvas_y;
|
ev.cur.canvas.y = e->pointer.y;
|
||||||
|
//// ev.cur.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.cur.canvas.y = e->pointer.canvas_y;
|
||||||
ev.prev.output.x = px;
|
ev.prev.output.x = px;
|
||||||
ev.prev.output.y = py;
|
ev.prev.output.y = py;
|
||||||
ev.prev.canvas.x = pcx;
|
ev.prev.canvas.x = px;
|
||||||
ev.prev.canvas.y = pcy;
|
ev.prev.canvas.y = py;
|
||||||
|
//// ev.prev.canvas.x = pcx;
|
||||||
|
//// ev.prev.canvas.y = pcy;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -586,8 +608,10 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -612,8 +636,10 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -667,8 +693,10 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
@ -720,8 +748,10 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
|
||||||
ev.buttons = e->pointer.button;
|
ev.buttons = e->pointer.button;
|
||||||
ev.output.x = e->pointer.x;
|
ev.output.x = e->pointer.x;
|
||||||
ev.output.y = e->pointer.y;
|
ev.output.y = e->pointer.y;
|
||||||
ev.canvas.x = e->pointer.canvas_x;
|
ev.canvas.x = e->pointer.x;
|
||||||
ev.canvas.y = e->pointer.canvas_y;
|
ev.canvas.y = e->pointer.y;
|
||||||
|
//// ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
//// ev.canvas.y = e->pointer.canvas_y;
|
||||||
ev.data = (void *)data;
|
ev.data = (void *)data;
|
||||||
ev.modifiers = &(e->modifiers);
|
ev.modifiers = &(e->modifiers);
|
||||||
ev.locks = &(e->locks);
|
ev.locks = &(e->locks);
|
||||||
|
|
|
@ -401,6 +401,12 @@ evas_output_viewport_set(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas
|
||||||
(w == e->viewport.w) && (h == e->viewport.h)) return;
|
(w == e->viewport.w) && (h == e->viewport.h)) return;
|
||||||
if (w <= 0) return;
|
if (w <= 0) return;
|
||||||
if (h <= 0) return;
|
if (h <= 0) return;
|
||||||
|
if ((x != 0) || (y != 0))
|
||||||
|
{
|
||||||
|
printf("EVAS: compat error. viewport x,y != 0,0 not supported\n");
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
}
|
||||||
e->viewport.x = x;
|
e->viewport.x = x;
|
||||||
e->viewport.y = y;
|
e->viewport.y = y;
|
||||||
e->viewport.w = w;
|
e->viewport.w = w;
|
||||||
|
|
|
@ -888,10 +888,14 @@ evas_object_gradient_render(Evas_Object *obj, void *output, void *context, void
|
||||||
{
|
{
|
||||||
obj->layer->evas->engine.func->gradient_draw(output, context, surface,
|
obj->layer->evas->engine.func->gradient_draw(output, context, surface,
|
||||||
o->engine_data,
|
o->engine_data,
|
||||||
obj->cur.cache.geometry.x + x,
|
obj->cur.geometry.x + x,
|
||||||
obj->cur.cache.geometry.y + y,
|
obj->cur.geometry.y + y,
|
||||||
obj->cur.cache.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.cache.geometry.h);
|
obj->cur.geometry.h);
|
||||||
|
//// obj->cur.cache.geometry.x + x,
|
||||||
|
//// obj->cur.cache.geometry.y + y,
|
||||||
|
//// obj->cur.cache.geometry.w,
|
||||||
|
//// obj->cur.cache.geometry.h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1566,7 +1566,8 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
|
||||||
if (idh < 1.0) idh = 1.0;
|
if (idh < 1.0) idh = 1.0;
|
||||||
if (idx > 0.0) idx -= idw;
|
if (idx > 0.0) idx -= idw;
|
||||||
if (idy > 0.0) idy -= idh;
|
if (idy > 0.0) idy -= idh;
|
||||||
while ((int)idx < obj->cur.cache.geometry.w)
|
while ((int)idx < obj->cur.geometry.w)
|
||||||
|
//// while ((int)idx < obj->cur.cache.geometry.w)
|
||||||
{
|
{
|
||||||
Evas_Coord ydy;
|
Evas_Coord ydy;
|
||||||
int dobreak_w = 0;
|
int dobreak_w = 0;
|
||||||
|
@ -1577,11 +1578,13 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
|
||||||
(o->cur.fill.x == 0.0))
|
(o->cur.fill.x == 0.0))
|
||||||
{
|
{
|
||||||
dobreak_w = 1;
|
dobreak_w = 1;
|
||||||
iw = obj->cur.cache.geometry.w;
|
iw = obj->cur.geometry.w;
|
||||||
|
//// iw = obj->cur.cache.geometry.w;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
iw = ((int)(idx + idw)) - ix;
|
iw = ((int)(idx + idw)) - ix;
|
||||||
while ((int)idy < obj->cur.cache.geometry.h)
|
while ((int)idy < obj->cur.geometry.h)
|
||||||
|
//// while ((int)idy < obj->cur.cache.geometry.h)
|
||||||
{
|
{
|
||||||
int dobreak_h = 0;
|
int dobreak_h = 0;
|
||||||
|
|
||||||
|
@ -1589,7 +1592,8 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
|
||||||
if ((o->cur.fill.h == obj->cur.geometry.h) &&
|
if ((o->cur.fill.h == obj->cur.geometry.h) &&
|
||||||
(o->cur.fill.y == 0.0))
|
(o->cur.fill.y == 0.0))
|
||||||
{
|
{
|
||||||
ih = obj->cur.cache.geometry.h;
|
ih = obj->cur.geometry.h;
|
||||||
|
//// ih = obj->cur.cache.geometry.h;
|
||||||
dobreak_h = 1;
|
dobreak_h = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1606,8 +1610,10 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
|
||||||
0, 0,
|
0, 0,
|
||||||
o->cur.image.w,
|
o->cur.image.w,
|
||||||
o->cur.image.h,
|
o->cur.image.h,
|
||||||
obj->cur.cache.geometry.x + ix + x,
|
obj->cur.geometry.x + ix + x,
|
||||||
obj->cur.cache.geometry.y + iy + y,
|
obj->cur.geometry.y + iy + y,
|
||||||
|
//// obj->cur.cache.geometry.x + ix + x,
|
||||||
|
//// obj->cur.cache.geometry.y + iy + y,
|
||||||
iw, ih,
|
iw, ih,
|
||||||
o->cur.smooth_scale);
|
o->cur.smooth_scale);
|
||||||
else
|
else
|
||||||
|
@ -1616,8 +1622,10 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
|
||||||
int bl, br, bt, bb;
|
int bl, br, bt, bb;
|
||||||
int imw, imh, ox, oy;
|
int imw, imh, ox, oy;
|
||||||
|
|
||||||
ox = obj->cur.cache.geometry.x + ix + x;
|
ox = obj->cur.geometry.x + ix + x;
|
||||||
oy = obj->cur.cache.geometry.y + iy + y;
|
oy = obj->cur.geometry.y + iy + y;
|
||||||
|
//// ox = obj->cur.cache.geometry.x + ix + x;
|
||||||
|
//// oy = obj->cur.cache.geometry.y + iy + y;
|
||||||
imw = o->cur.image.w;
|
imw = o->cur.image.w;
|
||||||
imh = o->cur.image.h;
|
imh = o->cur.image.h;
|
||||||
bl = o->cur.border.l;
|
bl = o->cur.border.l;
|
||||||
|
@ -1819,14 +1827,22 @@ evas_object_image_render_pre(Evas_Object *obj)
|
||||||
Evas_Rectangle *r;
|
Evas_Rectangle *r;
|
||||||
Evas_List *rl;
|
Evas_List *rl;
|
||||||
|
|
||||||
rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
|
rl = evas_rects_return_difference_rects(obj->cur.geometry.x,
|
||||||
obj->cur.cache.geometry.y,
|
obj->cur.geometry.y,
|
||||||
obj->cur.cache.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.cache.geometry.h,
|
obj->cur.geometry.h,
|
||||||
obj->prev.cache.geometry.x,
|
obj->prev.geometry.x,
|
||||||
obj->prev.cache.geometry.y,
|
obj->prev.geometry.y,
|
||||||
obj->prev.cache.geometry.w,
|
obj->prev.geometry.w,
|
||||||
obj->prev.cache.geometry.h);
|
obj->prev.geometry.h);
|
||||||
|
//// rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
|
||||||
|
//// obj->cur.cache.geometry.y,
|
||||||
|
//// obj->cur.cache.geometry.w,
|
||||||
|
//// obj->cur.cache.geometry.h,
|
||||||
|
//// obj->prev.cache.geometry.x,
|
||||||
|
//// obj->prev.cache.geometry.y,
|
||||||
|
//// obj->prev.cache.geometry.w,
|
||||||
|
//// obj->prev.cache.geometry.h);
|
||||||
while (rl)
|
while (rl)
|
||||||
{
|
{
|
||||||
r = rl->data;
|
r = rl->data;
|
||||||
|
@ -1876,14 +1892,16 @@ evas_object_image_render_pre(Evas_Object *obj)
|
||||||
if (idh < 1) idh = 1;
|
if (idh < 1) idh = 1;
|
||||||
if (idx > 0) idx -= idw;
|
if (idx > 0) idx -= idw;
|
||||||
if (idy > 0) idy -= idh;
|
if (idy > 0) idy -= idh;
|
||||||
while (idx < obj->cur.cache.geometry.w)
|
while (idx < obj->cur.geometry.w)
|
||||||
|
//// while (idx < obj->cur.cache.geometry.w)
|
||||||
{
|
{
|
||||||
Evas_Coord ydy;
|
Evas_Coord ydy;
|
||||||
|
|
||||||
ydy = idy;
|
ydy = idy;
|
||||||
x = idx;
|
x = idx;
|
||||||
w = ((int)(idx + idw)) - x;
|
w = ((int)(idx + idw)) - x;
|
||||||
while (idy < obj->cur.cache.geometry.h)
|
while (idy < obj->cur.geometry.h)
|
||||||
|
//// while (idy < obj->cur.cache.geometry.h)
|
||||||
{
|
{
|
||||||
y = idy;
|
y = idy;
|
||||||
h = ((int)(idy + idh)) - y;
|
h = ((int)(idy + idh)) - y;
|
||||||
|
@ -1892,8 +1910,10 @@ evas_object_image_render_pre(Evas_Object *obj)
|
||||||
r->y = ((rr->y - 1) * r->h) / o->cur.image.h;
|
r->y = ((rr->y - 1) * r->h) / o->cur.image.h;
|
||||||
r->w = ((rr->w + 2) * r->w) / o->cur.image.w;
|
r->w = ((rr->w + 2) * r->w) / o->cur.image.w;
|
||||||
r->h = ((rr->h + 2) * r->h) / o->cur.image.h;
|
r->h = ((rr->h + 2) * r->h) / o->cur.image.h;
|
||||||
r->x += obj->cur.cache.geometry.x + x;
|
r->x += obj->cur.geometry.x + x;
|
||||||
r->y += obj->cur.cache.geometry.y + y;
|
r->y += obj->cur.geometry.y + y;
|
||||||
|
//// r->x += obj->cur.cache.geometry.x + x;
|
||||||
|
//// r->y += obj->cur.cache.geometry.y + y;
|
||||||
if (r) updates = evas_list_append(updates, r);
|
if (r) updates = evas_list_append(updates, r);
|
||||||
idy += h;
|
idy += h;
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,7 +142,7 @@ evas_object_line_xy_set(Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coo
|
||||||
obj->cur.geometry.y = min_y;
|
obj->cur.geometry.y = min_y;
|
||||||
obj->cur.geometry.w = max_x - min_x + 2.0;
|
obj->cur.geometry.w = max_x - min_x + 2.0;
|
||||||
obj->cur.geometry.h = max_y - min_y + 2.0;
|
obj->cur.geometry.h = max_y - min_y + 2.0;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
o->cur.x1 = x1 - min_x;
|
o->cur.x1 = x1 - min_x;
|
||||||
o->cur.y1 = y1 - min_y;
|
o->cur.y1 = y1 - min_y;
|
||||||
o->cur.x2 = x2 - min_x;
|
o->cur.x2 = x2 - min_x;
|
||||||
|
@ -458,10 +458,14 @@ evas_object_line_coords_recalc(Evas_Object *obj)
|
||||||
Evas_Object_Line *o;
|
Evas_Object_Line *o;
|
||||||
|
|
||||||
o = (Evas_Object_Line *)(obj->object_data);
|
o = (Evas_Object_Line *)(obj->object_data);
|
||||||
o->cur.cache.x1 = evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x + o->cur.x1);
|
o->cur.cache.x1 = obj->cur.geometry.x + o->cur.x1;
|
||||||
o->cur.cache.y1 = evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y + o->cur.y1);
|
o->cur.cache.y1 = obj->cur.geometry.y + o->cur.y2;
|
||||||
o->cur.cache.x2 = evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x + o->cur.x2);
|
o->cur.cache.x2 = obj->cur.geometry.x + o->cur.x2;
|
||||||
o->cur.cache.y2 = evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y + o->cur.y2);
|
o->cur.cache.y2 = obj->cur.geometry.y + o->cur.y2;
|
||||||
|
//// o->cur.cache.x1 = evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x + o->cur.x1);
|
||||||
|
//// o->cur.cache.y1 = evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y + o->cur.y1);
|
||||||
|
//// o->cur.cache.x2 = evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x + o->cur.x2);
|
||||||
|
//// o->cur.cache.y2 = evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y + o->cur.y2);
|
||||||
o->cur.cache.object.w = obj->cur.geometry.w;
|
o->cur.cache.object.w = obj->cur.geometry.w;
|
||||||
o->cur.cache.object.h = obj->cur.geometry.h;
|
o->cur.cache.object.h = obj->cur.geometry.h;
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,10 +145,14 @@ evas_object_render_pre_clipper_change(Evas_List *updates, Evas_Object *obj)
|
||||||
}
|
}
|
||||||
else if (obj->cur.clipper)
|
else if (obj->cur.clipper)
|
||||||
{
|
{
|
||||||
rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
|
rl = evas_rects_return_difference_rects(obj->cur.geometry.x,
|
||||||
obj->cur.cache.geometry.y,
|
obj->cur.geometry.y,
|
||||||
obj->cur.cache.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.cache.geometry.h,
|
obj->cur.geometry.h,
|
||||||
|
//// rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
|
||||||
|
//// obj->cur.cache.geometry.y,
|
||||||
|
//// obj->cur.cache.geometry.w,
|
||||||
|
//// obj->cur.cache.geometry.h,
|
||||||
obj->cur.clipper->cur.cache.clip.x,
|
obj->cur.clipper->cur.cache.clip.x,
|
||||||
obj->cur.clipper->cur.cache.clip.y,
|
obj->cur.clipper->cur.cache.clip.y,
|
||||||
obj->cur.clipper->cur.cache.clip.w,
|
obj->cur.clipper->cur.cache.clip.w,
|
||||||
|
@ -162,10 +166,14 @@ evas_object_render_pre_clipper_change(Evas_List *updates, Evas_Object *obj)
|
||||||
}
|
}
|
||||||
else if (obj->prev.clipper)
|
else if (obj->prev.clipper)
|
||||||
{
|
{
|
||||||
rl = evas_rects_return_difference_rects(obj->prev.cache.geometry.x,
|
rl = evas_rects_return_difference_rects(obj->prev.geometry.x,
|
||||||
obj->prev.cache.geometry.y,
|
obj->prev.geometry.y,
|
||||||
obj->prev.cache.geometry.w,
|
obj->prev.geometry.w,
|
||||||
obj->prev.cache.geometry.h,
|
obj->prev.geometry.h,
|
||||||
|
//// rl = evas_rects_return_difference_rects(obj->prev.cache.geometry.x,
|
||||||
|
//// obj->prev.cache.geometry.y,
|
||||||
|
//// obj->prev.cache.geometry.w,
|
||||||
|
//// obj->prev.cache.geometry.h,
|
||||||
obj->prev.clipper->prev.cache.clip.x,
|
obj->prev.clipper->prev.cache.clip.x,
|
||||||
obj->prev.clipper->prev.cache.clip.y,
|
obj->prev.clipper->prev.cache.clip.y,
|
||||||
obj->prev.clipper->prev.cache.clip.w,
|
obj->prev.clipper->prev.cache.clip.w,
|
||||||
|
@ -186,16 +194,24 @@ evas_object_render_pre_prev_cur_add(Evas_List *updates, Evas_Object *obj)
|
||||||
Evas_Rectangle *r;
|
Evas_Rectangle *r;
|
||||||
|
|
||||||
NEW_RECT(r,
|
NEW_RECT(r,
|
||||||
obj->cur.cache.geometry.x,
|
obj->cur.geometry.x,
|
||||||
obj->cur.cache.geometry.y,
|
obj->cur.geometry.y,
|
||||||
obj->cur.cache.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.cache.geometry.h);
|
obj->cur.geometry.h);
|
||||||
|
//// obj->cur.cache.geometry.x,
|
||||||
|
//// obj->cur.cache.geometry.y,
|
||||||
|
//// obj->cur.cache.geometry.w,
|
||||||
|
//// obj->cur.cache.geometry.h);
|
||||||
if (r) updates = evas_list_append(updates, r);
|
if (r) updates = evas_list_append(updates, r);
|
||||||
NEW_RECT(r,
|
NEW_RECT(r,
|
||||||
obj->prev.cache.geometry.x,
|
obj->prev.geometry.x,
|
||||||
obj->prev.cache.geometry.y,
|
obj->prev.geometry.y,
|
||||||
obj->prev.cache.geometry.w,
|
obj->prev.geometry.w,
|
||||||
obj->prev.cache.geometry.h);
|
obj->prev.geometry.h);
|
||||||
|
//// obj->prev.cache.geometry.x,
|
||||||
|
//// obj->prev.cache.geometry.y,
|
||||||
|
//// obj->prev.cache.geometry.w,
|
||||||
|
//// obj->prev.cache.geometry.h);
|
||||||
if (r) updates = evas_list_append(updates, r);
|
if (r) updates = evas_list_append(updates, r);
|
||||||
return updates;
|
return updates;
|
||||||
}
|
}
|
||||||
|
@ -289,20 +305,20 @@ void
|
||||||
evas_object_coords_recalc(Evas_Object *obj)
|
evas_object_coords_recalc(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
if (obj->smart.smart) return;
|
if (obj->smart.smart) return;
|
||||||
if (obj->cur.cache.geometry.validity == obj->layer->evas->output_validity)
|
//// if (obj->cur.cache.geometry.validity == obj->layer->evas->output_validity)
|
||||||
return;
|
//// return;
|
||||||
obj->cur.cache.geometry.x =
|
//// obj->cur.cache.geometry.x =
|
||||||
evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x);
|
//// evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x);
|
||||||
obj->cur.cache.geometry.y =
|
//// obj->cur.cache.geometry.y =
|
||||||
evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y);
|
//// evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.y);
|
||||||
obj->cur.cache.geometry.w =
|
//// obj->cur.cache.geometry.w =
|
||||||
evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.w) -
|
//// evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.w) -
|
||||||
evas_coord_world_x_to_screen(obj->layer->evas, 0);
|
//// evas_coord_world_x_to_screen(obj->layer->evas, 0);
|
||||||
obj->cur.cache.geometry.h =
|
//// obj->cur.cache.geometry.h =
|
||||||
evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.h) -
|
//// evas_coord_world_y_to_screen(obj->layer->evas, obj->cur.geometry.h) -
|
||||||
evas_coord_world_y_to_screen(obj->layer->evas, 0);
|
//// evas_coord_world_y_to_screen(obj->layer->evas, 0);
|
||||||
if (obj->func->coords_recalc) obj->func->coords_recalc(obj);
|
if (obj->func->coords_recalc) obj->func->coords_recalc(obj);
|
||||||
obj->cur.cache.geometry.validity = obj->layer->evas->output_validity;
|
//// obj->cur.cache.geometry.validity = obj->layer->evas->output_validity;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -501,7 +517,7 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
}
|
}
|
||||||
obj->cur.geometry.x = x;
|
obj->cur.geometry.x = x;
|
||||||
obj->cur.geometry.y = y;
|
obj->cur.geometry.y = y;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
evas_object_clip_dirty(obj);
|
evas_object_clip_dirty(obj);
|
||||||
if (obj->layer->evas->events_frozen <= 0)
|
if (obj->layer->evas->events_frozen <= 0)
|
||||||
|
@ -574,7 +590,7 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
}
|
}
|
||||||
obj->cur.geometry.w = w;
|
obj->cur.geometry.w = w;
|
||||||
obj->cur.geometry.h = h;
|
obj->cur.geometry.h = h;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
evas_object_clip_dirty(obj);
|
evas_object_clip_dirty(obj);
|
||||||
evas_object_recalc_clippees(obj);
|
evas_object_recalc_clippees(obj);
|
||||||
|
@ -754,8 +770,8 @@ evas_object_hide(Evas_Object *obj)
|
||||||
ev.buttons = obj->layer->evas->pointer.button;
|
ev.buttons = obj->layer->evas->pointer.button;
|
||||||
ev.output.x = obj->layer->evas->pointer.x;
|
ev.output.x = obj->layer->evas->pointer.x;
|
||||||
ev.output.y = obj->layer->evas->pointer.y;
|
ev.output.y = obj->layer->evas->pointer.y;
|
||||||
ev.canvas.x = obj->layer->evas->pointer.canvas_x;
|
ev.canvas.x = obj->layer->evas->pointer.x;
|
||||||
ev.canvas.y = obj->layer->evas->pointer.canvas_y;
|
ev.canvas.y = obj->layer->evas->pointer.y;
|
||||||
ev.data = NULL;
|
ev.data = NULL;
|
||||||
ev.modifiers = &(obj->layer->evas->modifiers);
|
ev.modifiers = &(obj->layer->evas->modifiers);
|
||||||
ev.locks = &(obj->layer->evas->locks);
|
ev.locks = &(obj->layer->evas->locks);
|
||||||
|
@ -1009,8 +1025,10 @@ evas_object_top_at_xy_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Bool include
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return NULL;
|
return NULL;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
xx = evas_coord_world_x_to_screen(e, x);
|
xx = x;
|
||||||
yy = evas_coord_world_y_to_screen(e, y);
|
yy = y;
|
||||||
|
//// xx = evas_coord_world_x_to_screen(e, x);
|
||||||
|
//// yy = evas_coord_world_y_to_screen(e, y);
|
||||||
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
||||||
{
|
{
|
||||||
Evas_Object_List *l2;
|
Evas_Object_List *l2;
|
||||||
|
@ -1043,7 +1061,8 @@ evas_object_top_at_xy_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Bool include
|
||||||
EAPI Evas_Object *
|
EAPI Evas_Object *
|
||||||
evas_object_top_at_pointer_get(Evas *e)
|
evas_object_top_at_pointer_get(Evas *e)
|
||||||
{
|
{
|
||||||
return evas_object_top_at_xy_get(e, e->pointer.canvas_x, e->pointer.canvas_y, 0, 0);
|
//// return evas_object_top_at_xy_get(e, e->pointer.canvas_x, e->pointer.canvas_y, 0, 0);
|
||||||
|
return evas_object_top_at_xy_get(e, e->pointer.x, e->pointer.y, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1061,10 +1080,14 @@ evas_object_top_in_rectangle_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return NULL;
|
return NULL;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
xx = evas_coord_world_x_to_screen(e, x);
|
xx = x;
|
||||||
yy = evas_coord_world_y_to_screen(e, y);
|
yy = y;
|
||||||
ww = evas_coord_world_x_to_screen(e, w);
|
ww = w;
|
||||||
hh = evas_coord_world_y_to_screen(e, h);
|
hh = h;
|
||||||
|
//// xx = evas_coord_world_x_to_screen(e, x);
|
||||||
|
//// yy = evas_coord_world_y_to_screen(e, y);
|
||||||
|
//// ww = evas_coord_world_x_to_screen(e, w);
|
||||||
|
//// hh = evas_coord_world_y_to_screen(e, h);
|
||||||
if (ww < 1) ww = 1;
|
if (ww < 1) ww = 1;
|
||||||
if (hh < 1) hh = 1;
|
if (hh < 1) hh = 1;
|
||||||
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
||||||
|
@ -1106,8 +1129,10 @@ evas_objects_at_xy_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Bool include_pa
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return NULL;
|
return NULL;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
xx = evas_coord_world_x_to_screen(e, x);
|
xx = x;
|
||||||
yy = evas_coord_world_y_to_screen(e, y);
|
yy = y;
|
||||||
|
//// xx = evas_coord_world_x_to_screen(e, x);
|
||||||
|
//// yy = evas_coord_world_y_to_screen(e, y);
|
||||||
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
||||||
{
|
{
|
||||||
Evas_Object_List *l2;
|
Evas_Object_List *l2;
|
||||||
|
@ -1147,10 +1172,14 @@ evas_objects_in_rectangle_get(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w,
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return NULL;
|
return NULL;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
xx = evas_coord_world_x_to_screen(e, x);
|
xx = x;
|
||||||
yy = evas_coord_world_y_to_screen(e, y);
|
yy = y;
|
||||||
ww = evas_coord_world_x_to_screen(e, w);
|
ww = w;
|
||||||
hh = evas_coord_world_y_to_screen(e, h);
|
hh = h;
|
||||||
|
//// xx = evas_coord_world_x_to_screen(e, x);
|
||||||
|
//// yy = evas_coord_world_y_to_screen(e, y);
|
||||||
|
//// ww = evas_coord_world_x_to_screen(e, w);
|
||||||
|
//// hh = evas_coord_world_y_to_screen(e, h);
|
||||||
if (ww < 1) ww = 1;
|
if (ww < 1) ww = 1;
|
||||||
if (hh < 1) hh = 1;
|
if (hh < 1) hh = 1;
|
||||||
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
for (l = ((Evas_Object_List *)(e->layers))->last; l; l = l->prev)
|
||||||
|
|
|
@ -141,7 +141,7 @@ evas_object_polygon_point_add(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
}
|
}
|
||||||
o->points = evas_list_append(o->points, p);
|
o->points = evas_list_append(o->points, p);
|
||||||
|
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
o->changed = 1;
|
o->changed = 1;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
evas_object_coords_recalc(obj);
|
evas_object_coords_recalc(obj);
|
||||||
|
@ -192,7 +192,7 @@ evas_object_polygon_points_clear(Evas_Object *obj)
|
||||||
}
|
}
|
||||||
obj->cur.geometry.w = 0;
|
obj->cur.geometry.w = 0;
|
||||||
obj->cur.geometry.h = 0;
|
obj->cur.geometry.h = 0;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
o->changed = 1;
|
o->changed = 1;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
evas_object_coords_recalc(obj);
|
evas_object_coords_recalc(obj);
|
||||||
|
@ -294,15 +294,15 @@ evas_object_polygon_render(Evas_Object *obj, void *output, void *context, void *
|
||||||
for (l = o->points; l; l = l->next)
|
for (l = o->points; l; l = l->next)
|
||||||
{
|
{
|
||||||
Evas_Polygon_Point *p;
|
Evas_Polygon_Point *p;
|
||||||
int px, py;
|
//// int px, py;
|
||||||
|
|
||||||
p = l->data;
|
p = l->data;
|
||||||
px = evas_coord_world_x_to_screen(obj->layer->evas, p->x);
|
//// px = evas_coord_world_x_to_screen(obj->layer->evas, p->x);
|
||||||
py = evas_coord_world_y_to_screen(obj->layer->evas, p->y);
|
//// py = evas_coord_world_y_to_screen(obj->layer->evas, p->y);
|
||||||
o->engine_data = obj->layer->evas->engine.func->polygon_point_add(obj->layer->evas->engine.data.output,
|
o->engine_data = obj->layer->evas->engine.func->polygon_point_add(obj->layer->evas->engine.data.output,
|
||||||
obj->layer->evas->engine.data.context,
|
obj->layer->evas->engine.data.context,
|
||||||
o->engine_data,
|
o->engine_data,
|
||||||
px + x, py + y);
|
p->x + x, p->y + y);
|
||||||
}
|
}
|
||||||
if (o->engine_data)
|
if (o->engine_data)
|
||||||
obj->layer->evas->engine.func->polygon_draw(output,
|
obj->layer->evas->engine.func->polygon_draw(output,
|
||||||
|
|
|
@ -150,10 +150,14 @@ evas_object_rectangle_render(Evas_Object *obj, void *output, void *context, void
|
||||||
obj->layer->evas->engine.func->rectangle_draw(output,
|
obj->layer->evas->engine.func->rectangle_draw(output,
|
||||||
context,
|
context,
|
||||||
surface,
|
surface,
|
||||||
obj->cur.cache.geometry.x + x,
|
obj->cur.geometry.x + x,
|
||||||
obj->cur.cache.geometry.y + y,
|
obj->cur.geometry.y + y,
|
||||||
obj->cur.cache.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.cache.geometry.h);
|
obj->cur.geometry.h);
|
||||||
|
//// obj->cur.cache.geometry.x + x,
|
||||||
|
//// obj->cur.cache.geometry.y + y,
|
||||||
|
//// obj->cur.cache.geometry.w,
|
||||||
|
//// obj->cur.cache.geometry.h);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -224,14 +228,22 @@ evas_object_rectangle_render_pre(Evas_Object *obj)
|
||||||
Evas_Rectangle *r;
|
Evas_Rectangle *r;
|
||||||
Evas_List *rl;
|
Evas_List *rl;
|
||||||
|
|
||||||
rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
|
rl = evas_rects_return_difference_rects(obj->cur.geometry.x,
|
||||||
obj->cur.cache.geometry.y,
|
obj->cur.geometry.y,
|
||||||
obj->cur.cache.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.cache.geometry.h,
|
obj->cur.geometry.h,
|
||||||
obj->prev.cache.geometry.x,
|
obj->prev.geometry.x,
|
||||||
obj->prev.cache.geometry.y,
|
obj->prev.geometry.y,
|
||||||
obj->prev.cache.geometry.w,
|
obj->prev.geometry.w,
|
||||||
obj->prev.cache.geometry.h);
|
obj->prev.geometry.h);
|
||||||
|
//// rl = evas_rects_return_difference_rects(obj->cur.cache.geometry.x,
|
||||||
|
//// obj->cur.cache.geometry.y,
|
||||||
|
//// obj->cur.cache.geometry.w,
|
||||||
|
//// obj->cur.cache.geometry.h,
|
||||||
|
//// obj->prev.cache.geometry.x,
|
||||||
|
//// obj->prev.cache.geometry.y,
|
||||||
|
//// obj->prev.cache.geometry.w,
|
||||||
|
//// obj->prev.cache.geometry.h);
|
||||||
while (rl)
|
while (rl)
|
||||||
{
|
{
|
||||||
r = rl->data;
|
r = rl->data;
|
||||||
|
|
|
@ -202,7 +202,7 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
o->max_descent = ENFN->font_max_descent_get(ENDT, o->engine_data);
|
o->max_descent = ENFN->font_max_descent_get(ENDT, o->engine_data);
|
||||||
obj->cur.geometry.w = w + l + r;
|
obj->cur.geometry.w = w + l + r;
|
||||||
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -222,7 +222,7 @@ evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size siz
|
||||||
}
|
}
|
||||||
obj->cur.geometry.w = 0;
|
obj->cur.geometry.w = 0;
|
||||||
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
}
|
}
|
||||||
o->changed = 1;
|
o->changed = 1;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
|
@ -311,7 +311,7 @@ evas_object_text_text_set(Evas_Object *obj, const char *text)
|
||||||
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
||||||
obj->cur.geometry.w = w + l + r;
|
obj->cur.geometry.w = w + l + r;
|
||||||
obj->cur.geometry.h = h + t + b;
|
obj->cur.geometry.h = h + t + b;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -320,7 +320,7 @@ evas_object_text_text_set(Evas_Object *obj, const char *text)
|
||||||
evas_text_style_pad_get(o->cur.style, NULL, NULL, &t, &b);
|
evas_text_style_pad_get(o->cur.style, NULL, NULL, &t, &b);
|
||||||
obj->cur.geometry.w = 0;
|
obj->cur.geometry.w = 0;
|
||||||
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
}
|
}
|
||||||
o->changed = 1;
|
o->changed = 1;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
|
@ -1393,16 +1393,32 @@ evas_object_text_render(Evas_Object *obj, void *output, void *context, void *sur
|
||||||
context, \
|
context, \
|
||||||
surface, \
|
surface, \
|
||||||
o->engine_data, \
|
o->engine_data, \
|
||||||
obj->cur.cache.geometry.x + x + sl + ox - \
|
obj->cur.geometry.x + x + sl + ox - \
|
||||||
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text), \
|
ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text), \
|
||||||
obj->cur.cache.geometry.y + y + st + oy + \
|
obj->cur.geometry.y + y + st + oy + \
|
||||||
(int) \
|
(int) \
|
||||||
(((o->max_ascent * obj->cur.cache.geometry.h) / obj->cur.geometry.h) - 0.5), \
|
(((o->max_ascent * obj->cur.geometry.h) / obj->cur.geometry.h) - 0.5), \
|
||||||
obj->cur.cache.geometry.w, \
|
obj->cur.geometry.w, \
|
||||||
obj->cur.cache.geometry.h, \
|
obj->cur.geometry.h, \
|
||||||
obj->cur.geometry.w, \
|
obj->cur.geometry.w, \
|
||||||
obj->cur.geometry.h, \
|
obj->cur.geometry.h, \
|
||||||
o->cur.text);
|
o->cur.text);
|
||||||
|
////#define DRAW_TEXT(ox, oy) \
|
||||||
|
//// if ((o->engine_data) && (o->cur.text)) \
|
||||||
|
//// ENFN->font_draw(output, \
|
||||||
|
//// context, \
|
||||||
|
//// surface, \
|
||||||
|
//// o->engine_data, \
|
||||||
|
//// obj->cur.cache.geometry.x + x + sl + ox - \
|
||||||
|
//// ENFN->font_inset_get(ENDT, o->engine_data, o->cur.text), \
|
||||||
|
//// obj->cur.cache.geometry.y + y + st + oy + \
|
||||||
|
//// (int) \
|
||||||
|
//// (((o->max_ascent * obj->cur.cache.geometry.h) / obj->cur.geometry.h) - 0.5), \
|
||||||
|
//// obj->cur.cache.geometry.w, \
|
||||||
|
//// obj->cur.cache.geometry.h, \
|
||||||
|
//// obj->cur.geometry.w, \
|
||||||
|
//// obj->cur.geometry.h, \
|
||||||
|
//// o->cur.text);
|
||||||
/* shadows */
|
/* shadows */
|
||||||
if (o->cur.style == EVAS_TEXT_STYLE_SHADOW)
|
if (o->cur.style == EVAS_TEXT_STYLE_SHADOW)
|
||||||
{
|
{
|
||||||
|
@ -1672,7 +1688,7 @@ _evas_object_text_rehint(Evas_Object *obj)
|
||||||
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b);
|
||||||
obj->cur.geometry.w = w + l + r;
|
obj->cur.geometry.w = w + l + r;
|
||||||
obj->cur.geometry.h = h + t + b;
|
obj->cur.geometry.h = h + t + b;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1681,7 +1697,7 @@ _evas_object_text_rehint(Evas_Object *obj)
|
||||||
evas_text_style_pad_get(o->cur.style, NULL, NULL, &t, &b);
|
evas_text_style_pad_get(o->cur.style, NULL, NULL, &t, &b);
|
||||||
obj->cur.geometry.w = 0;
|
obj->cur.geometry.w = 0;
|
||||||
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
obj->cur.geometry.h = o->max_ascent + o->max_descent + t + b;
|
||||||
obj->cur.cache.geometry.validity = 0;
|
//// obj->cur.cache.geometry.validity = 0;
|
||||||
}
|
}
|
||||||
o->changed = 1;
|
o->changed = 1;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
|
|
|
@ -4006,10 +4006,14 @@ evas_object_textblock_render(Evas_Object *obj, void *output, void *context, void
|
||||||
obj->layer->evas->engine.func->rectangle_draw(output,
|
obj->layer->evas->engine.func->rectangle_draw(output,
|
||||||
context,
|
context,
|
||||||
surface,
|
surface,
|
||||||
obj->cur.cache.geometry.x + x,
|
obj->cur.geometry.x + x,
|
||||||
obj->cur.cache.geometry.y + y,
|
obj->cur.geometry.y + y,
|
||||||
obj->cur.cache.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.cache.geometry.h);
|
obj->cur.geometry.h);
|
||||||
|
//// obj->cur.cache.geometry.x + x,
|
||||||
|
//// obj->cur.cache.geometry.y + y,
|
||||||
|
//// obj->cur.cache.geometry.w,
|
||||||
|
//// obj->cur.cache.geometry.h);
|
||||||
#endif
|
#endif
|
||||||
#define ITEM_WALK() \
|
#define ITEM_WALK() \
|
||||||
for (l = (Evas_Object_List *)o->lines; l; l = l->next) \
|
for (l = (Evas_Object_List *)o->lines; l; l = l->next) \
|
||||||
|
@ -4047,9 +4051,16 @@ evas_object_textblock_render(Evas_Object *obj, void *output, void *context, void
|
||||||
(obj->cur.cache.clip.a * it->format->color.col.a * (amul)) / 65025);
|
(obj->cur.cache.clip.a * it->format->color.col.a * (amul)) / 65025);
|
||||||
#define DRAW_TEXT(ox, oy) \
|
#define DRAW_TEXT(ox, oy) \
|
||||||
if (it->format->font.font) ENFN->font_draw(output, context, surface, it->format->font.font, \
|
if (it->format->font.font) ENFN->font_draw(output, context, surface, it->format->font.font, \
|
||||||
obj->cur.cache.geometry.x + ln->x + it->x - it->inset + x + (ox), \
|
obj->cur.geometry.x + ln->x + it->x - it->inset + x + (ox), \
|
||||||
obj->cur.cache.geometry.y + ln->y + yoff + y + (oy), \
|
obj->cur.geometry.y + ln->y + yoff + y + (oy), \
|
||||||
it->w, it->h, it->w, it->h, it->text);
|
it->w, it->h, it->w, it->h, it->text);
|
||||||
|
////#define DRAW_TEXT(ox, oy) \
|
||||||
|
//// if (it->format->font.font) ENFN->font_draw(output, context, surface, it->format->font.font, \
|
||||||
|
//// obj->cur.geometry.x + ln->x + it->x - it->inset + x + (ox), \
|
||||||
|
//// obj->cur.geometry.y + ln->y + yoff + y + (oy), \
|
||||||
|
//// obj->cur.cache.geometry.x + ln->x + it->x - it->inset + x + (ox), \
|
||||||
|
//// obj->cur.cache.geometry.y + ln->y + yoff + y + (oy), \
|
||||||
|
//// it->w, it->h, it->w, it->h, it->text);
|
||||||
|
|
||||||
pback = 0;
|
pback = 0;
|
||||||
/* backing */
|
/* backing */
|
||||||
|
@ -4095,8 +4106,10 @@ evas_object_textblock_render(Evas_Object *obj, void *output, void *context, void
|
||||||
ENFN->rectangle_draw(output,
|
ENFN->rectangle_draw(output,
|
||||||
context,
|
context,
|
||||||
surface,
|
surface,
|
||||||
obj->cur.cache.geometry.x + ln->x + backx + x,
|
obj->cur.geometry.x + ln->x + backx + x,
|
||||||
obj->cur.cache.geometry.y + ln->y + y,
|
obj->cur.geometry.y + ln->y + y,
|
||||||
|
//// obj->cur.cache.geometry.x + ln->x + backx + x,
|
||||||
|
//// obj->cur.cache.geometry.y + ln->y + y,
|
||||||
x2 - backx,
|
x2 - backx,
|
||||||
ln->h);
|
ln->h);
|
||||||
}
|
}
|
||||||
|
@ -4249,8 +4262,10 @@ evas_object_textblock_render(Evas_Object *obj, void *output, void *context, void
|
||||||
ENFN->rectangle_draw(output,
|
ENFN->rectangle_draw(output,
|
||||||
context,
|
context,
|
||||||
surface,
|
surface,
|
||||||
obj->cur.cache.geometry.x + ln->x + strikex + x,
|
obj->cur.geometry.x + ln->x + strikex + x,
|
||||||
obj->cur.cache.geometry.y + ln->y + y + (ln->h / 2),
|
obj->cur.geometry.y + ln->y + y + (ln->h / 2),
|
||||||
|
//// obj->cur.cache.geometry.x + ln->x + strikex + x,
|
||||||
|
//// obj->cur.cache.geometry.y + ln->y + y + (ln->h / 2),
|
||||||
x2 - strikex,
|
x2 - strikex,
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
|
@ -4302,8 +4317,10 @@ evas_object_textblock_render(Evas_Object *obj, void *output, void *context, void
|
||||||
ENFN->rectangle_draw(output,
|
ENFN->rectangle_draw(output,
|
||||||
context,
|
context,
|
||||||
surface,
|
surface,
|
||||||
obj->cur.cache.geometry.x + ln->x + linex + x,
|
obj->cur.geometry.x + ln->x + linex + x,
|
||||||
obj->cur.cache.geometry.y + ln->y + y + ln->baseline + 1,
|
obj->cur.geometry.y + ln->y + y + ln->baseline + 1,
|
||||||
|
//// obj->cur.cache.geometry.x + ln->x + linex + x,
|
||||||
|
//// obj->cur.cache.geometry.y + ln->y + y + ln->baseline + 1,
|
||||||
x2 - linex,
|
x2 - linex,
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
|
@ -4355,8 +4372,10 @@ evas_object_textblock_render(Evas_Object *obj, void *output, void *context, void
|
||||||
ENFN->rectangle_draw(output,
|
ENFN->rectangle_draw(output,
|
||||||
context,
|
context,
|
||||||
surface,
|
surface,
|
||||||
obj->cur.cache.geometry.x + ln->x + line2x + x,
|
obj->cur.geometry.x + ln->x + line2x + x,
|
||||||
obj->cur.cache.geometry.y + ln->y + y + ln->baseline + 3,
|
obj->cur.geometry.y + ln->y + y + ln->baseline + 3,
|
||||||
|
//// obj->cur.cache.geometry.x + ln->x + line2x + x,
|
||||||
|
//// obj->cur.cache.geometry.y + ln->y + y + ln->baseline + 3,
|
||||||
x2 - line2x,
|
x2 - line2x,
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -238,6 +238,10 @@ evas_render_updates_internal(Evas *e, unsigned char make_updates)
|
||||||
0, 0,
|
0, 0,
|
||||||
e->output.w, e->output.h);
|
e->output.w, e->output.h);
|
||||||
}
|
}
|
||||||
|
if ((e->output.w != e->viewport.w) || (e->output.h != e->viewport.h))
|
||||||
|
{
|
||||||
|
printf("EVAS: error: viewport size != output size!\n");
|
||||||
|
}
|
||||||
/* phase 5. add obscures */
|
/* phase 5. add obscures */
|
||||||
for (ll = e->obscures; ll; ll = ll->next)
|
for (ll = e->obscures; ll; ll = ll->next)
|
||||||
{
|
{
|
||||||
|
|
|
@ -123,12 +123,14 @@ evas_common_pipe_begin(RGBA_Image *im)
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
int i, y, h;
|
int i, y, h;
|
||||||
|
|
||||||
|
if (thread_num == 1) return;
|
||||||
if (thread_num == 0)
|
if (thread_num == 0)
|
||||||
{
|
{
|
||||||
int cpunum;
|
int cpunum;
|
||||||
|
|
||||||
cpunum = evas_common_cpu_count();
|
cpunum = evas_common_cpu_count();
|
||||||
thread_num = cpunum;
|
thread_num = cpunum;
|
||||||
|
if (thread_num == 1) return;
|
||||||
pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
|
pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
|
||||||
for (i = 0; i < thread_num; i++)
|
for (i = 0; i < thread_num; i++)
|
||||||
{
|
{
|
||||||
|
@ -176,6 +178,7 @@ evas_common_pipe_begin(RGBA_Image *im)
|
||||||
/* send startsignal */
|
/* send startsignal */
|
||||||
// printf("START %i\n", i);
|
// printf("START %i\n", i);
|
||||||
}
|
}
|
||||||
|
/* tell worker threads to start */
|
||||||
pthread_barrier_init(&(thbarrier[1]), NULL, thread_num + 1);
|
pthread_barrier_init(&(thbarrier[1]), NULL, thread_num + 1);
|
||||||
pthread_barrier_wait(&(thbarrier[0]));
|
pthread_barrier_wait(&(thbarrier[0]));
|
||||||
pthread_barrier_destroy(&(thbarrier[0]));
|
pthread_barrier_destroy(&(thbarrier[0]));
|
||||||
|
@ -191,26 +194,27 @@ evas_common_pipe_flush(RGBA_Image *im)
|
||||||
|
|
||||||
if (!im->pipe) return;
|
if (!im->pipe) return;
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
/* FIXME: PTHREAD join all threads here (if not finished) or begin then join
|
if (thread_num > 1)
|
||||||
* otherwise just process pipe */
|
|
||||||
{
|
{
|
||||||
|
/* sync worker threads */
|
||||||
pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
|
pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
|
||||||
pthread_barrier_wait(&(thbarrier[1]));
|
pthread_barrier_wait(&(thbarrier[1]));
|
||||||
pthread_barrier_destroy(&(thbarrier[1]));
|
pthread_barrier_destroy(&(thbarrier[1]));
|
||||||
// printf("DONE\n");
|
// printf("DONE\n");
|
||||||
}
|
}
|
||||||
|
else
|
||||||
#else
|
#endif
|
||||||
/* process pipe - 1 thead */
|
|
||||||
for (p = im->pipe; p; p = (RGBA_Pipe *)((Evas_Object_List *)p)->next)
|
|
||||||
{
|
{
|
||||||
for (i = 0; i < p->op_num; i++)
|
/* process pipe - 1 thead */
|
||||||
|
for (p = im->pipe; p; p = (RGBA_Pipe *)((Evas_Object_List *)p)->next)
|
||||||
{
|
{
|
||||||
if (p->op[i].op_func)
|
for (i = 0; i < p->op_num; i++)
|
||||||
p->op[i].op_func(im, &(p->op[i]), NULL);
|
{
|
||||||
|
if (p->op[i].op_func)
|
||||||
|
p->op[i].op_func(im, &(p->op[i]), NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
evas_common_cpu_end_opt();
|
evas_common_cpu_end_opt();
|
||||||
evas_common_pipe_free(im);
|
evas_common_pipe_free(im);
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,9 +275,9 @@ struct _Evas
|
||||||
unsigned char inside : 1;
|
unsigned char inside : 1;
|
||||||
int mouse_grabbed;
|
int mouse_grabbed;
|
||||||
DATA32 button;
|
DATA32 button;
|
||||||
int x, y;
|
Evas_Coord x, y;
|
||||||
|
|
||||||
Evas_Coord canvas_x, canvas_y;
|
//// Evas_Coord canvas_x, canvas_y;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
Evas_List *in;
|
Evas_List *in;
|
||||||
|
@ -364,10 +364,12 @@ struct _Evas_Object
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
struct {
|
struct {
|
||||||
|
/*
|
||||||
struct {
|
struct {
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
int validity;
|
int validity;
|
||||||
} geometry;
|
} geometry;
|
||||||
|
*/
|
||||||
struct {
|
struct {
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
unsigned char r, g, b, a;
|
unsigned char r, g, b, a;
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
*****
|
*****
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static int cpunum = 0;
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
eng_context_new(void *data)
|
eng_context_new(void *data)
|
||||||
{
|
{
|
||||||
|
@ -141,22 +143,28 @@ static void
|
||||||
eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
|
eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
evas_common_pipe_rectangle_draw(surface, context, x, y, w, h);
|
if (cpunum > 1)
|
||||||
#else
|
evas_common_pipe_rectangle_draw(surface, context, x, y, w, h);
|
||||||
evas_common_rectangle_draw(surface, context, x, y, w, h);
|
else
|
||||||
evas_common_cpu_end_opt();
|
#endif
|
||||||
#endif
|
{
|
||||||
|
evas_common_rectangle_draw(surface, context, x, y, w, h);
|
||||||
|
evas_common_cpu_end_opt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
|
eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
evas_common_pipe_line_draw(surface, context, x1, y1, x2, y2);
|
if (cpunum > 1)
|
||||||
#else
|
evas_common_pipe_line_draw(surface, context, x1, y1, x2, y2);
|
||||||
evas_common_line_draw(surface, context, x1, y1, x2, y2);
|
else
|
||||||
evas_common_cpu_end_opt();
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
evas_common_line_draw(surface, context, x1, y1, x2, y2);
|
||||||
|
evas_common_cpu_end_opt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
|
@ -175,11 +183,14 @@ static void
|
||||||
eng_polygon_draw(void *data, void *context, void *surface, void *polygon)
|
eng_polygon_draw(void *data, void *context, void *surface, void *polygon)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
evas_common_pipe_poly_draw(surface, context, polygon);
|
if (cpunum > 1)
|
||||||
#else
|
evas_common_pipe_poly_draw(surface, context, polygon);
|
||||||
evas_common_polygon_draw(surface, context, polygon);
|
else
|
||||||
evas_common_cpu_end_opt();
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
evas_common_polygon_draw(surface, context, polygon);
|
||||||
|
evas_common_cpu_end_opt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
|
@ -308,11 +319,14 @@ static void
|
||||||
eng_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h)
|
eng_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
evas_common_pipe_grad_draw(surface, context, x, y, w, h, gradient);
|
if (cpunum > 1)
|
||||||
#else
|
evas_common_pipe_grad_draw(surface, context, x, y, w, h, gradient);
|
||||||
evas_common_gradient_draw(surface, context, x, y, w, h, gradient);
|
else
|
||||||
evas_common_cpu_end_opt();
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
evas_common_gradient_draw(surface, context, x, y, w, h, gradient);
|
||||||
|
evas_common_cpu_end_opt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
|
@ -502,20 +516,23 @@ eng_image_draw(void *data, void *context, void *surface, void *image, int src_x,
|
||||||
{
|
{
|
||||||
evas_common_load_image_data_from_file(image);
|
evas_common_load_image_data_from_file(image);
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
evas_common_pipe_image_draw(image, surface, context, smooth,
|
if (cpunum > 1)
|
||||||
src_x, src_y, src_w, src_h,
|
evas_common_pipe_image_draw(image, surface, context, smooth,
|
||||||
dst_x, dst_y, dst_w, dst_h);
|
src_x, src_y, src_w, src_h,
|
||||||
#else
|
dst_x, dst_y, dst_w, dst_h);
|
||||||
if (smooth)
|
|
||||||
evas_common_scale_rgba_in_to_out_clip_smooth(image, surface, context,
|
|
||||||
src_x, src_y, src_w, src_h,
|
|
||||||
dst_x, dst_y, dst_w, dst_h);
|
|
||||||
else
|
else
|
||||||
evas_common_scale_rgba_in_to_out_clip_sample(image, surface, context,
|
|
||||||
src_x, src_y, src_w, src_h,
|
|
||||||
dst_x, dst_y, dst_w, dst_h);
|
|
||||||
evas_common_cpu_end_opt();
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
if (smooth)
|
||||||
|
evas_common_scale_rgba_in_to_out_clip_smooth(image, surface, context,
|
||||||
|
src_x, src_y, src_w, src_h,
|
||||||
|
dst_x, dst_y, dst_w, dst_h);
|
||||||
|
else
|
||||||
|
evas_common_scale_rgba_in_to_out_clip_sample(image, surface, context,
|
||||||
|
src_x, src_y, src_w, src_h,
|
||||||
|
dst_x, dst_y, dst_w, dst_h);
|
||||||
|
evas_common_cpu_end_opt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
|
@ -655,50 +672,14 @@ static void
|
||||||
eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, const char *text)
|
eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, const char *text)
|
||||||
{
|
{
|
||||||
#ifdef BUILD_PTHREAD
|
#ifdef BUILD_PTHREAD
|
||||||
evas_common_pipe_text_draw(surface, context, font, x, y, text);
|
if (cpunum > 1)
|
||||||
#else
|
evas_common_pipe_text_draw(surface, context, font, x, y, text);
|
||||||
evas_common_font_draw(surface, context, font, x, y, text);
|
|
||||||
evas_common_cpu_end_opt();
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
/* create output surface size ow x oh and scale to w x h */
|
|
||||||
RGBA_Draw_Context *dc, *dc_in;
|
|
||||||
|
|
||||||
dc_in = context;
|
|
||||||
dc = evas_common_draw_context_new();
|
|
||||||
if (dc)
|
|
||||||
{
|
|
||||||
RGBA_Image *im;
|
|
||||||
int inset;
|
|
||||||
|
|
||||||
dc->col.col = dc_in->col.col;
|
|
||||||
inset = evas_common_font_query_inset( font, text);
|
|
||||||
im = evas_common_image_create(ow+inset, oh);
|
|
||||||
if (im)
|
|
||||||
{
|
|
||||||
int max_ascent;
|
|
||||||
int j;
|
|
||||||
|
|
||||||
im->flags |= RGBA_IMAGE_HAS_ALPHA;
|
|
||||||
j = (ow + inset) * oh;
|
|
||||||
memset(im->image->data, 0, j * sizeof(DATA32));
|
|
||||||
|
|
||||||
max_ascent = evas_common_font_max_ascent_get(font);
|
|
||||||
|
|
||||||
evas_common_font_draw(im, dc, font, 0, max_ascent, text);
|
|
||||||
evas_common_cpu_end_opt();
|
|
||||||
evas_common_scale_rgba_in_to_out_clip_smooth
|
|
||||||
(im, surface, context, inset, 0, ow, oh,
|
|
||||||
x + ((inset * w) / ow), y - ((max_ascent * h) / oh),
|
|
||||||
w, h);
|
|
||||||
evas_common_image_free(im);
|
|
||||||
}
|
|
||||||
evas_common_draw_context_free(dc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
evas_common_font_draw(surface, context, font, x, y, text);
|
||||||
|
evas_common_cpu_end_opt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -863,6 +844,7 @@ module_open(Evas_Module *em)
|
||||||
{
|
{
|
||||||
if (!em) return 0;
|
if (!em) return 0;
|
||||||
em->functions = (void *)(&func);
|
em->functions = (void *)(&func);
|
||||||
|
cpunum = evas_common_cpu_count();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue