openMSX
LDSDLRasterizer.hh
Go to the documentation of this file.
1 #ifndef LDSDLRASTERIZER_HH
2 #define LDSDLRASTERIZER_HH
3 
4 #include "LDRasterizer.hh"
5 #include <concepts>
6 #include <memory>
7 
8 namespace openmsx {
9 
10 class OutputSurface;
11 class RawFrame;
12 class PostProcessor;
13 
17 template<std::unsigned_integral Pixel>
18 class LDSDLRasterizer final : public LDRasterizer
19 {
20 public:
22  OutputSurface& screen,
23  std::unique_ptr<PostProcessor> postProcessor);
24  ~LDSDLRasterizer() override;
25 
26  // Rasterizer interface:
27  [[nodiscard]] PostProcessor* getPostProcessor() const override;
28  void frameStart(EmuTime::param time) override;
29  void drawBlank(int r, int g, int b) override;
30  [[nodiscard]] RawFrame* getRawFrame() override;
31 
32 private:
36  const std::unique_ptr<PostProcessor> postProcessor;
37 
40  std::unique_ptr<RawFrame> workFrame;
41 };
42 
43 } // namespace openmsx
44 
45 #endif
int g
Rasterizer using a frame buffer approach: it writes pixels to a single rectangular pixel buffer.
LDSDLRasterizer(OutputSurface &screen, std::unique_ptr< PostProcessor > postProcessor)
void drawBlank(int r, int g, int b) override
void frameStart(EmuTime::param time) override
PostProcessor * getPostProcessor() const override
RawFrame * getRawFrame() override
A frame buffer where pixels can be written to.
Abstract base class for post processors.
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
Definition: RawFrame.hh:15
This file implemented 3 utility functions:
Definition: Autofire.cc:9