- From: Simon Sarris <simon.sarris@gmail.com>
- Date: Thu, 20 Mar 2014 14:18:00 -0400
- To: Justin Novosad <junov@google.com>
- Cc: WHAT Working Group <whatwg@whatwg.org>
On Thu, Mar 20, 2014 at 1:52 PM, Justin Novosad <junov@google.com> wrote: > Hello all, > > The recently added currentTransform attribute on CanvasRenderingContext2D > gives shared access to the rendering context's transform. By "shared", I > mean: > > a) this code modifies the CTM: > var matrix = context.currentTransform; > matrix.a = 2; > > b) In this code, the second line modifies matrix: > var matrix = context.currentTransform; > context.scale(2, 2); > > This behavior is probably not what most developers would expect. > I would like to propose changing this to a getter method instead. We > already have a setter method (setTransform). > > In another thread entitled "Canvas Path.addPath SVGMatrix not optimal", > Dirk Schulze proposed using the name getCTM, which would be consistent with > the SVGLocatable interface, where getCTM returns an SVGMatrix. On the other > hand, we could call it getTransform to be consistent with the existing > setTransform on CRC2D. Opinions? Perhaps we should also have an overload of > setTransform (or setCTM) that would take an SVGMatrix. > > First of all, have any browsers shipped currentTransform yet? > > Thoughts? > > -Justin Novosad FF (at least Aurora/Nightlies) has for some time had mozCurrentTransform (and mozCurrentTransformInverse), which return an Array (so not spec-compliant, since spec wants SVGMatrix). It is not shared, so it does not do what your a) and b) examples do. I agree that changing it to a getter method would be better, it would be more intuitive and clear for developers.
Received on Thursday, 20 March 2014 18:26:21 UTC