blob: 548783c241265d18737ccd71bce1acc0e82cd661 [file] [log] [blame]
<!DOCTYPE html>
<body>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
test(drawThenGetImageData, 'verifies that getImageData works on linear-rgb canvases.');
test(putThenGetImageData, 'verifies that putImageData works on linear-rgb canvases.');
function drawThenGetImageData() {
var canvas = document.createElement('canvas');
canvas.width = 10;
canvas.height = 10;
var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat: 'float16'})
ctx.fillStyle = 'rgb(50, 100, 150)';
ctx.fillRect(0, 0, 10, 10);
var pixel = ctx.getImageData(5, 5, 1, 1).data;
// Note: the color specified as as fillStyle is converted from srgb to linear
// when drawn and the the results of getImageData are re-converted to sRGB
assert_equals(pixel[0], 50, "Red component retrieved by getImageData is the color that was drawn." );
assert_equals(pixel[1], 100, "Green component retrieved by getImageData is the color that was drawn." );
assert_equals(pixel[2], 150, "Blue component retrieved by getImageData is the color that was drawn." );
assert_equals(pixel[3], 255, "Alpha component retrieved by getImageData is the color that was drawn." );
}
function putThenGetImageData() {
var canvas = document.createElement('canvas');
canvas.width = 10;
canvas.height = 10;
var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat: 'float16'})
var initialData = ctx.createImageData(1, 1);
initialData.data[0] = 50;
initialData.data[1] = 100;
initialData.data[2] = 150;
initialData.data[3] = 255;
ctx.putImageData(initialData, 5, 5);
var pixel = ctx.getImageData(5, 5, 1, 1).data;
assert_equals(pixel[0], 50, "Red component retrieved by getImageData is the color that was put." );
assert_equals(pixel[1], 100, "Green component retrieved by getImageData is the color that was put." );
assert_equals(pixel[2], 150, "Blue component retrieved by getImageData is the color that was put." );
assert_equals(pixel[3], 255, "Alpha component retrieved by getImageData is the color that was put." );
}
</script>
</body>