forked from enlightenment/efl
forget that forray into optimizing that...
SVN revision: 4377
This commit is contained in:
parent
60ccea0a2f
commit
5971ae9ea9
|
@ -1,153 +0,0 @@
|
||||||
#include "Evas_private.h"
|
|
||||||
#include "Evas.h"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include "evas_gl_routines.h"
|
|
||||||
#include "evas_imlib_routines.h"
|
|
||||||
#include "evas_image_routines.h"
|
|
||||||
#include "evas_x11_routines.h"
|
|
||||||
#include "evas_render_routines.h"
|
|
||||||
|
|
||||||
void
|
|
||||||
_evas_opt_invalidate(Evas e)
|
|
||||||
{
|
|
||||||
Evas_List l;
|
|
||||||
|
|
||||||
for (l = e->layers; l; l = l->next)
|
|
||||||
{
|
|
||||||
Evas_Layer layer;
|
|
||||||
Evas_List ll;
|
|
||||||
|
|
||||||
layer = l->data;
|
|
||||||
layer->opt.visible.valid = 0;
|
|
||||||
if (layer->opt.visible.objects)
|
|
||||||
{
|
|
||||||
for (ll = layer->opt.visible.objects; ll; ll = ll->next)
|
|
||||||
{
|
|
||||||
Evas_Object o;
|
|
||||||
|
|
||||||
o = ll->data;
|
|
||||||
o->opt.layer = NULL;
|
|
||||||
o->opt.is = 0;
|
|
||||||
}
|
|
||||||
evas_list_free(layer->opt.visible.objects);
|
|
||||||
layer->opt.visible.objects = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_evas_opt_validate_all(Evas e)
|
|
||||||
{
|
|
||||||
Evas_List l;
|
|
||||||
|
|
||||||
for (l = e->layers; l; l = l->next)
|
|
||||||
{
|
|
||||||
Evas_Layer layer;
|
|
||||||
Evas_List ll;
|
|
||||||
|
|
||||||
layer = l->data;
|
|
||||||
if (!layer->opt.visible.valid)
|
|
||||||
{
|
|
||||||
layer->opt.visible.valid = 1;
|
|
||||||
for (ll = layer->objects; ll; ll = ll->next)
|
|
||||||
{
|
|
||||||
Evas_Object o;
|
|
||||||
|
|
||||||
o = ll->data;
|
|
||||||
o->opt.layer = layer;
|
|
||||||
_evas_opt_validate_object(e, o);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Evas_List;
|
|
||||||
_evas_opt_cleanup_validate_all(Evas e)
|
|
||||||
{
|
|
||||||
Evas_List l;
|
|
||||||
Evas_List removes = NULL;
|
|
||||||
|
|
||||||
for (l = e->layers; l; l = l->next)
|
|
||||||
{
|
|
||||||
Evas_Layer layer;
|
|
||||||
Evas_List ll;
|
|
||||||
|
|
||||||
layer = l->data;
|
|
||||||
if (layer->opt.visible.valid)
|
|
||||||
{
|
|
||||||
for (ll = layer->opt.visible.objects; ll; ll = ll->next)
|
|
||||||
{
|
|
||||||
Evas_Object o;
|
|
||||||
|
|
||||||
o = ll->data;
|
|
||||||
o->opt.layer = layer;
|
|
||||||
if ((o->previous.visible) && (!o->current.visible))
|
|
||||||
{
|
|
||||||
removes = evas_list_append(removes, o);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return removes;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_evas_opt_cleanup_validate_all_removes(Evas e, Evas_List removes)
|
|
||||||
{
|
|
||||||
Evas_List l;
|
|
||||||
|
|
||||||
if (removes)
|
|
||||||
{
|
|
||||||
for (l = removes; l; l = l->next)
|
|
||||||
{
|
|
||||||
Evas_Object o;
|
|
||||||
|
|
||||||
o = l->data;
|
|
||||||
o->opt.is = 0;
|
|
||||||
o->opt.layer->opt.visible.objects = evas_list_remove(o->opt.layer->opt.visible.objects, o);
|
|
||||||
}
|
|
||||||
evas_list_free(removes);
|
|
||||||
removes = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_evas_opt_set_object_layer(Evas e, Evas_Object o, Evas_Layer layer)
|
|
||||||
{
|
|
||||||
o->opt.layer = layer;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_evas_opt_validate_object(Evas e, Evas_Object o)
|
|
||||||
{
|
|
||||||
double cx, cy, cw, ch, px, py, pw, ph;
|
|
||||||
|
|
||||||
if (o->opt.is) return;
|
|
||||||
/* if ((!o->current.visible) && (!o->previous.visible)) return;*/
|
|
||||||
if (!o->opt.layer) return;
|
|
||||||
_evas_get_current_clipped_geometry(e, o, &cx, &cy, &cw, &ch);
|
|
||||||
_evas_get_previous_clipped_geometry(e, o, &px, &py, &pw, &ph);
|
|
||||||
if ((!(INTERSECTS(cx, cy, cw, ch,
|
|
||||||
e->current.viewport.x, e->current.viewport.y,
|
|
||||||
e->current.viewport.w, e->current.viewport.h))) &&
|
|
||||||
(!(INTERSECTS(px, py, pw, ph,
|
|
||||||
e->previous.viewport.x, e->previous.viewport.y,
|
|
||||||
e->previous.viewport.w, e->previous.viewport.h))))
|
|
||||||
return;
|
|
||||||
o->opt.is = 1;
|
|
||||||
o->opt.layer->opt.visible.objects = evas_list_append(o->opt.layer->opt.visible.objects, o);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_evas_opt_invalidate_object(Evas e, Evas_Object o)
|
|
||||||
{
|
|
||||||
if (!o->opt.is) return;
|
|
||||||
o->opt.is = 0;
|
|
||||||
if (o->opt.layer)
|
|
||||||
{
|
|
||||||
o->opt.layer->opt.visible.objects = evas_list_remove(o->opt.layer->opt.visible.objects, o);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue