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

Re: [whatwg] Canvas Path.addPath SVGMatrix not optimal?

From: Rik Cabanier <cabanier@gmail.com>
Date: Thu, 20 Mar 2014 08:23:29 -0700
Message-ID: <CAGN7qDCGYDScqNwD8AsnVtPEWyDG9VCzMUn0srOrpbmbMh9+cA@mail.gmail.com>
To: Justin Novosad <junov@google.com>
Cc: Dirk Schulze <dschulze@adobe.com>, whatwg <whatwg@lists.whatwg.org>
On Thu, Mar 20, 2014 at 7:01 AM, Justin Novosad <junov@google.com> wrote:

>
>
>
> On Wed, Mar 19, 2014 at 5:47 PM, Rik Cabanier <cabanier@gmail.com> wrote:
>
>>
>> On Wed, Mar 19, 2014 at 2:22 PM, Justin Novosad <junov@google.com> wrote:
>>
>>>
>>> I agree it should be optional, but just to play devil's advocate : you
>>> can
>>> create an identity SVGMatrix with a simpler bit of code. Just do this
>>> right
>>> after creating a canvas rendering context: var identity =
>>> context.currentTransform;
>>>
>>
>> Hi Justin,
>>
>> did Blink already expose this property?
>>
>
> It is implemented, but not exposed (hidden behind the experimental canvas
> features flag)
>
>
>> As currently specified, this must return a live SVGMatrix object, meaning
>> that as you change the CTM on the 2d context, your reference to the
>> SVGMatrix should change as well. [1]
>>
>
> D'oh! I totally missed that when I reviewed the implementation. In fact,
> the implementer even went to great length to ensure the opposite behavior
> (making a copy).
> https://codereview.chromium.org/24233004
> I'll make sure that gets fixed.
>

By "fixed", do you mean you will return a reference or change the name of
the API? :-)


> It's unlikely that you actually want this...
>> This API should be renamed to get/setCurrentTransform() and return a copy.
>>
>
> Yes, making a copy felt like the most desirable behavior, so I did not
> think twice about the fact that the implementation performs a copy.
> Anyways, thanks for catching this.
>
Received on Thursday, 20 March 2014 16:20:52 UTC

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