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 #include "kis_circle_mask_generator.h"
0011 #include "kis_curve_circle_mask_generator.h"
0012 #include "kis_curve_rect_mask_generator.h"
0013 #include "kis_gauss_circle_mask_generator.h"
0014 #include "kis_gauss_rect_mask_generator.h"
0015 #include "kis_rect_mask_generator.h"
0016 
0017 #include "kis_brush_mask_scalar_applicator.h"
0018 
0019 template<>
0020 template<>
0021 KisBrushMaskApplicatorBase *
0022 MaskApplicatorFactory<KisMaskGenerator>::create<xsimd::generic>(
0023     KisMaskGenerator *maskGenerator)
0024 {
0025     return new KisBrushMaskScalarApplicator<KisMaskGenerator, xsimd::generic>(maskGenerator);
0026 }
0027 
0028 template<>
0029 template<>
0030 KisBrushMaskApplicatorBase *
0031 MaskApplicatorFactory<KisCircleMaskGenerator>::create<xsimd::generic>(
0032     KisCircleMaskGenerator *maskGenerator)
0033 {
0034     return new KisBrushMaskScalarApplicator<KisCircleMaskGenerator, xsimd::generic>(maskGenerator);
0035 }
0036 
0037 template<>
0038 template<>
0039 KisBrushMaskApplicatorBase *
0040 MaskApplicatorFactory<KisGaussCircleMaskGenerator>::create<xsimd::generic>(
0041     KisGaussCircleMaskGenerator *maskGenerator)
0042 {
0043     return new KisBrushMaskScalarApplicator<KisGaussCircleMaskGenerator, xsimd::generic>(maskGenerator);
0044 }
0045 
0046 template<>
0047 template<>
0048 KisBrushMaskApplicatorBase *
0049 MaskApplicatorFactory<KisCurveCircleMaskGenerator>::create<xsimd::generic>(
0050     KisCurveCircleMaskGenerator *maskGenerator)
0051 {
0052     return new KisBrushMaskScalarApplicator<KisCurveCircleMaskGenerator, xsimd::generic>(maskGenerator);
0053 }
0054 
0055 template<>
0056 template<>
0057 KisBrushMaskApplicatorBase *
0058 MaskApplicatorFactory<KisRectangleMaskGenerator>::create<xsimd::generic>(
0059     KisRectangleMaskGenerator *maskGenerator)
0060 {
0061     return new KisBrushMaskScalarApplicator<KisRectangleMaskGenerator, xsimd::generic>(maskGenerator);
0062 }
0063 
0064 template<>
0065 template<>
0066 KisBrushMaskApplicatorBase *
0067 MaskApplicatorFactory<KisGaussRectangleMaskGenerator>::create<xsimd::generic>(
0068     KisGaussRectangleMaskGenerator *maskGenerator)
0069 {
0070     return new KisBrushMaskScalarApplicator<KisGaussRectangleMaskGenerator, xsimd::generic>(maskGenerator);
0071 }
0072 
0073 template<>
0074 template<>
0075 KisBrushMaskApplicatorBase *
0076 MaskApplicatorFactory<KisCurveRectangleMaskGenerator>::create<xsimd::generic>(
0077     KisCurveRectangleMaskGenerator *maskGenerator)
0078 {
0079     return new KisBrushMaskScalarApplicator<KisCurveRectangleMaskGenerator, xsimd::generic>(maskGenerator);
0080 }