openMSX
Scaler.hh
Go to the documentation of this file.
1 #ifndef SCALER_HH
2 #define SCALER_HH
3 
4 #include <concepts>
5 
6 namespace openmsx {
7 
8 class FrameSource;
9 class RawFrame;
10 template<std::unsigned_integral Pixel> class ScalerOutput;
11 
15 template<std::unsigned_integral Pixel> class Scaler
16 {
17 public:
18  virtual ~Scaler() = default;
19 
32  virtual void scaleImage(FrameSource& src, const RawFrame* superImpose,
33  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
34  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) = 0;
35 };
36 
37 } // namespace openmsx
38 
39 #endif
Interface for getting lines from a video frame.
Definition: FrameSource.hh:17
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
Definition: RawFrame.hh:15
Abstract base class for scalers.
Definition: Scaler.hh:16
virtual ~Scaler()=default
virtual void scaleImage(FrameSource &src, const RawFrame *superImpose, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY)=0
Scales the image in the given area, which must consist of lines which are all equally wide.
This file implemented 3 utility functions:
Definition: Autofire.cc:9