On Mon, 14 Aug 2006 15:42:34 -0500 [EMAIL PROTECTED] babbled: > On Mon, Aug 14, 2006 at 02:27:03PM +0900, Carsten Haitzler wrote: > > noo noo! use an ecore job! idlers run continually after entering idle! :) > > > > Raster and I talked about this on IRC, but as a heads up to everyone else: > > First a quick overiview. > > Ecore_Idle_Enterers > run when we go idle. generally this will be AFTER evas' render (which > is also an idle enterer, but is generally added before any others) > > Ecore_Idlers > get run continuously while idle. > > Ecore_Idle_Exiters > run just before events start getting processed again > > Ecore_Jobs > run "later". basically, an event is added that calls the job. any > events already in the queue by the time the current event gets > processed will be dealt with before the job runs. > > > For the spectrum object, I needed to rebuild the image data whenever the > currently selected color changed (e.g. dragging in one of the csliders, or > editing one of the text entries). On change, i called a spectrum_update > function, which then created an Ecore_Job to do the actual draw. > > I was assuming that if we got several change events quickly, they would > get processed before the job ran, giving us a single draw. e.g. > > Change Event > Update > Add Job > (Several other change events whose > updates do nothing) > Draw > > > But, this wasn't the case. What I actually got was Change > Add Job > > Draw > Change > Add Job > Draw. That is, a draw immediately after the > change occured. > > Idlers, enterers and exiters all occured AFTER evas rendered, so the > state was always one event behind. > > I finally ended up using a short timer (.001 sec), which works. (Draw is > delayed long enough for successive quick change events to do nothing). > > So, if anyone else is doing a smart object that needs to draw itself, do > something like this for now. Eventually we'll add pre/post_render > callbacks to evas (which would be a more appropriate place to do such a > thing).
i can see the use of pre/post render callbacks per object and for a canvas as a whole. as a mater of fact ecore_evas does provide this - but i think evas itself should provide hooks for evas_render(). i will look into this... > rephorm. > > > On Mon, 14 Aug 2006 01:21:16 -0400 (EDT) Enlightenment CVS > > <[EMAIL PROTECTED]> babbled: > > > > > Enlightenment CVS committal > > > > > > Author : rephorm > > > Project : e17 > > > Module : apps/e > > > > > > Dir : e17/apps/e/src/bin > > > > > > > > > Modified Files: > > > e_spectrum.c > > > > > > > > > Log Message: > > > > > > move spectrum redraw to an idler so it gets called at most once per > > > render. no more performance issue there... :) > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [EMAIL PROTECTED] 裸好多 Tokyo, Japan (東京 日本) ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel