22 using std::unique_ptr;
26 template <
class Pixel>
31 #if (MIN_SCALE_FACTOR <= 1) && (MAX_SCALE_FACTOR >= 1)
33 return make_unique<Scaler1<Pixel>>(pixelOps);
35 #if (MIN_SCALE_FACTOR <= 2) && (MAX_SCALE_FACTOR >= 2)
39 return make_unique<Simple2xScaler<Pixel>>(
40 pixelOps, renderSettings);
42 return make_unique<SaI2xScaler<Pixel>>(pixelOps);
44 return make_unique<Scale2xScaler<Pixel>>(pixelOps);
46 return make_unique<HQ2xScaler<Pixel>>(pixelOps);
48 return make_unique<HQ2xLiteScaler<Pixel>>(pixelOps);
51 return make_unique<Simple2xScaler<Pixel>>(
52 pixelOps, renderSettings);
54 return make_unique<MLAAScaler<Pixel>>(640, pixelOps);
59 #if (MIN_SCALE_FACTOR <= 4) && (MAX_SCALE_FACTOR >= 3)
64 return make_unique<Simple3xScaler<Pixel>>(
65 pixelOps, renderSettings);
67 return make_unique<SaI3xScaler<Pixel>>(pixelOps);
69 return make_unique<Scale3xScaler<Pixel>>(pixelOps);
71 return make_unique<HQ3xScaler<Pixel>>(pixelOps);
73 return make_unique<HQ3xLiteScaler<Pixel>>(pixelOps);
76 return make_unique<RGBTriplet3xScaler<Pixel>>(
77 pixelOps, renderSettings);
79 return make_unique<MLAAScaler<Pixel>>(960, pixelOps);