openMSX
HQ2xLiteScaler.hh
Go to the documentation of this file.
1 #ifndef HQ2XLITESCALER_HH
2 #define HQ2XLITESCALER_HH
3 
4 #include "Scaler2.hh"
5 
6 namespace openmsx {
7 
8 template <class Pixel>
9 class HQ2xLiteScaler final : public Scaler2<Pixel>
10 {
11 public:
12  explicit HQ2xLiteScaler(const PixelOperations<Pixel>& pixelOps);
13 
14  void scale1x1to3x2(FrameSource& src,
15  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
16  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
17  void scale1x1to2x2(FrameSource& src,
18  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
19  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
20  void scale2x1to3x2(FrameSource& src,
21  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
22  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
23  void scale1x1to1x2(FrameSource& src,
24  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
25  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
26  void scale4x1to3x2(FrameSource& src,
27  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
28  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
29  void scale2x1to1x2(FrameSource& src,
30  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
31  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
32 
33 private:
34  PixelOperations<Pixel> pixelOps;
35 };
36 
37 } // namespace openmsx
38 
39 #endif
openmsx::PixelOperations
Definition: PixelOperations.hh:142
openmsx::HQ2xLiteScaler
Definition: HQ2xLiteScaler.hh:9
Scaler2.hh
openmsx::Scaler2
Base class for 2x scalers.
Definition: Scaler2.hh:11
openmsx::HQ2xLiteScaler::scale4x1to3x2
void scale4x1to3x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xLiteScaler.cc:211
openmsx::HQ2xLiteScaler::HQ2xLiteScaler
HQ2xLiteScaler(const PixelOperations< Pixel > &pixelOps)
Definition: HQ2xLiteScaler.cc:156
openmsx::ScalerOutput
Definition: Scaler.hh:8
openmsx::HQ2xLiteScaler::scale1x1to2x2
void scale1x1to2x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xLiteScaler.cc:175
openmsx::HQ2xLiteScaler::scale2x1to1x2
void scale2x1to1x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xLiteScaler.cc:223
openmsx::HQ2xLiteScaler::scale2x1to3x2
void scale2x1to3x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xLiteScaler.cc:187
openmsx::FrameSource
Interface for getting lines from a video frame.
Definition: FrameSource.hh:13
openmsx::HQ2xLiteScaler::scale1x1to1x2
void scale1x1to1x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xLiteScaler.cc:199
openmsx
Thanks to enen for testing this on a real cartridge:
Definition: Autofire.cc:5
openmsx::HQ2xLiteScaler::scale1x1to3x2
void scale1x1to3x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xLiteScaler.cc:163