2009/2/10 David Röthlisberger <[email protected]>: > Hi Igor, > >> OB is quite complex thing, and its hard to understand what it does for >> outsider :) >> >> I just identified a few points, which can improve rendering speed by a >> certain amount: > [...] >> - default. >> 60 ms >> >> - with override in SystemWindow>>drawDropShadowOn: aCanvas to do nothing: >> 51 ms >> >> - with override in OBMonticelloPackageNode>>classCategories to return >> cached collection >> 45 ms >> > > I incorporated into OB a patch that is following your idea concerning caching > of > class cats in package nodes. I did it differently than you but the results > are even > better now. >
Great! In my patch i didn't care about correctness or whatever, it was simply to outline what possible can be done to improve rendering speed. > Can you take care of integrating the SystemWindow patch into Pharo? > you mean override of SystemWindow>>drawDropShadowOn: ? Its not really correct override. Shadow should be drawn, if it there. And by default , to draw shadow, it using Morph>>drawOn: method with special shadow canvas. For system window it means that a rectangular area with dimensions of morph is filled with shadow color, shifted by shadowOffset. To improve its speed, we could clip a shadow rectangle to not visit pixels which is covered my system window contents, only pixels which are outside of it and 'dropping' shadow. I can implement such method, but concerning integration - i'm not in charge here :) What is interesting about shadows, that by default a shadow offset is 1 pixel wide: shadowOffset: 1...@1 this means that unless you using magnifying glass on you display, you can't really tell if there shadow drawn or not. Since visual difference is minimal, do anyone can tell, why wasting so much CPU cycles on it? :) > Thanks, > David > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
