From 056b0b307b0ac515fda5984270e29b11f890494e Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Tue, 8 Jul 2025 00:55:24 -0400 Subject: [PATCH] Implemented a little screenshot tool. --- gui/fsm.cpp | 13 +++++++++++++ gui/fsm.hpp | 1 + 2 files changed, 14 insertions(+) diff --git a/gui/fsm.cpp b/gui/fsm.cpp index 5b747f3..d7e6315 100644 --- a/gui/fsm.cpp +++ b/gui/fsm.cpp @@ -361,6 +361,9 @@ namespace gui { case KEY::X: event(Event::STAIRS_DOWN); break; + case KEY::F5: + take_screenshot(); + break; default: break; // ignored } @@ -519,6 +522,16 @@ namespace gui { } } + void FSM::take_screenshot() { + auto size = $window.getSize(); + sf::Texture shot{size}; + shot.update($window); + sf::Image out_img = shot.copyToImage(); + + bool worked = out_img.saveToFile("./screenshot.png"); + dbc::check(worked, "Failed to write screenshot.png"); + } + void FSM::next_level() { $levels.create_level($level.world); $level = $levels.next(); diff --git a/gui/fsm.hpp b/gui/fsm.hpp index 6000820..19da502 100644 --- a/gui/fsm.hpp +++ b/gui/fsm.hpp @@ -79,5 +79,6 @@ namespace gui { void handle_world_events(); void next_level(); void debug_render(); + void take_screenshot(); }; }