On Thu, Sep 5, 2013 at 7:28 AM, Carsten Haitzler <[email protected]> wrote: > 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. :)
Well, we should be able to at least improve the situation for EFL application by creating a window property when the first frame is pushed. E could listen to that property, cancel the timer when it see it and draw the window. We could even push that idea to Free Desktop standard. -- Cedric BAIL ------------------------------------------------------------------------------ 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
