openMSX
Scale3xScaler.hh
Go to the documentation of this file.
1#ifndef SCALE3XSCALER_HH
2#define SCALE3XSCALER_HH
3
4#include "Scaler3.hh"
5
6namespace openmsx {
7
10template<std::unsigned_integral Pixel>
11class Scale3xScaler final : public Scaler3<Pixel>
12{
13public:
15
16 void scale1x1to3x3(FrameSource& src,
17 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
18 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
19
20private:
21 void scaleLine1on3Half(Pixel* dst,
22 const Pixel* src0, const Pixel* src1, const Pixel* src2,
23 unsigned srcWidth) __restrict;
24 void scaleLine1on3Mid (Pixel* dst,
25 const Pixel* src0, const Pixel* src1, const Pixel* src2,
26 unsigned srcWidth) __restrict;
27};
28
29} // namespace openmsx
30
31#endif
Interface for getting lines from a video frame.
Definition: FrameSource.hh:17
Runs the Scale3x scaler algorithm.
void scale1x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Scale3xScaler(const PixelOperations< Pixel > &pixelOps)
Base class for 3x scalers.
Definition: Scaler3.hh:12
const PixelOperations< Pixel > pixelOps
Definition: Scaler3.hh:68
This file implemented 3 utility functions:
Definition: Autofire.cc:9
uint32_t Pixel