File indexing completed on 2024-12-22 04:11:40
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: LGPL-2.1-or-later 0006 */ 0007 0008 #include "KoOptimizedCompositeOpFactoryPerArch.h" 0009 0010 #if XSIMD_UNIVERSAL_BUILD_PASS 0011 #include "KoOptimizedCompositeOpAlphaDarken32.h" 0012 #include "KoOptimizedCompositeOpAlphaDarken128.h" 0013 #include "KoOptimizedCompositeOpOver32.h" 0014 #include "KoOptimizedCompositeOpOver128.h" 0015 #include "KoOptimizedCompositeOpCopy128.h" 0016 0017 #include <KoCompositeOpRegistry.h> 0018 0019 template<> 0020 template<> 0021 KoCompositeOp * 0022 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpAlphaDarkenHard32>:: 0023 create<xsimd::current_arch>(const KoColorSpace *param) 0024 { 0025 return new KoOptimizedCompositeOpAlphaDarkenHard32<xsimd::current_arch>(param); 0026 } 0027 0028 template<> 0029 template<> 0030 KoCompositeOp *KoOptimizedCompositeOpFactoryPerArch< 0031 KoOptimizedCompositeOpAlphaDarkenCreamy32>:: 0032 create<xsimd::current_arch>(const KoColorSpace *param) 0033 { 0034 return new KoOptimizedCompositeOpAlphaDarkenCreamy32<xsimd::current_arch>(param); 0035 } 0036 0037 template<> 0038 template<> 0039 KoCompositeOp * 0040 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpOver32>::create< 0041 xsimd::current_arch>(const KoColorSpace *param) 0042 { 0043 return new KoOptimizedCompositeOpOver32<xsimd::current_arch>(param); 0044 } 0045 0046 template<> 0047 template<> 0048 KoCompositeOp * 0049 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpAlphaDarkenHard128>:: 0050 create<xsimd::current_arch>(const KoColorSpace *param) 0051 { 0052 return new KoOptimizedCompositeOpAlphaDarkenHard128<xsimd::current_arch>(param); 0053 } 0054 0055 template<> 0056 template<> 0057 KoCompositeOp *KoOptimizedCompositeOpFactoryPerArch< 0058 KoOptimizedCompositeOpAlphaDarkenCreamy128>:: 0059 create<xsimd::current_arch>(const KoColorSpace *param) 0060 { 0061 return new KoOptimizedCompositeOpAlphaDarkenCreamy128<xsimd::current_arch>(param); 0062 } 0063 0064 template<> 0065 template<> 0066 KoCompositeOp * 0067 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpOver128>::create< 0068 xsimd::current_arch>(const KoColorSpace *param) 0069 { 0070 return new KoOptimizedCompositeOpOver128<xsimd::current_arch>(param); 0071 } 0072 0073 template<> 0074 template<> 0075 KoCompositeOp * 0076 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpOverU64>::create< 0077 xsimd::current_arch>(const KoColorSpace *param) 0078 { 0079 return new KoOptimizedCompositeOpOverU64<xsimd::current_arch>(param); 0080 } 0081 0082 template<> 0083 template<> 0084 KoCompositeOp * 0085 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpCopy128>::create< 0086 xsimd::current_arch>(const KoColorSpace *param) 0087 { 0088 return new KoOptimizedCompositeOpCopy128<xsimd::current_arch>(param); 0089 } 0090 0091 template<> 0092 template<> 0093 KoCompositeOp * 0094 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpCopyU64>::create< 0095 xsimd::current_arch>(const KoColorSpace *param) 0096 { 0097 return new KoOptimizedCompositeOpCopyU64<xsimd::current_arch>(param); 0098 } 0099 0100 template<> 0101 template<> 0102 KoCompositeOp * 0103 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpCopy32>::create< 0104 xsimd::current_arch>(const KoColorSpace *param) 0105 { 0106 return new KoOptimizedCompositeOpCopy32<xsimd::current_arch>(param); 0107 } 0108 0109 template<> 0110 template<> 0111 KoCompositeOp * 0112 KoOptimizedCompositeOpFactoryPerArch<KoOptimizedCompositeOpAlphaDarkenHardU64>:: 0113 create<xsimd::current_arch>(const KoColorSpace *param) 0114 { 0115 return new KoOptimizedCompositeOpAlphaDarkenHardU64<xsimd::current_arch>(param); 0116 } 0117 0118 template<> 0119 template<> 0120 KoCompositeOp *KoOptimizedCompositeOpFactoryPerArch< 0121 KoOptimizedCompositeOpAlphaDarkenCreamyU64>:: 0122 create<xsimd::current_arch>(const KoColorSpace *param) 0123 { 0124 return new KoOptimizedCompositeOpAlphaDarkenCreamyU64<xsimd::current_arch>(param); 0125 } 0126 0127 #endif // XSIMD_UNIVERSAL_BUILD_PASS