openMSX
Scale2xScaler.hh
Go to the documentation of this file.
1 #ifndef SCALE2XSCALER_HH
2 #define SCALE2XSCALER_HH
3 
4 #include "Scaler2.hh"
5 
6 namespace openmsx {
7 
10 template<typename Pixel>
11 class Scale2xScaler final : public Scaler2<Pixel>
12 {
13 public:
15 
16  void scale1x1to2x2(FrameSource& src,
17  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
18  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
19  void scale1x1to1x2(FrameSource& src,
20  unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
21  ScalerOutput<Pixel>& dst, unsigned dstStartY, unsigned dstEndY) override;
22 
23 private:
24  void scaleLine_1on2(Pixel* dst0, Pixel* dst1,
25  const Pixel* src0, const Pixel* src1, const Pixel* src2,
26  size_t srcWidth) __restrict;
27  void scaleLineHalf_1on2(Pixel* dst,
28  const Pixel* src0, const Pixel* src1, const Pixel* src2,
29  size_t srcWidth) __restrict;
30 
31  void scaleLine_1on1(Pixel* dst0, Pixel* dst1,
32  const Pixel* src0, const Pixel* src1, const Pixel* src2,
33  size_t srcWidth) __restrict;
34  void scaleLineHalf_1on1(Pixel* dst,
35  const Pixel* src0, const Pixel* src1, const Pixel* src2,
36  size_t srcWidth) __restrict;
37 };
38 
39 } // namespace openmsx
40 
41 #endif
openmsx::Scale2xScaler::Scale2xScaler
Scale2xScaler(const PixelOperations< Pixel > &pixelOps)
Definition: Scale2xScaler.cc:207
openmsx::PixelOperations
Definition: PixelOperations.hh:144
Scaler2.hh
openmsx::Scaler2
Base class for 2x scalers.
Definition: Scaler2.hh:12
openmsx::Scaler2::pixelOps
const PixelOperations< Pixel > pixelOps
Definition: Scaler2.hh:68
openmsx::ScalerOutput
Definition: ScalerOutput.hh:7
openmsx::Pixel
uint32_t Pixel
Definition: GLHQLiteScaler.cc:98
openmsx::FrameSource
Interface for getting lines from a video frame.
Definition: FrameSource.hh:14
openmsx::Scale2xScaler::scale1x1to1x2
void scale1x1to1x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: Scale2xScaler.cc:344
openmsx::Scale2xScaler
Runs the Scale2x scaler algorithm.
Definition: Scale2xScaler.hh:12
openmsx::Scale2xScaler::scale1x1to2x2
void scale1x1to2x2(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Definition: Scale2xScaler.cc:315
openmsx
This file implemented 3 utility functions:
Definition: Autofire.cc:5