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