File indexing completed on 2024-05-12 15:59:29
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_, 0019 int _channels_nb_, 0020 int _alpha_pos_> 0021 template<typename _impl> 0022 KoAlphaMaskApplicatorBase* 0023 KoAlphaMaskApplicatorFactoryImpl<_channels_type_, _channels_nb_, _alpha_pos_>::create(int) 0024 { 0025 return new KoAlphaMaskApplicator<_channels_type_, 0026 _channels_nb_, 0027 _alpha_pos_, 0028 _impl>(); 0029 } 0030 0031 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint8, 4, 3>::create<xsimd::current_arch>(int); 0032 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint16, 4, 3>::create<xsimd::current_arch>(int); 0033 #ifdef HAVE_OPENEXR 0034 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half, 4, 3>::create<xsimd::current_arch>(int); 0035 #endif 0036 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float, 4, 3>::create<xsimd::current_arch>(int); 0037 0038 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint8, 5, 4>::create<xsimd::current_arch>(int); 0039 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint16, 5, 4>::create<xsimd::current_arch>(int); 0040 #ifdef HAVE_OPENEXR 0041 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half, 5, 4>::create<xsimd::current_arch>(int); 0042 #endif 0043 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float, 5, 4>::create<xsimd::current_arch>(int); 0044 0045 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint8, 2, 1>::create<xsimd::current_arch>(int); 0046 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint16, 2, 1>::create<xsimd::current_arch>(int); 0047 #ifdef HAVE_OPENEXR 0048 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half, 2, 1>::create<xsimd::current_arch>(int); 0049 #endif 0050 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float, 2, 1>::create<xsimd::current_arch>(int); 0051 0052 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint8, 1, 0>::create<xsimd::current_arch>(int); 0053 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<quint16, 1, 0>::create<xsimd::current_arch>(int); 0054 #ifdef HAVE_OPENEXR 0055 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<half, 1, 0>::create<xsimd::current_arch>(int); 0056 #endif 0057 template KoAlphaMaskApplicatorBase* KoAlphaMaskApplicatorFactoryImpl<float, 1, 0>::create<xsimd::current_arch>(int); 0058 0059 #endif // XSIMD_UNIVERSAL_BUILD_PASS