1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/canvas/test/webgl-conformance/conformance/buffers/buffer-data-array-buffer.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,67 @@ 1.4 +<!-- 1.5 +Copyright (c) 2011 The Chromium Authors. All rights reserved. 1.6 +Use of this source code is governed by a BSD-style license that can be 1.7 +found in the LICENSE file. 1.8 + --> 1.9 +<!DOCTYPE html> 1.10 +<html> 1.11 +<head> 1.12 +<meta charset="utf-8"> 1.13 +<link rel="stylesheet" href="../../resources/js-test-style.css"/> 1.14 +<script src="../../resources/js-test-pre.js"></script> 1.15 +<script src="../resources/webgl-test.js"></script> 1.16 +</head> 1.17 +<body> 1.18 +<div id="description"></div> 1.19 +<div id="console"></div> 1.20 + 1.21 +<script> 1.22 +description("Test bufferData/bufferSubData with ArrayBuffer input"); 1.23 + 1.24 +debug('Regression test for <a href="https://bugs.webkit.org/show_bug.cgi?id=41884">https://bugs.webkit.org/show_bug.cgi?id=41884</a> : <code>Implement bufferData and bufferSubData with ArrayBuffer as input</code>'); 1.25 + 1.26 +var gl = create3DContext(); 1.27 +shouldBeNonNull("gl"); 1.28 + 1.29 +var array = new ArrayBuffer(128); 1.30 +shouldBeNonNull("array"); 1.31 + 1.32 +var buf = gl.createBuffer(); 1.33 +shouldBeNonNull("buf"); 1.34 + 1.35 +gl.bufferData(gl.ARRAY_BUFFER, array, gl.STATIC_DRAW); 1.36 +glErrorShouldBe(gl, gl.INVALID_OPERATION); 1.37 + 1.38 +gl.bindBuffer(gl.ARRAY_BUFFER, buf); 1.39 +glErrorShouldBe(gl, gl.NO_ERROR); 1.40 + 1.41 +gl.bufferData(gl.ARRAY_BUFFER, -10, gl.STATIC_DRAW); 1.42 +glErrorShouldBe(gl, gl.INVALID_VALUE); 1.43 + 1.44 +// This should not crash, but the selection of the overload is ambiguous per Web IDL. 1.45 +gl.bufferData(gl.ARRAY_BUFFER, null, gl.STATIC_DRAW); 1.46 +gl.getError(); 1.47 + 1.48 +gl.bufferData(gl.ARRAY_BUFFER, array, gl.STATIC_DRAW); 1.49 +glErrorShouldBe(gl, gl.NO_ERROR); 1.50 + 1.51 +array = new ArrayBuffer(64); 1.52 + 1.53 +gl.bufferSubData(gl.ARRAY_BUFFER, -10, array); 1.54 +glErrorShouldBe(gl, gl.INVALID_VALUE); 1.55 + 1.56 +gl.bufferSubData(gl.ARRAY_BUFFER, -10, new Float32Array(8)); 1.57 +glErrorShouldBe(gl, gl.INVALID_VALUE); 1.58 + 1.59 +gl.bufferSubData(gl.ARRAY_BUFFER, 10, array); 1.60 +glErrorShouldBe(gl, gl.NO_ERROR); 1.61 + 1.62 +gl.bufferSubData(gl.ARRAY_BUFFER, 10, null); 1.63 +glErrorShouldBe(gl, gl.NO_ERROR); 1.64 + 1.65 +successfullyParsed = true; 1.66 +</script> 1.67 + 1.68 +<script>finishTest();</script> 1.69 +</body> 1.70 +</html>