openMSX
SuperImposeScalerOutput.hh
Go to the documentation of this file.
1 #ifndef SUPERIMPOSESCALEROUTPUT_HH
2 #define SUPERIMPOSESCALEROUTPUT_HH
3 
4 #include "ScalerOutput.hh"
5 #include "PixelOperations.hh"
6 
7 namespace openmsx {
8 
9 class RawFrame;
10 
11 template<typename Pixel>
12 class SuperImposeScalerOutput final : public ScalerOutput<Pixel>
13 {
14 public:
16  const RawFrame& superImpose_,
17  const PixelOperations<Pixel>& pixelOps_);
18 
19  unsigned getWidth() const override;
20  unsigned getHeight() const override;
21  Pixel* acquireLine(unsigned y) override;
22  void releaseLine(unsigned y, Pixel* buf) override;
23  void fillLine (unsigned y, Pixel color) override;
24 
25 private:
26  const Pixel* getSrcLine(unsigned y, Pixel* buf);
27 
28  ScalerOutput<Pixel>& output;
29  const RawFrame& superImpose;
30  const PixelOperations<Pixel> pixelOps;
31 };
32 
33 } // namespace openmsx
34 
35 #endif
uint32_t Pixel
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
Definition: RawFrame.hh:25
Thanks to enen for testing this on a real cartridge:
Definition: Autofire.cc:5
SuperImposeScalerOutput(ScalerOutput< Pixel > &output, const RawFrame &superImpose_, const PixelOperations< Pixel > &pixelOps_)
void fillLine(unsigned y, Pixel color) override
void releaseLine(unsigned y, Pixel *buf) override
Pixel * acquireLine(unsigned y) override