On Tue, Feb 16, 2010 at 5:09 PM, Stef Epardaud <span dir="ltr"><<a href="mailto:stef@epardaud.fr">stef@epardaud.fr</a>></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 Tue, Feb 16, 2010 at 11:39:31AM -0500, Joel Webber wrote:<br>
>    And in particular, does it bear any resemblance to the WebGLArray<br>
>    interfaces, as proposed in<br>
</div>>    ([3]<a href="http://people.mozilla.com/~vladimir/jsvec/TypedArray-spec.html" target="_blank">http://people.mozilla.com/~vladimir/jsvec/TypedArray-spec.html</a>)? I'm<br>
<div class="im">>    particularly concerned with the interfaces among all these different<br>
>    subsystems (WebGL, Canvas, XHR, File, etc., as being discussed on this<br>
>    thread) that want to operate on binary data.<br>
>    We've found that getting data from XHR to WebGL via WebGLArrays to be a huge<br>
>    (read: probably orders-of-magnitude) bottleneck; but being able to slice<br>
>    mesh and texture data out of arrays directly from XHR responses would<br>
>    completely fix this.<br>
<br>
</div>The TypedArray proposal seems to lack a way to efficiently copy ranges<br>
of bytes from one array to another. This is essential if we want to<br>
resize arrays (which is going to be needed if we want to add EXIF data<br>
to an image for example). Copying byte by byte would be unacceptable.<br>
<br>
It is mentioned in section 5, but a proposed solution is a constructor,<br>
which is a bit restrictive (how would we concatenate two byte arrays?)<br></blockquote><div><br></div><div>The WebGL spec has a corresponding set method (see <a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html#5.14.3.3">https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html#5.14.3.3</a> ):</div>
<div><br></div><div><span class="Apple-style-span" style="font-family: sans-serif; font-size: medium; color: rgb(0, 128, 0); line-height: 20px; -webkit-text-size-adjust: none; "><dt style="margin-top: 0px; margin-bottom: 0px; font-weight: bold; page-break-after: avoid; margin-left: 0px; ">
<code style="font-size: 1.2em; font-family: monospace; color: black; ">set(array, offset)</code></dt><dd style="margin-top: 0px; margin-bottom: 0px; margin-left: 2em; "><p style="text-indent: 0px; margin-bottom: 0.8em; margin-top: 0px; ">
Set multiple values, reading input values from the array. The optional offset value indicates the index in the current array where values are written. If omitted, it is assumed to be 0.</p><p style="text-indent: 0em; margin-bottom: 0.8em; margin-top: 0.8em; ">
If the offset plus the length of the given array is out of range for the current <code style="font-size: 1.2em; font-family: monospace; color: black; ">WebGLArray</code>, an exception is raised.</p></dd></span></div><div>
Not sure why this was omitted in Vladimir's version... </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888">--<br>
Stéphane Epardaud<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Stefan Haustein<br>Google UK Limited <br><br>Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ; Registered in England Number: 3977902<br>
<br>