openMSX
Scale3xScaler.hh
Go to the documentation of this file.
1#ifndef SCALE3XSCALER_HH
2#define SCALE3XSCALER_HH
3
4#include "Scaler3.hh"
5#include <span>
6
7namespace openmsx {
8
11template<std::unsigned_integral Pixel>
12class Scale3xScaler final : public Scaler3<Pixel>
13{
14public:
16
17 void scale1x1to3x3(FrameSource& src,
18 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
19 ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
20
21private:
22 void scaleLine1on3Half(std::span<Pixel> dst,
23 std::span<const Pixel> src0, std::span<const Pixel> src1, std::span<const Pixel> src2);
24 void scaleLine1on3Mid (std::span<Pixel> dst,
25 std::span<const Pixel> src0, std::span<const Pixel> src1, std::span<const Pixel> src2);
26};
27
28} // namespace openmsx
29
30#endif
Interface for getting lines from a video frame.
Definition: FrameSource.hh:20
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