123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef SCALER1_HH
- #define SCALER1_HH
- #include "Scaler.hh"
- #include "PixelOperations.hh"
- namespace openmsx {
- template <typename Pixel>
- class Scaler1 final : public Scaler<Pixel>
- {
- public:
- explicit Scaler1(const PixelOperations<Pixel>& pixelOps);
- void scaleImage(FrameSource& src, const RawFrame* superImpose,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
- protected:
- void dispatchScale(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scaleBlank1to1(
- FrameSource& src, unsigned srcStartY, unsigned srcEndY,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scaleBlank2to1(
- FrameSource& src, unsigned srcStartY, unsigned srcEndY,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale2x1to3x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale2x2to3x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale1x1to1x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale1x2to1x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale4x1to3x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale4x2to3x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale2x1to1x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale2x2to1x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale8x1to3x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale8x2to3x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale4x1to1x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- virtual void scale4x2to1x1(FrameSource& src,
- unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
- ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY);
- const PixelOperations<Pixel> pixelOps;
- };
- } // namespace openmsx
- #endif
|