OXYGENHUB
◆ main openmsx / src / video / ld / LDPixelRenderer.hh
900 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
e8555c89 Andy McCall 1
#ifndef LDPIXELRENDERER_HH
2
#define LDPIXELRENDERER_HH
3
4
#include "LDRenderer.hh"
5
#include <memory>
6
7
namespace openmsx {
8
9
class MSXMotherBoard;
10
class EventDistributor;
11
class Display;
12
class LDRasterizer;
13
class LaserdiscPlayer;
14
15
/** Generic implementation of a pixel-based Renderer.
16
  * Uses a Rasterizer to plot actual pixels for a specific video system.
17
  */
18
class LDPixelRenderer final : public LDRenderer
19
{
20
public:
21
	LDPixelRenderer(LaserdiscPlayer& ld, Display& display);
22
	~LDPixelRenderer() override;
23
24
	// Renderer interface:
25
	void frameStart(EmuTime time) override;
26
	void frameEnd() override;
27
	void drawBlank(int r, int g, int b) override;
28
	[[nodiscard]] RawFrame* getRawFrame() override;
29
30
private:
31
	[[nodiscard]] bool isActive() const;
32
33
private:
34
	MSXMotherBoard& motherboard;
35
	EventDistributor& eventDistributor;
36
	const std::unique_ptr<LDRasterizer> rasterizer;
37
};
38
39
} // namespace openmsx
40
41
#endif