48 lines
1.5 KiB
HTML
48 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<script src =../../resources/testharness.js></script>
|
|
<script src =../../resources/testharnessreport.js></script>
|
|
<body></body>
|
|
<script>
|
|
|
|
function draw2d(canvas) {
|
|
var ctx = canvas.getContext('2d');
|
|
ctx.fillStyle = 'green';
|
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
};
|
|
|
|
function drawWebGL(canvas) {
|
|
var gl = canvas.getContext('webgl');
|
|
gl.clearColor(0, 1, 0, 1);
|
|
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
};
|
|
|
|
// Run captureStream() on OffscreenCanvas that uses transferToImageBitmap().
|
|
var testOffScreenCanvasTransferBitmaps = function(drawFunction, message) {
|
|
async_test(function(test) {
|
|
var canvas = document.createElement('canvas');
|
|
document.body.appendChild(canvas);
|
|
var ctx = canvas.getContext('bitmaprenderer');
|
|
var offscreen = new OffscreenCanvas(64, 48);
|
|
|
|
var recorder = new MediaRecorder(canvas.captureStream());
|
|
recorder.ondataavailable = test.step_func_done(function(event) {
|
|
assert_true(event.data.size > 0, 'Recorded data size should be > 0');
|
|
});
|
|
recorder.start(0);
|
|
|
|
drawFunction(offscreen);
|
|
var image = offscreen.transferToImageBitmap();
|
|
assert_equals(image.width, 64);
|
|
assert_equals(image.height, 48);
|
|
ctx.transferFromImageBitmap(offscreen.transferToImageBitmap());
|
|
}), message;
|
|
};
|
|
|
|
testOffScreenCanvasTransferBitmaps(
|
|
draw2d,
|
|
'captureStream() on OffscreenCanvas with 2D context using transferToImageBitmap().');
|
|
testOffScreenCanvasTransferBitmaps(
|
|
drawWebGL,
|
|
'captureStream() on OffscreenCanvas with WebGL context using transferToImageBitmap().');
|
|
</script>
|