File indexing completed on 2024-05-19 04:26:08
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 KisBrushMaskApplicatorBase * 0023 MaskApplicatorFactory<KisMaskGenerator>::create<xsimd::current_arch>( 0024 KisMaskGenerator *maskGenerator) 0025 { 0026 return new KisBrushMaskScalarApplicator<KisMaskGenerator,xsimd::current_arch>(maskGenerator); 0027 } 0028 0029 template<> 0030 template<> 0031 KisBrushMaskApplicatorBase * 0032 MaskApplicatorFactory<KisCircleMaskGenerator>::create<xsimd::current_arch>( 0033 KisCircleMaskGenerator *maskGenerator) 0034 { 0035 return new KisBrushMaskVectorApplicator<KisCircleMaskGenerator,xsimd::current_arch>(maskGenerator); 0036 } 0037 0038 template<> 0039 template<> 0040 KisBrushMaskApplicatorBase * 0041 MaskApplicatorFactory<KisGaussCircleMaskGenerator>::create<xsimd::current_arch>( 0042 KisGaussCircleMaskGenerator *maskGenerator) 0043 { 0044 return new KisBrushMaskVectorApplicator<KisGaussCircleMaskGenerator, xsimd::current_arch>(maskGenerator); 0045 } 0046 0047 template<> 0048 template<> 0049 KisBrushMaskApplicatorBase * 0050 MaskApplicatorFactory<KisCurveCircleMaskGenerator>::create<xsimd::current_arch>( 0051 KisCurveCircleMaskGenerator *maskGenerator) 0052 { 0053 return new KisBrushMaskVectorApplicator<KisCurveCircleMaskGenerator,xsimd::current_arch>(maskGenerator); 0054 } 0055 0056 template<> 0057 template<> 0058 KisBrushMaskApplicatorBase * 0059 MaskApplicatorFactory<KisRectangleMaskGenerator>::create<xsimd::current_arch>( 0060 KisRectangleMaskGenerator *maskGenerator) 0061 { 0062 return new KisBrushMaskVectorApplicator<KisRectangleMaskGenerator,xsimd::current_arch>(maskGenerator); 0063 } 0064 0065 template<> 0066 template<> 0067 KisBrushMaskApplicatorBase * 0068 MaskApplicatorFactory<KisGaussRectangleMaskGenerator>::create< 0069 xsimd::current_arch>(KisGaussRectangleMaskGenerator *maskGenerator) 0070 { 0071 return new KisBrushMaskVectorApplicator<KisGaussRectangleMaskGenerator,xsimd::current_arch>(maskGenerator); 0072 } 0073 0074 template<> 0075 template<> 0076 KisBrushMaskApplicatorBase * 0077 MaskApplicatorFactory<KisCurveRectangleMaskGenerator>::create< 0078 xsimd::current_arch>(KisCurveRectangleMaskGenerator *maskGenerator) 0079 { 0080 return new KisBrushMaskVectorApplicator<KisCurveRectangleMaskGenerator,xsimd::current_arch>(maskGenerator); 0081 } 0082 0083 #endif