openMSX
HQ3xLiteScaler.hh
Go to the documentation of this file.
1 #ifndef HQ3XLITESCALER_HH
2 #define HQ3XLITESCALER_HH
3 
4 #include "Scaler3.hh"
5 #include "PixelOperations.hh"
6 
7 namespace openmsx {
8 
9 template <class Pixel>
10 class HQ3xLiteScaler final : public Scaler3<Pixel>
11 {
12 public:
13  explicit HQ3xLiteScaler(const PixelOperations<Pixel>& pixelOps);
14 
15  void scale2x1to9x3(FrameSource& src,
16  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
17  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
18  void scale1x1to3x3(FrameSource& src,
19  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
20  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
21  void scale4x1to9x3(FrameSource& src,
22  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
23  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
24  void scale2x1to3x3(FrameSource& src,
25  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
26  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
27  void scale8x1to9x3(FrameSource& src,
28  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
29  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
30  void scale4x1to3x3(FrameSource& src,
31  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
32  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
33 
34 private:
35  PixelOperations<Pixel> pixelOps;
36 };
37 
38 } // namespace openmsx
39 
40 #endif
void scale2x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Interface for getting lines from a video frame.
Definition: FrameSource.hh:14
void scale4x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale8x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale4x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Thanks to enen for testing this on a real cartridge:
Definition: Autofire.cc:5
HQ3xLiteScaler(const PixelOperations< Pixel > &pixelOps)
void scale2x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale1x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Base class for 3x scalers.
Definition: Scaler3.hh:11