Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas
Modified Files:
evas_object_gradient.c evas_object_image.c evas_stack.c
Log Message:
patches that i said were in - commit. (see my reply emails)
also finish off a TODO item or 2
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_object_gradient.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- evas_object_gradient.c 2 May 2006 07:28:46 -0000 1.12
+++ evas_object_gradient.c 7 Jun 2006 23:30:14 -0000 1.13
@@ -129,7 +129,6 @@
o->engine_data,
r, g, b,
a,
distance);
- if (a != 255) o->cur.gradient_opaque = 0;
o->gradient_changed = 1;
o->changed = 1;
evas_object_change(obj);
@@ -158,7 +157,7 @@
o->engine_data);
o->gradient_changed = 1;
o->changed = 1;
- o->cur.gradient_opaque = 1;
+ o->cur.gradient_opaque = 0;
evas_object_change(obj);
}
@@ -201,7 +200,6 @@
o->engine_data,
data, len,
has_alpha);
o->imported_data = 1;
- if (has_alpha) o->cur.gradient_opaque = 0;
o->gradient_changed = 1;
o->changed = 1;
evas_object_change(obj);
@@ -235,7 +233,7 @@
obj->layer->evas->engine.data.context,
o->engine_data);
o->imported_data = 0;
- o->cur.gradient_opaque = 1;
+ o->cur.gradient_opaque = 0;
o->gradient_changed = 1;
o->changed = 1;
evas_object_change(obj);
@@ -736,16 +734,20 @@
obj->cur.render_op);
if (o->engine_data)
{
- if (o->gradient_changed)
- obj->layer->evas->engine.func->gradient_map(output, context,
o->engine_data,
- o->cur.spread);
- obj->layer->evas->engine.func->gradient_draw(output, context, surface,
- o->engine_data,
- obj->cur.cache.geometry.x
+ x,
- obj->cur.cache.geometry.y
+ y,
- obj->cur.cache.geometry.w,
- obj->cur.cache.geometry.h,
- o->cur.angle,
o->cur.spread);
+ o->engine_data =
obj->layer->evas->engine.func->gradient_geometry_init(output, o->engine_data,
o->cur.spread);
+ if (o->engine_data)
+ {
+ if (o->gradient_changed)
+ obj->layer->evas->engine.func->gradient_map(output, context,
o->engine_data,
+ o->cur.spread);
+ obj->layer->evas->engine.func->gradient_draw(output, context,
surface,
+ o->engine_data,
+
obj->cur.cache.geometry.x + x,
+
obj->cur.cache.geometry.y + y,
+
obj->cur.cache.geometry.w,
+
obj->cur.cache.geometry.h,
+ o->cur.angle,
o->cur.spread);
+ }
}
}
@@ -787,9 +789,6 @@
o->changed = 1;
if (obj->cur.interpolation.color_space !=
obj->prev.interpolation.color_space)
o->gradient_changed = 1;
- if ((obj->cur.render_op != EVAS_RENDER_COPY) &&
- (obj->cur.cache.clip.a != 255))
- o->cur.gradient_opaque = 0;
if (obj->cur.render_op != obj->prev.render_op)
o->changed = 1;
if (o->changed && o->engine_data)
@@ -811,8 +810,10 @@
o->engine_data =
obj->layer->evas->engine.func->gradient_geometry_init(obj->layer->evas->engine.data.output,
o->engine_data, o->cur.spread);
if (o->engine_data)
{
- o->cur.gradient_opaque &=
!(obj->layer->evas->engine.func->gradient_alpha_get(obj->layer->evas->engine.data.output,
o->engine_data, o->cur.spread, obj->cur.render_op));
+ o->cur.gradient_opaque =
!(obj->layer->evas->engine.func->gradient_alpha_get(obj->layer->evas->engine.data.output,
o->engine_data, o->cur.spread, obj->cur.render_op));
}
+ if (obj->cur.cache.clip.a != 255)
+ o->cur.gradient_opaque = 0;
}
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
@@ -909,9 +910,6 @@
/* currently fully opaque over the entire gradient it occupies */
o = (Evas_Object_Gradient *)(obj->object_data);
if (!o->engine_data) return 0;
- o->cur.gradient_opaque &=
-
!(obj->layer->evas->engine.func->gradient_alpha_get(obj->layer->evas->engine.data.output,
- o->engine_data, o->cur.spread, obj->cur.render_op));
return o->cur.gradient_opaque;
}
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_object_image.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- evas_object_image.c 31 May 2006 18:33:45 -0000 1.40
+++ evas_object_image.c 7 Jun 2006 23:30:14 -0000 1.41
@@ -1389,6 +1389,9 @@
}
o->dirty_pixels = 0;
}
+ o->engine_data =
obj->layer->evas->engine.func->image_border_set(output, o->engine_data,
+
o->cur.border.l, o->cur.border.r,
+
o->cur.border.t, o->cur.border.b);
idx = evas_object_image_figure_x_fill(obj, o->cur.fill.x,
o->cur.fill.w, &idw);
idy = evas_object_image_figure_y_fill(obj, o->cur.fill.y,
o->cur.fill.h, &idh);
if (idw < 1.0) idw = 1.0;
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_stack.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- evas_stack.c 6 Jan 2006 23:05:17 -0000 1.22
+++ evas_stack.c 7 Jun 2006 23:30:14 -0000 1.23
@@ -325,8 +325,22 @@
return NULL;
MAGIC_CHECK_END();
if (obj->smart.parent)
- return (Evas_Object *)(((Evas_Object_List *)(obj))->next);
- return evas_object_above_get_internal(obj);
+ {
+ do
+ {
+ obj = (Evas_Object *)(((Evas_Object_List *)(obj))->next);
+ if ((obj) && (!obj->delete_me)) return obj;
+ }
+ while (obj);
+ return NULL;
+ }
+ obj = evas_object_above_get_internal(obj);
+ while (obj)
+ {
+ if (!obj->delete_me) return obj;
+ obj = evas_object_above_get_internal(obj);
+ }
+ return NULL;
}
/**
@@ -342,8 +356,22 @@
return NULL;
MAGIC_CHECK_END();
if (obj->smart.parent)
- return (Evas_Object *)(((Evas_Object_List *)(obj))->prev);
- return evas_object_below_get_internal(obj);
+ {
+ do
+ {
+ obj = (Evas_Object *)(((Evas_Object_List *)(obj))->prev);
+ if ((obj) && (!obj->delete_me)) return obj;
+ }
+ while (obj);
+ return NULL;
+ }
+ obj = evas_object_below_get_internal(obj);
+ while (obj)
+ {
+ if (!obj->delete_me) return obj;
+ obj = evas_object_below_get_internal(obj);
+ }
+ return NULL;
}
/**
@@ -359,7 +387,16 @@
return NULL;
MAGIC_CHECK_END();
if (e->layers)
- return e->layers->objects;
+ {
+ Evas_Object *obj;
+
+ obj = e->layers->objects;
+ while (obj)
+ {
+ if (!obj->delete_me) return obj;
+ obj = evas_object_above_get_internal(obj);
+ }
+ }
return NULL;
}
@@ -372,7 +409,7 @@
EAPI Evas_Object *
evas_object_top_get(Evas *e)
{
- Evas_Object *obj2 = NULL;
+ Evas_Object *obj = NULL;
Evas_Object_List *list;
Evas_Layer *layer;
@@ -389,8 +426,14 @@
list = (Evas_Object_List *) layer->objects;
if (!list) return NULL;
- obj2 = (Evas_Object *) list->last;
- if (!obj2) return NULL;
+ obj = (Evas_Object *) list->last;
+ if (!obj) return NULL;
+
+ while (obj)
+ {
+ if (!obj->delete_me) return obj;
+ obj = evas_object_below_get_internal(obj);
+ }
- return obj2;
+ return obj;
}
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs