summaryrefslogtreecommitdiff
path: root/lib/nes/app/ui
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nes/app/ui')
-rw-r--r--lib/nes/app/ui/screen-freeze.cc10
-rw-r--r--lib/nes/app/ui/screen-freeze.hh2
2 files changed, 3 insertions, 9 deletions
diff --git a/lib/nes/app/ui/screen-freeze.cc b/lib/nes/app/ui/screen-freeze.cc
index 60410dd..68507db 100644
--- a/lib/nes/app/ui/screen-freeze.cc
+++ b/lib/nes/app/ui/screen-freeze.cc
@@ -3,15 +3,9 @@
namespace nes::app
{
- auto screen_freeze::freeze(display const& disp) -> void
+ auto screen_freeze::freeze(span<rgb, display::width * display::height> front_buffer) -> void
{
- for (auto y = u32{ 0 }; y < display::height; ++y)
- {
- for (auto x = u32{ 0 }; x < display::width; ++x)
- {
- frozen_data_[y * display::width + x] = disp.get(x, y);
- }
- }
+ copy(front_buffer.get_data(), frozen_data_, front_buffer.get_length());
}
auto screen_freeze::render(renderer& renderer) -> void
diff --git a/lib/nes/app/ui/screen-freeze.hh b/lib/nes/app/ui/screen-freeze.hh
index fe67aad..2ae1eb2 100644
--- a/lib/nes/app/ui/screen-freeze.hh
+++ b/lib/nes/app/ui/screen-freeze.hh
@@ -20,6 +20,6 @@ namespace nes::app
auto process_events() -> action override;
/// Update the image shown to the back buffer of the given display.
- auto freeze(display const&) -> void;
+ auto freeze(span<rgb, display::width * display::height> front_buffer) -> void;
};
} // namespace nes::app \ No newline at end of file