W3C home > Mailing lists > Public > whatwg@whatwg.org > December 2012

Re: [whatwg] I believe source rectangles for HTML5 Canvas drawImage are specified incorrectly

From: Justin Novosad <junov@chromium.org>
Date: Tue, 18 Dec 2012 11:36:17 -0500
Message-ID: <CABpaAqQCtYMkwUTV_wBz5qTE+bpe9pWxZFsi+1OWRf_hT4HrFA@mail.gmail.com>
To: Kevin Gadd <kevin.gadd@gmail.com>
Cc: Vladimir Vukicevic <vladimir@pobox.com>, Rik Cabanier <cabanier@gmail.com>, whatwg@lists.whatwg.org, Jeff Muizelaar <jmuizelaar@mozilla.com>, Ian Hickson <ian@hixie.ch>, robert@ocallahan.org
>
>
>
>> Each time you wait for that callback, won't any pending drawing
>> operations to your canvas get flushed, resulting in the scene slowly
>> rendering onscreen?
>>
>
> Another great reason to batch the calls, as described above.
>

Another solution is to use an offscreen canvas.


>
>
>>
>> -kg
>>
>> On Tue, Dec 18, 2012 at 7:39 AM, Justin Novosad <junov@chromium.org>
>> wrote:
>> > On Tue, Dec 18, 2012 at 10:17 AM, Kevin Gadd <kevin.gadd@gmail.com>
>> wrote:
>> >>
>> >> Sorry, upon reading over the ImageBitmap part of the spec again I'm
>> >> confused: Why is constructing an ImageBitmap asynchronous? I thought
>> >> any decoding isn't supposed to happen until drawImage, so I don't
>> >> really understand why this operation involves a callback and a delay.
>> >
>> >
>> > The image may have to be downloaded, which is a good reason for being
>> async.
>> >
>> >>
>> >> Making ImageBitmap creation async means that you *cannot* use this as
>> >> a replacement for drawImage source rectangles unless you know all
>> >> possible source rectangles in advance. This is not possible for many,
>> >> many use cases (scrolling through a bitmap would be one trivial
>> >> example).
>> >
>> >
>> > I am not sure I understand the problem. If you need synchronous
>> behavior,
>> > you can just make the app wait for the callback to be called.
>> >
>> >     -Justin
>> >
>> >>
>> >> On Tue, Dec 18, 2012 at 7:12 AM, Kevin Gadd <kevin.gadd@gmail.com>
>> wrote:
>> >> > Is it possible to expose the width/height of an ImageBitmap, or even
>> >> > expose all the rectangle coordinates? Exposing width/height would be
>> >> > nice for parity with Image and Canvas when writing functions that
>> >> > accept any drawable image source.
>> >> >
>> >> > Thanks for the prompt action here, this looks like a straightforward
>> >> > solution.
>> >> >
>> >> > -kg
>> >> >
>> >> > On Tue, Dec 18, 2012 at 7:03 AM, Justin Novosad <junov@chromium.org>
>> >> > wrote:
>> >> >> Thanks Ian.
>> >> >> http://html5.org/tools/web-apps-tracker?from=7588&to=7589
>> >> >>
>> >> >> On Tue, Dec 18, 2012 at 1:04 AM, Robert O'Callahan
>> >> >> <robert@ocallahan.org>
>> >> >> wrote:
>> >> >>>
>> >> >>> On Tue, Dec 18, 2012 at 6:57 PM, Rik Cabanier <cabanier@gmail.com>
>> >> >>> wrote:
>> >> >>>>
>> >> >>>> Does it matter that this solution is in the image world and not 2d
>> >> >>>> canvas? It seems that this will have a bigger impact on the
>> browser's
>> >> >>>> codebase since it spans images and canvas.
>> >> >>>
>> >> >>>
>> >> >>> I think that's a good thing --- it's more generally useful.
>> >> >>>
>> >> >>> Note that Ian has adopted this approach (via an ImageBitmap
>> >> >>> constructor).
>> >> >>>
>> >> >>>
>> >> >>> Rob
>> >> >>> --
>> >> >>> Jesus called them together and said, “You know that the rulers of
>> the
>> >> >>> Gentiles lord it over them, and their high officials exercise
>> >> >>> authority over
>> >> >>> them. Not so with you. Instead, whoever wants to become great among
>> >> >>> you must
>> >> >>> be your servant, and whoever wants to be first must be your slave —
>> >> >>> just as
>> >> >>> the Son of Man did not come to be served, but to serve, and to give
>> >> >>> his life
>> >> >>> as a ransom for many.” [Matthew 20:25-28]
>> >> >>>
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > -kg
>> >>
>> >>
>> >>
>> >> --
>> >> -kg
>> >
>> >
>>
>>
>>
>> --
>> -kg
>>
>
>
Received on Tuesday, 18 December 2012 16:36:48 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:50 UTC