From 66dab8f39ad19a09cbdb303733485f6e2eb3fe9b Mon Sep 17 00:00:00 2001 From: Joe Osborn Date: Fri, 14 Apr 2023 00:26:04 -0700 Subject: [PATCH] Make screenshot function return an Image (#820) * Make screenshot facility return an Image Returning an image rather than always opennig a new window slightly expands the utility of embedding v86---we may want to take a screenshot and use just its data without asking the user to download it. --- src/browser/main.js | 7 ++++++- src/browser/screen.js | 7 +------ src/browser/starter.js | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/browser/main.js b/src/browser/main.js index 075a6a6c..e1e4b046 100644 --- a/src/browser/main.js +++ b/src/browser/main.js @@ -1932,7 +1932,12 @@ $("take_screenshot").onclick = function() { - emulator.screen_make_screenshot(); + const image = emulator.screen_make_screenshot(); + try { + const w = window.open(""); + w.document.write(image.outerHTML); + } + catch(e) {} $("take_screenshot").blur(); }; diff --git a/src/browser/screen.js b/src/browser/screen.js index a6c8c149..e073bf66 100644 --- a/src/browser/screen.js +++ b/src/browser/screen.js @@ -220,12 +220,7 @@ function ScreenAdapter(screen_container, bus) image.src = canvas.toDataURL("image/png"); } - - try { - const w = window.open(""); - w.document.write(image.outerHTML); - } - catch(e) {} + return image; }; this.put_char = function(row, col, chr, bg_color, fg_color) diff --git a/src/browser/starter.js b/src/browser/starter.js index 70d9496a..063f2512 100644 --- a/src/browser/starter.js +++ b/src/browser/starter.js @@ -963,8 +963,9 @@ V86Starter.prototype.screen_make_screenshot = function() { if(this.screen_adapter) { - this.screen_adapter.make_screenshot(); + return this.screen_adapter.make_screenshot(); } + return null; }; /**