diff options
Diffstat (limited to 'lib/nes/app/ui')
| -rw-r--r-- | lib/nes/app/ui/screen-freeze.cc | 10 | ||||
| -rw-r--r-- | lib/nes/app/ui/screen-freeze.hh | 2 |
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 |
