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 #ifndef KOOPTIMIZEDCOMPOSITEOPFACTORYPERARCH_H
0009 #define KOOPTIMIZEDCOMPOSITEOPFACTORYPERARCH_H
0010 
0011 #include <KoMultiArchBuildSupport.h>
0012 
0013 class KoCompositeOp;
0014 class KoColorSpace;
0015 
0016 template<typename _impl>
0017 class KoOptimizedCompositeOpAlphaDarkenCreamy32;
0018 
0019 template<typename _impl>
0020 class KoOptimizedCompositeOpAlphaDarkenHard32;
0021 
0022 template<typename _impl>
0023 class KoOptimizedCompositeOpOver32;
0024 
0025 template<typename _impl>
0026 class KoOptimizedCompositeOpAlphaDarkenHard128;
0027 
0028 template<typename _impl>
0029 class KoOptimizedCompositeOpAlphaDarkenCreamy128;
0030 
0031 template<typename _impl>
0032 class KoOptimizedCompositeOpAlphaDarkenHardU64;
0033 
0034 template<typename _impl>
0035 class KoOptimizedCompositeOpAlphaDarkenCreamyU64;
0036 
0037 template<typename _impl>
0038 class KoOptimizedCompositeOpOver128;
0039 
0040 template<typename _impl>
0041 class KoOptimizedCompositeOpOverU64;
0042 
0043 template<typename _impl>
0044 class KoOptimizedCompositeOpCopy128;
0045 
0046 template<typename _impl>
0047 class KoOptimizedCompositeOpCopyU64;
0048 
0049 template<typename _impl>
0050 class KoOptimizedCompositeOpCopy32;
0051 
0052 template<template<typename I> class CompositeOp>
0053 struct KoOptimizedCompositeOpFactoryPerArch {
0054     template<typename _impl>
0055     static KoCompositeOp *create(const KoColorSpace *);
0056 };
0057 
0058 #endif /* KOOPTIMIZEDCOMPOSITEOPFACTORYPERARCH_H */