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  [[nodiscard]] unsigned getWidth() const override;
20  [[nodiscard]] unsigned getHeight() const override;
21  [[nodiscard]] 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  [[nodiscard]] const Pixel* getSrcLine(unsigned y, Pixel* buf);
27 
28 private:
29  ScalerOutput<Pixel>& output;
30  const RawFrame& superImpose;
31  const PixelOperations<Pixel> pixelOps;
32 };
33 
34 } // namespace openmsx
35 
36 #endif
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
Definition: RawFrame.hh:14
void fillLine(unsigned y, Pixel color) override
void releaseLine(unsigned y, Pixel *buf) override
SuperImposeScalerOutput(ScalerOutput< Pixel > &output, const RawFrame &superImpose_, const PixelOperations< Pixel > &pixelOps_)
Pixel * acquireLine(unsigned y) override
This file implemented 3 utility functions:
Definition: Autofire.cc:9
uint32_t Pixel