openMSX
HQ3xScaler.hh
Go to the documentation of this file.
1#ifndef HQ3XSCALER_HH
2#define HQ3XSCALER_HH
3
4#include "Scaler3.hh"
5#include "PixelOperations.hh"
6
7namespace openmsx {
8
11template<std::unsigned_integral Pixel>
12class HQ3xScaler final : public Scaler3<Pixel>
13{
14public:
15 explicit HQ3xScaler(const PixelOperations<Pixel>& pixelOps);
16
17 void scale2x1to9x3(FrameSource& src,
18 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
19 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
20 void scale1x1to3x3(FrameSource& src,
21 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
22 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
23 void scale4x1to9x3(FrameSource& src,
24 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
25 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
26 void scale2x1to3x3(FrameSource& src,
27 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
28 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
29 void scale8x1to9x3(FrameSource& src,
30 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
31 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
32 void scale4x1to3x3(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 hq3x scaler algorithm.
Definition: HQ3xScaler.hh:13
void scale1x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ3xScaler.cc:124
void scale4x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ3xScaler.cc:172
void scale4x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ3xScaler.cc:136
void scale2x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ3xScaler.cc:112
void scale2x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ3xScaler.cc:148
HQ3xScaler(const PixelOperations< Pixel > &pixelOps)
Definition: HQ3xScaler.cc:105
void scale8x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: HQ3xScaler.cc:160
Base class for 3x scalers.
Definition: Scaler3.hh:12
This file implemented 3 utility functions:
Definition: Autofire.cc:9