On Mon, Feb 22, 2010 at 11:10 PM, Jonas Sicking <span dir="ltr"><jonas@sicking.cc></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On Mon, Feb 22, 2010 at 11:13 AM, David Levin <<a href="mailto:levin@google.com">levin@google.com</a>> wrote:<br>
> I've talked with some other folks on WebKit (Maciej and Oliver) about having<br>
> a canvas that is available to workers. They suggested some nice<br>
> modifications to make it an offscreen canvas, which may be used in the<br>
> Document or in a Worker.<br>
<br>
</div>What is the use case for this? It seems like in most cases you'll want<br>
to display something on screen to the user, and so the difference<br>
comes down to shipping drawing commands across the pipe, vs. shipping<br>
the pixel data.<br></blockquote><div><br></div><div>Sometimes the commands take up a lot more CPU power than shipping the pixels.  Lets say you wanted to have a really rich map application that looked great, was highly interactive/fluid, but didn't use a lot of bandwidth.  Rendering different parts of the screen on different workers seems like a legit use.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The other use case I can think of is doing image manipulation and then<br>
sending the result directly to the server, without ever displaying it<br>
to the user. However this is first of all not supported by the<br>
suggested API, and second I can't think of any image manipulation that<br>
you wouldn't want to display to the user except for scaling down a<br>
high resolution image. But that seems like a much simpler API than all<br>
of canvas. And again, not even this simple use case is supported by<br>
the current API.<br></blockquote><div><br></div><div>OK, so you solve this one problem.  Then soon enough someone wants to do something more than just scale an image.  So you you add another one off solution.  Then another.  Next thing you've essentially created canvas prime....</div>

<div><br></div><div><br></div><div>I'll note that there are a bunch of teams that want this behavior, though I can't remember exactly what for.  At least some of it is "simple" image resizing type stuff.  Most of it is related to doing image manipulation work that the app is probably going to need soon (but isn't on the screen yet...and that we don't want to slow the main thread for).</div>

<div><br></div><div>Really, if you use picassa (or iPhoto or some other competitor) it really isn't hard to think of a lot of uses for this.  Even for non-photo Apps (like Bespin) I could totally see it being worth it to them to do some rendering off the main loop.</div>

<div><br></div><div>To be honest, I think the applications are largely self evident...especially if you think about taking rich desktop apps and making them web apps.  Are you sure that you're negativity towards an offscreen canvas isn't simply being driven by implementation related worries?</div>

<div><br></div><div>J</div></div>