summaryrefslogtreecommitdiff
path: root/lib/nes/app/ui/screen-freeze.cc
blob: 68507db02908d1bfa5307a20b739bd9ec1062398 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "nes/app/ui/screen-freeze.hh"
#include "nes/app/graphics/renderer.hh"

namespace nes::app
{
	auto screen_freeze::freeze(span<rgb, display::width * display::height> front_buffer) -> void
	{
		copy(front_buffer.get_data(), frozen_data_, front_buffer.get_length());
	}

	auto screen_freeze::render(renderer& renderer) -> void
	{
		auto& disp = renderer.get_display();
		for (auto y = u32{ 0 }; y < display::height; ++y)
		{
			for (auto x = u32{ 0 }; x < display::width; ++x)
			{
				disp.set(x, y, frozen_data_[y * display::width + x]);
			}
		}
	}

	auto screen_freeze::process_events() -> action
	{
		return action{};
	}
} // namespace nes::app