From 17e203e797de1645c3edfd86edc413b365888408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Sat, 12 Nov 2022 02:48:32 +0000 Subject: [PATCH] feat: true fullscreen support at browser level --- CHANGELOG.md | 2 +- examples/web/index.ts | 1 - examples/web/react/app.tsx | 2 -- examples/web/react/components/display/display.tsx | 8 ++++++++ src/mmu.rs | 4 ++-- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b88e2068..c5ded7f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -* +* Support for true fullscreen at a browser level ### Changed diff --git a/examples/web/index.ts b/examples/web/index.ts index 2d5409d6..79836e4e 100644 --- a/examples/web/index.ts +++ b/examples/web/index.ts @@ -279,7 +279,6 @@ class GameboyEmulator extends EmulatorBase implements Emulator { case "neo": this.gameBoy = new GameBoy(); break; - default: if (!this.gameBoy) { throw new Error("No engine requested"); diff --git a/examples/web/react/app.tsx b/examples/web/react/app.tsx index 41589ab6..d0bbb7ca 100644 --- a/examples/web/react/app.tsx +++ b/examples/web/react/app.tsx @@ -333,13 +333,11 @@ export const App: FC<AppProps> = ({ event.stopPropagation(); event.preventDefault(); break; - case "-": setKeyaction("Minus"); event.stopPropagation(); event.preventDefault(); break; - case "Escape": setKeyaction("Escape"); event.stopPropagation(); diff --git a/examples/web/react/components/display/display.tsx b/examples/web/react/components/display/display.tsx index a71d57ae..00a77946 100644 --- a/examples/web/react/components/display/display.tsx +++ b/examples/web/react/components/display/display.tsx @@ -92,6 +92,10 @@ export const Display: FC<DisplayProps> = ({ resizeRef.current(); document.getElementsByTagName("body")[0].style.overflow = "hidden"; window.addEventListener("resize", resizeRef.current); + + // requests the browser to go fullscreen using the + // body of the document as the entry HTML element + document.body.requestFullscreen(); } else { setWidth(undefined); setHeight(undefined); @@ -99,6 +103,10 @@ export const Display: FC<DisplayProps> = ({ .getElementsByTagName("body")[0] .style.removeProperty("overflow"); window.removeEventListener("resize", resizeRef.current); + + // restores the window mode, returning from the + // fullscreen browser + document.exitFullscreen(); } return () => { window.removeEventListener("resize", resizeRef.current); diff --git a/src/mmu.rs b/src/mmu.rs index 78f9e36b..c18e1f7c 100644 --- a/src/mmu.rs +++ b/src/mmu.rs @@ -26,8 +26,8 @@ pub struct Mmu { rom: Cartridge, /// Flag that control the access to the boot section in the - /// 0x0000-0x00fe memory area, this flag should be unset after - /// the bool sequence has been finished. + /// 0x0000-0x00FE memory area, this flag should be unset after + /// the boot sequence has been finished. boot_active: bool, boot: [u8; BOOT_SIZE], -- GitLab