blob: 963b184444de2740eba6ba0bcda7028895fce4f4 [file] [log] [blame]
let ctx = null;
let redImage = new Image;
redImage.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAABNJREFUCB1j/M/AAEQMDEwgAgQAHxcCAmtAm/sAAAAASUVORK5CYII=";
let blueImage = new Image;
blueImage.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAABRJREFUCB1jZGD4/58BCJhABAgAAB0ZAgJSPDJ6AAAAAElFTkSuQmCC";
let transparentImage = new Image;
transparentImage.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAAAtJREFUCB1jYEAHAAASAAGAFMrMAAAAAElFTkSuQmCC";
// Blank canvas
let canvas = document.createElement("canvas");
canvas.width = 2;
canvas.height = 2;
function load() {
ctx = canvas.getContext("bitmaprenderer");
cancelActions();
runTest();
}
function ignoreException(func){
try {
func();
} catch (e) { }
}
let requestAnimationFrameId = NaN;
function cancelActions() {
cancelAnimationFrame(requestAnimationFrameId);
requestAnimationFrameId = NaN;
createImageBitmap(transparentImage).then((transparentBitmap) => {
ctx.transferFromImageBitmap(transparentBitmap);
});
}
async function performActions() {
let redBitmap = await createImageBitmap(redImage);
let frames = [
() => {
ctx.transferFromImageBitmap(redBitmap);
},
() => {
ctx.canvas.width;
ctx.canvas.width = 2;
},
() => {
ctx.canvas.height;
ctx.canvas.height = 2;
},
() => {
TestPage.dispatchEventToFrontend("LastFrame");
},
];
let index = 0;
function executeFrameFunction() {
frames[index++]();
if (index < frames.length)
requestAnimationFrameId = requestAnimationFrame(executeFrameFunction);
};
executeFrameFunction();
}
async function performConsoleActions() {
let [redBitmap, blueBitmap] = await Promise.all([
createImageBitmap(redImage),
createImageBitmap(blueImage),
]);
console.record(ctx, {name: "TEST"});
ctx.transferFromImageBitmap(redBitmap);
console.recordEnd(ctx);
ctx.transferFromImageBitmap(blueBitmap);
}