W3C home > Mailing lists > Public > whatwg@whatwg.org > March 2014

Re: [whatwg] Proposal: change 2D canvas currentTransform to getter method

From: Rik Cabanier <cabanier@gmail.com>
Date: Fri, 21 Mar 2014 21:10:54 -0700
Message-ID: <CAGN7qDBvRDtiUXB5Z2BSrfgcOmza4e2J0+=scigq5qoyqryyuw@mail.gmail.com>
To: Simon Sarris <simon.sarris@gmail.com>
Cc: Justin Novosad <junov@google.com>, WHAT Working Group <whatwg@whatwg.org>
On Thu, Mar 20, 2014 at 11:18 AM, Simon Sarris <simon.sarris@gmail.com>wrote:

> 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.
>

Looking over this thread, getTransform gets the most support.
we could add the following methods:

SVGMatrix getTransform();

void setTransform(SVGMatrix);
Received on Saturday, 22 March 2014 04:11:26 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 17:00:17 UTC