12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #ifndef HQ2XSCALER_HH
- #define HQ2XSCALER_HH
- #include "Scaler2.hh"
- #include "PixelOperations.hh"
- namespace openmsx {
- /** Runs the hq2x scaler algorithm.
- */
- template <class Pixel>
- class HQ2xScaler final : public Scaler2<Pixel>
- {
- public:
- explicit HQ2xScaler(const PixelOperations<Pixel>& pixelOps);
- void scale1x1to3x2(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
- void scale1x1to2x2(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
- void scale2x1to3x2(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
- void scale1x1to1x2(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
- void scale4x1to3x2(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
- void scale2x1to1x2(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
- private:
- PixelOperations<Pixel> pixelOps;
- };
- } // namespace openmsx
- #endif
|