| 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); |
| } |