On Wed, 26 Oct 2005 18:42:48 -0400 Jose O Gonzalez <[EMAIL PROTECTED]> babbled:
> > > On Thu, 27 Oct 2005 00:25:12 +0900 Carsten writes: > > OK everyone - developer beings and such. > > > > as was brought up on the mailing lists several months ago, > > i have (FINALLY!) started some work on cleaning/rationalising > > and improving eva's smart object code and interfaces. > > And there is much rejoicing! :) :) > > my first step is to move smart object child objects within > > the smart object itself - making the object struct less flat and > > more tree-like. this shoudl mean some speedups too. > > Yes. Also, though not smart-obj related -- since clip-objs > should have only *one* clipee, it would make sense to let a > clipped obj 'own' its clipper as well.. ie. remove clippers from > the layers as well. yes - that would make sense. they even dont require any stacking order as a clip does not affect stacking (currently) :) but that may change (ie set the "merge buffer" option (which doesnt exist yet) on an object that is a clipper then all objects clipped will be first rendered into a tmp buffer THEN when the buffer is merged with the main drawn tree (or a parent buffer) is the clip mask applied. - example (as you were saying before - api-wise we are able to add it trivially. its the engine side that will have issues) what i REALLY want though is to reduce the side of clippee lists simple by havign all child objects of a smart be clipped by the clipper OF a smart object automatically :) > Also not smart obj related, but a small, easy optimization > in most cases -- have an internal canvas render function of the > form: > > Evas_List *_evas_render(Evas *evas, char return_updates); > > so that the api's render function which *does not* return updates, > can be defined via the above -- with 'return_updates' set to 0. > When this is 0-set, the _evas_render function can avoid creating > the list of rect updates (that the evas_render function can't > return anyway and just has to free). while technically an optimisation, in practice - you will never measure any speedup as the overhead of a malloc and list append per region per render cycle is in the realm of < 0.00001% of the grunt needed to render :) > > i also plan on removing the need for clip/unclip, show/hide > > and color_set methods so they are no longer used. > > that will be step 2. > > And again there is much rejoicing! :) > > I would suggest adding render-pre and post methods though, > as they could be very useful for more 'self-rendering' types of > smart objs. The obj's render-pre and post functions have to be > called anyway, just to recurse calling their childrens', so might > as well have user provided ones in addition... > Of course this could also cause all kinds of havoc... :( right now i dont plan on extending smart objects to be able to directly render (yet) as that would require exporting the immediate-mode rendering api to them - even calling the render of a sub object is not that useful as well- it can call it itself :) but the idea of the class struct is that in FUTURE we can add "render" smart calls that if set to non-NULL will allow a smart obj to provide direct rendering calls of its own - effectively becoming an extended object. > > step 3 will be removal of evas_smart_new() > > in favor of using evas_smart_class_new() as it uses an extendible > > struct interface. i have marked methods for deletion for now too > > in that. > > Well, this will go a loooong way to solve many of the major > problems with these :) > > What about the event system? i have adjusted it to account for the different object list structure :) works as before though :) i'm trying small changes atm to minimise break. > > so... that means if you have made smart objects... you will need to > > do a little adapting soon. but in the long run it will make things > > much simpler, cleaner and more expandable. > > Yes :) > > > i am still tossing up if the smart move method should be there, or > > all child > > objects should be simply placed rlative to the smart parent's origin > > and thus > > moved automatically, or if i should provide a default move method > > that does > > this for you. right now its save from destruction - but i'm tossing > > up as to > > the future of it. > > > > another thing to go soon will be the old textblock api - consider it > > dead as of > > today, and only hanging in evas in cvs as long as i simply dont get > > around to > > removing it. if you are using textblock2 - it will be RENAMED to > > textblock once > > this happens. this will cause a short period of breakage as things > > move over, > > but then transition will be finished. > > > > so - be warned... :) and enjoy the newness! :) > > > > -- > > ------------- Codito, ergo sum - "I code, therefore I am" > > -------------- > > The Rasterman (Carsten Haitzler) [EMAIL PROTECTED] > > 裸好多 > > Tokyo, Japan (東京 日本) > > > > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by the JBoss Inc. > Get Certified Today * Register for a JBoss Training Course > Free Certification Exam for All Training Attendees Through End of 2005 > Visit http://www.jboss.com/services/certification for more information > _______________________________________________ > 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 (東京 日本) ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today * Register for a JBoss Training Course Free Certification Exam for All Training Attendees Through End of 2005 Visit http://www.jboss.com/services/certification for more information _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel