23template<std::
unsigned_
integral Pixel>
28#if (MIN_SCALE_FACTOR <= 1) && (MAX_SCALE_FACTOR >= 1)
30 return std::make_unique<Scaler1<Pixel>>(pixelOps);
32#if (MIN_SCALE_FACTOR <= 2) && (MAX_SCALE_FACTOR >= 2)
36 return std::make_unique<Simple2xScaler<Pixel>>(
37 pixelOps, renderSettings);
39 return std::make_unique<SaI2xScaler<Pixel>>(pixelOps);
41 return std::make_unique<Scale2xScaler<Pixel>>(pixelOps);
43 return std::make_unique<HQ2xScaler<Pixel>>(pixelOps);
45 return std::make_unique<HQ2xLiteScaler<Pixel>>(pixelOps);
48 return std::make_unique<Simple2xScaler<Pixel>>(
49 pixelOps, renderSettings);
51 return std::make_unique<MLAAScaler<Pixel>>(640, pixelOps);
56#if (MIN_SCALE_FACTOR <= 4) && (MAX_SCALE_FACTOR >= 3)
61 return std::make_unique<Simple3xScaler<Pixel>>(
62 pixelOps, renderSettings);
64 return std::make_unique<SaI3xScaler<Pixel>>(pixelOps);
66 return std::make_unique<Scale3xScaler<Pixel>>(pixelOps);
68 return std::make_unique<HQ3xScaler<Pixel>>(pixelOps);
70 return std::make_unique<HQ3xLiteScaler<Pixel>>(pixelOps);
73 return std::make_unique<RGBTriplet3xScaler<Pixel>>(
74 pixelOps, renderSettings);
76 return std::make_unique<MLAAScaler<Pixel>>(960, pixelOps);
Class containing all settings for renderers.
int getScaleFactor() const
ScaleAlgorithm getScaleAlgorithm() const
The current scaling algorithm.
Abstract base class for scalers.
static std::unique_ptr< Scaler< Pixel > > createScaler(const PixelOperations< Pixel > &pixelOps, RenderSettings &renderSettings)
Instantiates a Scaler.
This file implemented 3 utility functions: