On Thu, 5 Sep 2013 04:47:07 +0100 Michael Blumenkrantz
<[email protected]> said:

> On Thu, 5 Sep 2013 12:44:13 +0900
> Carsten Haitzler (The Rasterman) <[email protected]> wrote:
> 
> > On Thu, 5 Sep 2013 04:18:52 +0100 Michael Blumenkrantz
> > <[email protected]> said:
> > 
> > > On Thu, 5 Sep 2013 08:59:11 +0900
> > > Carsten Haitzler (The Rasterman) <[email protected]> wrote:
> > > 
> > > > On Wed, 4 Sep 2013 19:29:38 +0100 Michael Blumenkrantz
> > > > <[email protected]> said:
> > > > 
> > > > > On Tue, 03 Sep 2013 23:13:39 -0700
> > > > > Carsten Haitzler (Rasterman) - Enlightenment Git
> > > > > <[email protected]> wrote:
> > > > > 
> > > > > > raster pushed a commit to branch master.
> > > > > > 
> > > > > > commit af576fcd8f46c37dfb5fbe0d43240794daf4d460
> > > > > > Author: Carsten Haitzler (Rasterman) <[email protected]>
> > > > > > Date:   Wed Sep 4 15:13:26 2013 +0900
> > > > > > 
> > > > > >     apply show_ready timeout to each new show, not just the first
> > > > > > one.
> > > > > > ---
> > > > > >  src/bin/e_comp.c | 2 ++
> > > > > >  1 file changed, 2 insertions(+)
> > > > > > 
> > > > > > diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
> > > > > > index aa29677..faf7e9a 100644
> > > > > > --- a/src/bin/e_comp.c
> > > > > > +++ b/src/bin/e_comp.c
> > > > > > @@ -597,6 +597,7 @@ _e_comp_win_update(E_Comp_Win *cw)
> > > > > >               cw->pixmap = pm;
> > > > > >               cw->needpix = 0;
> > > > > >               if (cw->xim) cw->needxim = 1;
> > > > > > +             cw->show_ready = 0;
> > > > > >               _e_comp_win_ready_timeout_setup(cw);
> > > > > >               if ((cw->pw != pw) || (cw->ph != ph)) cw->geom_update
> > > > > > = 1; DBG("REND [0x%x] pixmap = [0x%x], %ix%i", cw->win,
> > > > > > cw->pixmap, cw->pw, cw->ph); @@ -2539,6 +2540,7 @@ _e_comp_win_show
> > > > > > (E_Comp_Win *cw) if (cw->pixmap)
> > > > > >            {
> > > > > >               ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &
> > > > > > (cw->pw), &(cw->ph));
> > > > > > +             cw->show_ready = 1;
> > > > > >               _e_comp_win_ready_timeout_setup(cw);
> > > > > >               if ((cw->pw != pw) || (cw->ph != ph)) cw->geom_update
> > > > > > = 1; }
> > > > > > 
> > > > > 
> > > > > I've been meaning to ask, is there a point to show_ready other than
> > > > > being legacy?
> > > > 
> > > > there absolutely is a point. it's not legacy. well with x11 it's not.
> > > > 
> > > 
> > > okay, so will you share that point?
> > 
> > oh you wanted to know? you should have asked! :)
> > 
> > app starts - shows window but has not drawn content yes after expose event.
> > so content is garbage data until app does. this forces a delay allowing the
> > app time to draw so when comp has to show the window, it isnt full of
> > garbage to begin with.
> > 
> 
> yeah, but it also enforces an arbitrary delay which may or may not be
> accurate. it seems to me that if you are able to manage the exposes
> effectively, this timer becomes unnecessary, so I wanted confirmation of
> that, which you've just given. another day, another comp variable learned.

there is no way to know when the app has actually rendered. a damage event != a
render. it could be an internal damage as part of an automatic clear thanks to
initial mapping. it could be PART of the rendering (1 area drawn or the button
half drawn with bevels and text missing) etc. it could be that, assuming no
damages are auto-generated on map (i need to double check) that the app has
already finished drawing, so expecting a damage is wrong.... (or in the case of
an override redirect window - we missed it)...

the problem is we cant manage the exposes because exposes are generated by the
xserver itself, and a damage event != a finished draw. this is where wayland
design is much nicer and cleaner. there are no exposes. when app has a full
frame ready - it sends the full buffer across. it's done. guaranteed. :)


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]


------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to