What is the use of the ifNoTransformWithIn: method?
When I use the BalloonCanvas within a morph drawOn: method, the ifNoTransformWithIn: is forcing the use of the super graphic method, so no anti-aliasing take place. I am sure there are pretty good reason, but I don't get it. Hilaire Fernandes |
On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote:
> What is the use of the ifNoTransformWithIn: method? > When I use the BalloonCanvas within a morph drawOn: method, the > ifNoTransformWithIn: is forcing the use of the super graphic > method, so no anti-aliasing take place. > I am sure there are pretty good reason, but I don't get it. An axis-aligned rectangle can be drawn much faster using BitBlt than using Balloon. That case is detected by the method. - Bert - |
Bert Freudenberg a écrit :
> On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote: > >> What is the use of the ifNoTransformWithIn: method? >> When I use the BalloonCanvas within a morph drawOn: method, the >> ifNoTransformWithIn: is forcing the use of the super graphic method, >> so no anti-aliasing take place. >> I am sure there are pretty good reason, but I don't get it. > > An axis-aligned rectangle can be drawn much faster using BitBlt than > using Balloon. That case is detected by the method. Ok, so it is a feature. However in that case the AA is off and there are no way to get it back, right? Hilaire |
On Nov 19, 2006, at 12:41 , Hilaire Fernandes wrote: > Bert Freudenberg a écrit : >> On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote: >>> What is the use of the ifNoTransformWithIn: method? >>> When I use the BalloonCanvas within a morph drawOn: method, the >>> ifNoTransformWithIn: is forcing the use of the super graphic >>> method, so no anti-aliasing take place. >>> I am sure there are pretty good reason, but I don't get it. >> An axis-aligned rectangle can be drawn much faster using BitBlt >> than using Balloon. That case is detected by the method. > > Ok, so it is a feature. However in that case the AA is off and > there are no way to get it back, right? BitBlt does no AA, right. - Bert - |
Bert Freudenberg wrote:
> > On Nov 19, 2006, at 12:41 , Hilaire Fernandes wrote: > >> Bert Freudenberg a écrit : >>> On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote: >>>> What is the use of the ifNoTransformWithIn: method? >>>> When I use the BalloonCanvas within a morph drawOn: method, the >>>> ifNoTransformWithIn: is forcing the use of the super graphic >>>> method, so no anti-aliasing take place. >>>> I am sure there are pretty good reason, but I don't get it. >>> An axis-aligned rectangle can be drawn much faster using BitBlt than >>> using Balloon. That case is detected by the method. >> >> Ok, so it is a feature. However in that case the AA is off and there >> are no way to get it back, right? > > BitBlt does no AA, right. calls and did get anti alias with a speed penalty. karl |
Karl a écrit :
> Bert Freudenberg wrote: >> >> On Nov 19, 2006, at 12:41 , Hilaire Fernandes wrote: >> >>> Bert Freudenberg a écrit : >>>> On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote: >>>>> What is the use of the ifNoTransformWithIn: method? >>>>> When I use the BalloonCanvas within a morph drawOn: method, the >>>>> ifNoTransformWithIn: is forcing the use of the super graphic >>>>> method, so no anti-aliasing take place. >>>>> I am sure there are pretty good reason, but I don't get it. >>>> An axis-aligned rectangle can be drawn much faster using BitBlt than >>>> using Balloon. That case is detected by the method. >>> >>> Ok, so it is a feature. However in that case the AA is off and there >>> are no way to get it back, right? >> >> BitBlt does no AA, right. > I did some hacking a few years ago and did some overriding of the super > calls and did get anti alias with a speed penalty. > > karl Thanks for your info. I guess that all of my consideration will become more or less obsolete with the coming CAIRO support. I have not yet checked Rome, but I guess in that situation the cairo graphic functions could be used in the drawOn: morphic methods. Is it that? Hilaire |
On Nov 20, 2006, at 17:04 , Hilaire Fernandes wrote: > Karl a écrit : >> Bert Freudenberg wrote: >>> >>> On Nov 19, 2006, at 12:41 , Hilaire Fernandes wrote: >>> >>>> Bert Freudenberg a écrit : >>>>> On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote: >>>>>> What is the use of the ifNoTransformWithIn: method? >>>>>> When I use the BalloonCanvas within a morph drawOn: method, >>>>>> the ifNoTransformWithIn: is forcing the use of the super >>>>>> graphic method, so no anti-aliasing take place. >>>>>> I am sure there are pretty good reason, but I don't get it. >>>>> An axis-aligned rectangle can be drawn much faster using BitBlt >>>>> than using Balloon. That case is detected by the method. >>>> >>>> Ok, so it is a feature. However in that case the AA is off and >>>> there are no way to get it back, right? >>> >>> BitBlt does no AA, right. >> I did some hacking a few years ago and did some overriding of the >> super calls and did get anti alias with a speed penalty. >> karl > > Thanks for your info. > > I guess that all of my consideration will become more or less > obsolete with the coming CAIRO support. I have not yet checked > Rome, but I guess in that situation the cairo graphic functions > could be used in the drawOn: morphic methods. Is it that? If you speak of Rome, it defines a new Canvas protocol, which is similar, but not exactly as the old Canvas. It currently renders into an offscreen bitmap (registered in SurfacePlugin), which can be copied to the screeb using BitBlt. Rome specifically is *not* a Cairo binding, but happens to use the Cairo library as one of its backends. - Bert - |
Bert Freudenberg a écrit :
> > On Nov 20, 2006, at 17:04 , Hilaire Fernandes wrote: > >> Karl a écrit : >>> Bert Freudenberg wrote: >>>> >>>> On Nov 19, 2006, at 12:41 , Hilaire Fernandes wrote: >>>> >>>>> Bert Freudenberg a écrit : >>>>>> On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote: >>>>>>> What is the use of the ifNoTransformWithIn: method? >>>>>>> When I use the BalloonCanvas within a morph drawOn: method, the >>>>>>> ifNoTransformWithIn: is forcing the use of the super graphic >>>>>>> method, so no anti-aliasing take place. >>>>>>> I am sure there are pretty good reason, but I don't get it. >>>>>> An axis-aligned rectangle can be drawn much faster using BitBlt >>>>>> than using Balloon. That case is detected by the method. >>>>> >>>>> Ok, so it is a feature. However in that case the AA is off and >>>>> there are no way to get it back, right? >>>> >>>> BitBlt does no AA, right. >>> I did some hacking a few years ago and did some overriding of the >>> super calls and did get anti alias with a speed penalty. >>> karl >> >> Thanks for your info. >> >> I guess that all of my consideration will become more or less obsolete >> with the coming CAIRO support. I have not yet checked Rome, but I >> guess in that situation the cairo graphic functions could be used in >> the drawOn: morphic methods. Is it that? > > If you speak of Rome, it defines a new Canvas protocol, which is > similar, but not exactly as the old Canvas. It currently renders into an > offscreen bitmap (registered in SurfacePlugin), which can be copied to > the screeb using BitBlt. Rome specifically is *not* a Cairo binding, but > happens to use the Cairo library as one of its backends. Thanks for the clarification. Rome being more than a Cairo binding looks exiting! Is the Rome canvas upward compatible with the old canvas? Could we use Rome to render custom Morph? Hilaire |
On Nov 20, 2006, at 20:45 , Hilaire Fernandes wrote: > Bert Freudenberg a écrit : >> On Nov 20, 2006, at 17:04 , Hilaire Fernandes wrote: >>> Karl a écrit : >>>> Bert Freudenberg wrote: >>>>> >>>>> On Nov 19, 2006, at 12:41 , Hilaire Fernandes wrote: >>>>> >>>>>> Bert Freudenberg a écrit : >>>>>>> On Nov 19, 2006, at 10:22 , Hilaire Fernandes wrote: >>>>>>>> What is the use of the ifNoTransformWithIn: method? >>>>>>>> When I use the BalloonCanvas within a morph drawOn: method, >>>>>>>> the ifNoTransformWithIn: is forcing the use of the super >>>>>>>> graphic method, so no anti-aliasing take place. >>>>>>>> I am sure there are pretty good reason, but I don't get it. >>>>>>> An axis-aligned rectangle can be drawn much faster using >>>>>>> BitBlt than using Balloon. That case is detected by the method. >>>>>> >>>>>> Ok, so it is a feature. However in that case the AA is off and >>>>>> there are no way to get it back, right? >>>>> >>>>> BitBlt does no AA, right. >>>> I did some hacking a few years ago and did some overriding of >>>> the super calls and did get anti alias with a speed penalty. >>>> karl >>> >>> Thanks for your info. >>> >>> I guess that all of my consideration will become more or less >>> obsolete with the coming CAIRO support. I have not yet checked >>> Rome, but I guess in that situation the cairo graphic functions >>> could be used in the drawOn: morphic methods. Is it that? >> If you speak of Rome, it defines a new Canvas protocol, which is >> similar, but not exactly as the old Canvas. It currently renders >> into an offscreen bitmap (registered in SurfacePlugin), which can >> be copied to the screeb using BitBlt. Rome specifically is *not* a >> Cairo binding, but happens to use the Cairo library as one of its >> backends. > > Thanks for the clarification. > Rome being more than a Cairo binding looks exiting! There is an almost complete pure Smalltalk backend, a Balloon-engine backend, and the plugin. > Is the Rome canvas upward compatible with the old canvas? No. For Tweak, we created a RomeTweakCanvas that implements the old protocol and delegates to a RomeCanvas. The same could surely be done for a Morphic canvas. > Could we use Rome to render custom Morph? In principle, yes. You can have the Rome plugin draw into a surface matching the original canvas's Form, and when finished you need to update the dirty rectangle (which uses BitBlt to copy to the original Form). - Bert - |
Free forum by Nabble | Edit this page |