File indexing completed on 2024-05-12 15:58:10

0001 /*
0002  *  SPDX-FileCopyrightText: 2012 Dmitry Kazakov <dimula73@gmail.com>
0003  *  SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #include "kis_brush_mask_applicator_factories.h"
0009 
0010 #if XSIMD_UNIVERSAL_BUILD_PASS
0011 #include "kis_circle_mask_generator.h"
0012 #include "kis_gauss_circle_mask_generator.h"
0013 #include "kis_curve_circle_mask_generator.h"
0014 #include "kis_gauss_rect_mask_generator.h"
0015 #include "kis_curve_rect_mask_generator.h"
0016 #include "kis_rect_mask_generator.h"
0017 
0018 #include "kis_brush_mask_vector_applicator.h"
0019 
0020 template<>
0021 template<>
0022 MaskApplicatorFactory<KisMaskGenerator>::ReturnType
0023 MaskApplicatorFactory<KisMaskGenerator>::create<xsimd::current_arch>(ParamType maskGenerator)
0024 {
0025     return new KisBrushMaskScalarApplicator<KisMaskGenerator,xsimd::current_arch>(maskGenerator);
0026 }
0027 
0028 template<>
0029 template<>
0030 MaskApplicatorFactory<KisCircleMaskGenerator>::ReturnType
0031 MaskApplicatorFactory<KisCircleMaskGenerator>::create<xsimd::current_arch>(ParamType maskGenerator)
0032 {
0033     return new KisBrushMaskVectorApplicator<KisCircleMaskGenerator,xsimd::current_arch>(maskGenerator);
0034 }
0035 
0036 template<>
0037 template<>
0038 MaskApplicatorFactory<KisGaussCircleMaskGenerator>::ReturnType
0039 MaskApplicatorFactory<KisGaussCircleMaskGenerator>::create<xsimd::current_arch>(ParamType maskGenerator)
0040 {
0041     return new KisBrushMaskVectorApplicator<KisGaussCircleMaskGenerator, xsimd::current_arch>(maskGenerator);
0042 }
0043 
0044 template<>
0045 template<>
0046 MaskApplicatorFactory<KisCurveCircleMaskGenerator>::ReturnType
0047 MaskApplicatorFactory<KisCurveCircleMaskGenerator>::create<xsimd::current_arch>(ParamType maskGenerator)
0048 {
0049     return new KisBrushMaskVectorApplicator<KisCurveCircleMaskGenerator,xsimd::current_arch>(maskGenerator);
0050 }
0051 
0052 template<>
0053 template<>
0054 MaskApplicatorFactory<KisRectangleMaskGenerator>::ReturnType
0055 MaskApplicatorFactory<KisRectangleMaskGenerator>::create<xsimd::current_arch>(ParamType maskGenerator)
0056 {
0057     return new KisBrushMaskVectorApplicator<KisRectangleMaskGenerator,xsimd::current_arch>(maskGenerator);
0058 }
0059 
0060 template<>
0061 template<>
0062 MaskApplicatorFactory<KisGaussRectangleMaskGenerator>::ReturnType
0063 MaskApplicatorFactory<KisGaussRectangleMaskGenerator>::create<xsimd::current_arch>(ParamType maskGenerator)
0064 {
0065     return new KisBrushMaskVectorApplicator<KisGaussRectangleMaskGenerator,xsimd::current_arch>(maskGenerator);
0066 }
0067 
0068 template<>
0069 template<>
0070 MaskApplicatorFactory<KisCurveRectangleMaskGenerator>::ReturnType
0071 MaskApplicatorFactory<KisCurveRectangleMaskGenerator>::create<xsimd::current_arch>(ParamType maskGenerator)
0072 {
0073     return new KisBrushMaskVectorApplicator<KisCurveRectangleMaskGenerator,xsimd::current_arch>(maskGenerator);
0074 }
0075 
0076 #endif