| <html> |
| <head> |
| <script src="../../../resources/js-test.js"></script> |
| <script src="resources/webgl-test.js"></script> |
| </head> |
| <body> |
| <div id="description"></div> |
| <div id="console"></div> |
| |
| <script> |
| description("Test setting WebGL array with offset"); |
| |
| debug('Regression test for <a href="https://bugs.webkit.org/show_bug.cgi?id=76040">https://bugs.webkit.org/show_bug.cgi?id=76040</a> : <code>Int16Array.set(array, offset) fails on first execution</code>'); |
| |
| var webGLArray = null; |
| var array = null; |
| var bounds = null; |
| |
| function testSetters(typeName, low, high) { |
| bounds = [low, high]; |
| var type = window[typeName]; |
| var array_buffer = new ArrayBuffer(32); |
| webGLArray = new type(array_buffer); |
| debug("Testing " + typeName); |
| array = [1, 2, low, high]; |
| webGLArray.set(array, 1); |
| shouldBe("webGLArray[0]", "0"); |
| shouldBe("webGLArray[1]", "1"); |
| shouldBe("webGLArray[2]", "2"); |
| shouldBe("webGLArray[3]", "bounds[0]"); |
| shouldBe("webGLArray[4]", "bounds[1]"); |
| } |
| |
| testSetters("Int8Array", -128, 127); |
| testSetters("Uint8Array", 0, 255); |
| testSetters("Int16Array", -32768, 32767); |
| testSetters("Uint16Array", 0, 65535); |
| testSetters("Int32Array", -2147483648, 2147483647); |
| testSetters("Uint32Array", 0, 4294967295); |
| testSetters("Float32Array", -2.5, 3.5); |
| </script> |
| </body> |
| </html> |