openMSX
HQ2xScaler.hh
Go to the documentation of this file.
1#ifndef HQ2XSCALER_HH
2#define HQ2XSCALER_HH
3
4#include "Scaler2.hh"
5#include "PixelOperations.hh"
6
7namespace openmsx {
8
11template<std::unsigned_integral Pixel>
12class HQ2xScaler final : public Scaler2<Pixel>
13{
14public:
15 explicit HQ2xScaler(const PixelOperations<Pixel>& pixelOps);
16
17 void scale1x1to3x2(FrameSource& src,
18 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
19 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
20 void scale1x1to2x2(FrameSource& src,
21 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
22 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
23 void scale2x1to3x2(FrameSource& src,
24 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
25 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
26 void scale1x1to1x2(FrameSource& src,
27 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
28 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
29 void scale4x1to3x2(FrameSource& src,
30 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
31 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
32 void scale2x1to1x2(FrameSource& src,
33 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
34 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
35
36private:
38};
39
40} // namespace openmsx
41
42#endif
Interface for getting lines from a video frame.
Definition: FrameSource.hh:20
Runs the hq2x scaler algorithm.
Definition: HQ2xScaler.hh:13
void scale1x1to3x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xScaler.cc:184
void scale1x1to2x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xScaler.cc:196
HQ2xScaler(const PixelOperations< Pixel > &pixelOps)
Definition: HQ2xScaler.cc:177
void scale2x1to3x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xScaler.cc:208
void scale1x1to1x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xScaler.cc:220
void scale4x1to3x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xScaler.cc:232
void scale2x1to1x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ2xScaler.cc:244
Base class for 2x scalers.
Definition: Scaler2.hh:12
This file implemented 3 utility functions:
Definition: Autofire.cc:9