File indexing completed on 2024-05-19 04:27:19

0001 /*
0002  *  SPDX-FileCopyrightText: 2020 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 "KoAlphaMaskApplicatorFactoryImpl.h"
0009 
0010 #if XSIMD_UNIVERSAL_BUILD_PASS
0011 #include "KoAlphaMaskApplicator.h"
0012 
0013 #include <KoConfig.h>
0014 #ifdef HAVE_OPENEXR
0015 #include <half.h>
0016 #endif
0017 
0018 template<typename _channels_type_, int _channels_nb_, int _alpha_pos_>
0019 template<typename _impl>
0020 KoAlphaMaskApplicatorBase *
0021 KoAlphaMaskApplicatorFactoryImpl<_channels_type_, _channels_nb_, _alpha_pos_>::
0022     create()
0023 {
0024     return new KoAlphaMaskApplicator<_channels_type_,
0025                                      _channels_nb_,
0026                                      _alpha_pos_,
0027                                      _impl>();
0028 }
0029 
0030 template KoAlphaMaskApplicatorBase *
0031 KoAlphaMaskApplicatorFactoryImpl<quint8, 4, 3>::create<xsimd::current_arch>();
0032 template KoAlphaMaskApplicatorBase *
0033 KoAlphaMaskApplicatorFactoryImpl<quint16, 4, 3>::create<xsimd::current_arch>();
0034 #ifdef HAVE_OPENEXR
0035 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half,    4, 3>::create<xsimd::current_arch>();
0036 #endif
0037 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float,   4, 3>::create<xsimd::current_arch>();
0038 
0039 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint8,  5, 4>::create<xsimd::current_arch>();
0040 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint16, 5, 4>::create<xsimd::current_arch>();
0041 #ifdef HAVE_OPENEXR
0042 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half,    5, 4>::create<xsimd::current_arch>();
0043 #endif
0044 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float,   5, 4>::create<xsimd::current_arch>();
0045 
0046 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint8,  2, 1>::create<xsimd::current_arch>();
0047 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint16, 2, 1>::create<xsimd::current_arch>();
0048 #ifdef HAVE_OPENEXR
0049 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half,    2, 1>::create<xsimd::current_arch>();
0050 #endif
0051 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float,   2, 1>::create<xsimd::current_arch>();
0052 
0053 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint8,  1, 0>::create<xsimd::current_arch>();
0054 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint16, 1, 0>::create<xsimd::current_arch>();
0055 #ifdef HAVE_OPENEXR
0056 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half,    1, 0>::create<xsimd::current_arch>();
0057 #endif
0058 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float,   1, 0>::create<xsimd::current_arch>();
0059 
0060 #endif // XSIMD_UNIVERSAL_BUILD_PASS