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#include <span>
7
8namespace openmsx {
9
10class RawFrame;
11
12template<std::unsigned_integral Pixel>
13class SuperImposeScalerOutput final : public ScalerOutput<Pixel>
14{
15public:
17 const RawFrame& superImpose_,
18 const PixelOperations<Pixel>& pixelOps_);
19
20 [[nodiscard]] unsigned getWidth() const override;
21 [[nodiscard]] unsigned getHeight() const override;
22 void frameStart() override {}
23 void frameStop() override {}
24 [[nodiscard]] std::span<Pixel> acquireLine(unsigned y) override;
25 void releaseLine(unsigned y, std::span<Pixel> buf) override;
26 void fillLine (unsigned y, Pixel color) override;
27
28private:
29 [[nodiscard]] std::span<const Pixel> getSrcLine(unsigned y, std::span<Pixel> buf);
30
31private:
32 ScalerOutput<Pixel>& output;
33 const RawFrame& superImpose;
34 const PixelOperations<Pixel> pixelOps;
35};
36
37} // namespace openmsx
38
39#endif
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
Definition: RawFrame.hh:15
std::span< Pixel > acquireLine(unsigned y) override
void fillLine(unsigned y, Pixel color) override
void releaseLine(unsigned y, std::span< Pixel > buf) override
SuperImposeScalerOutput(ScalerOutput< Pixel > &output, const RawFrame &superImpose_, const PixelOperations< Pixel > &pixelOps_)
This file implemented 3 utility functions:
Definition: Autofire.cc:9
uint32_t Pixel