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