On 29 November 2011 16:12, Fernando Olivero <fernando.olivero@usi.ch> wrote:
I get the point now, something like the brushes in seaside. Thanks for the explanation.
Regarding the protocol, did you consider reusing the same idea, but one step before, as in the following:
pathTransform := canvas transformDescribedBy: 'path'. pathTransform scaleBy: 0.5.
imageTransform := canvas transformDescribedBy: 'image'. imageTransform scaleBy: 0.5.
Maybe add the following for documentation:
AthensCairo>>availableTransforms        ^ #('path'. 'image'. )
AthensOpenGL>>availableTransforms        ^ #('modelView'. 'projection'. )
This would unify the canvas protocol, for all the available rendering engines.
This sounds more complicated. We can map different matrices in different engines to Athens. So, it is not necessary for client code to know which of them are there, because then code will be filled with tons of #ifTrue: branches ... . -- Best regards, Igor Stasenko.