489 lines
20 KiB
HTML
489 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<canvas id="canvas" width="40" height="40"></canvas>
|
|
<script>
|
|
description("Make sure that reading and writing WebGL2 buffers works as expected.");
|
|
|
|
if (window.internals)
|
|
internals.settings.setWebGL2Enabled(true);
|
|
|
|
var arrayBuffer = new ArrayBuffer(40);
|
|
var fullArrayView = new Float32Array(arrayBuffer); // [15, 16, 17, 18, 19, 20, 21, 22, 23, 24], 40 bytes
|
|
var partialArrayView = new Float32Array(arrayBuffer, 4, 5); // [16, 17, 18, 19, 20], 20 bytes
|
|
var receiver = new Float32Array(20); // 20 floats, 80 bytes
|
|
for (var i = 0; i < 10; ++i)
|
|
fullArrayView[i] = 15 + i;
|
|
|
|
var sentinel = 100;
|
|
function fillReceiver() {
|
|
for (var i = 0; i < receiver.length; ++i)
|
|
receiver[i] = sentinel;
|
|
}
|
|
|
|
var canvas = document.getElementById("canvas");
|
|
var context = canvas.getContext("webgl2");
|
|
|
|
runTests(context.ARRAY_BUFFER);
|
|
runTests(context.COPY_READ_BUFFER);
|
|
runTests(context.COPY_WRITE_BUFFER);
|
|
runTests(context.ELEMENT_ARRAY_BUFFER);
|
|
runTests(context.PIXEL_PACK_BUFFER);
|
|
runTests(context.PIXEL_UNPACK_BUFFER);
|
|
runTests(context.TRANSFORM_FEEDBACK_BUFFER);
|
|
runTests(context.UNIFORM_BUFFER);
|
|
|
|
function runTests(target) {
|
|
var buffer = context.createBuffer();
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.bindBuffer(target, buffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
|
|
|
|
|
|
context.bufferData(target, arrayBuffer, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 10);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 10; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + i + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, arrayBuffer, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 10);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 10; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + i + "]");
|
|
|
|
context.bufferData(target, arrayBuffer, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 9);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 9; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, arrayBuffer, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 8);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 8; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 3);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 3) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 3);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 3) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 3);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 3) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferData(target, partialArrayView, context.STATIC_DRAW, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 2);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 2; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 4) + "]");
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Give the buffer a size which is big enough to hold the entire buffer
|
|
fillReceiver();
|
|
context.bufferData(target, receiver, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
|
|
|
|
|
|
context.bufferSubData(target, 0, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 10);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 10; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + i + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 10);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 10; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + i + "]");
|
|
|
|
context.bufferSubData(target, 0, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 9);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 9; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 8);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 8; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferSubData(target, 0, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
context.bufferSubData(target, 0, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 3);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 3) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferSubData(target, 0, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
context.bufferSubData(target, 0, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 3);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 3) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferSubData(target, 0, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
context.bufferSubData(target, 0, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 3);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 3) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 0, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 2);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 2; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 4) + "]");
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Give the buffer a size which is big enough to hold the entire buffer
|
|
fillReceiver();
|
|
context.bufferData(target, receiver, context.STATIC_DRAW);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
|
|
|
|
|
|
context.bufferSubData(target, 4, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 11);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 10; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + i + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 11);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
shouldBe("receiver[1]", "sentinel");
|
|
for (var i = 0; i < 10; ++i)
|
|
shouldBe("receiver[" + (i + 2) + "]", "fullArrayView[" + i + "]");
|
|
|
|
context.bufferSubData(target, 4, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 10);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 10; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + i + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, arrayBuffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 8);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 8; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferSubData(target, 4, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 6);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 6);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
shouldBe("receiver[1]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 2) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
context.bufferSubData(target, 4, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, partialArrayView);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferSubData(target, 4, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 6);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 6);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
shouldBe("receiver[1]", "sentinel");
|
|
for (var i = 0; i < 5; ++i)
|
|
shouldBe("receiver[" + (i + 2) + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
context.bufferSubData(target, 4, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 1) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, partialArrayView, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
context.bufferSubData(target, 4, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 0, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 0, receiver, 1, 5);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
shouldBe("receiver[1]", "sentinel");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + (i + 2) + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
context.bufferSubData(target, 4, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 4, receiver, 0, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
for (var i = 0; i < 4; ++i)
|
|
shouldBe("receiver[" + i + "]", "fullArrayView[" + (i + 2) + "]");
|
|
|
|
fillReceiver();
|
|
context.bufferSubData(target, 4, partialArrayView, 1, 4);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
context.getBufferSubData(target, 8, receiver, 1, 3);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
shouldBe("receiver[0]", "sentinel");
|
|
for (var i = 0; i < 3; ++i)
|
|
shouldBe("receiver[" + (i + 1) + "]", "fullArrayView[" + (i + 3) + "]");
|
|
|
|
|
|
|
|
context.deleteBuffer(buffer);
|
|
shouldBe("context.getError()", "context.NO_ERROR");
|
|
}
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html> |