On Wed, 16 Oct 2013 12:26:26 -0300 Ulisses Furquim <uliss...@gmail.com> said:

> Raster,
> 
> On Wed, Oct 16, 2013 at 12:01 PM, Carsten Haitzler <ras...@rasterman.com>
> wrote:
> > raster pushed a commit to branch master.
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=06c3c0cd0c0e2af7279470ab5b3fd3100e1499db
> >
> > commit 06c3c0cd0c0e2af7279470ab5b3fd3100e1499db
> > Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
> > Date:   Thu Oct 17 00:00:05 2013 +0900
> >
> >     async render -> alpha set. if not visible dont WAIT. do it now.
> > ---
> >  src/modules/ecore_evas/engines/x/ecore_evas_x.c | 11 ++++++++---
> >  1 file changed, 8 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c
> > b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 627dd15..69e0709
> > 100644
> > --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c
> > +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
> > @@ -2284,10 +2284,15 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
> >       {
> >          if (ee->in_async_render)
> >            {
> > -             ee->delayed.alpha = alpha;
> > -             ee->delayed.alpha_changed = EINA_TRUE;
> > -             return;
> > +             if (ee->visible)
> > +               {
> > +                  ee->delayed.alpha = alpha;
> > +                  ee->delayed.alpha_changed = EINA_TRUE;
> > +                  return;
> > +               }
> >            }
> > +        if (ee->in_async_render)
> > +        evas_sync(ee->evas);
> 
> Why? We're syncing just to apply the alpha for those not visible? Your
> commit message is wrong because we are WAITING on this sync call
> before the _alpha_do(). Thus it's almost the same as letting the alpha
> be set the delayed way. Unless I'm missing anything we're not gaining
> anything with this patch.

no sync -> segv. sync -> no segv. (inside evas async rendering where an xob is
null). since changing to alpha destroys and recreates the window id... not
surprising.

if we delay UNCONDITIONALLY (which is what it did before the change -
regardless of visibility) we WAIT until the window has already rendered
something (which likely is after a show that came AFTER the set to alpha), and
then now that we rendered and showed... we destroy and re-create again... when
we could have happily just done it without delay/wait and avoided artifacts on
invisible windows. :)


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to