File indexing completed on 2025-02-02 04:21:19

0001 /*
0002  * This file is part of the KDE project
0003  *
0004  * SPDX-FileCopyrightText: 2016 Spencer Brown <sbrown655@gmail.com>
0005  * SPDX-FileCopyrightText: 2020 Deif Lou <ginoba@gmail.com>
0006  * 
0007  * SPDX-License-Identifier: GPL-2.0-or-later
0008  */
0009 
0010 #ifndef KIS_GRADIENT_MAP_FILTER_DITHER_CACHED_GRADIENT_H
0011 #define KIS_GRADIENT_MAP_FILTER_DITHER_CACHED_GRADIENT_H
0012 
0013 #include <QVector>
0014 
0015 #include <KoColor.h>
0016 
0017 class KoColorSpace;
0018 
0019 class KisGradientMapFilterDitherCachedGradient
0020 {
0021 public:
0022     struct CachedEntry
0023     {
0024         KoColor leftStop;
0025         KoColor rightStop;
0026         qreal localT;
0027     };
0028 
0029     KisGradientMapFilterDitherCachedGradient(const KoAbstractGradientSP gradient, qint32 steps, const KoColorSpace *cs);
0030 
0031     /// gets the color data at position 0 <= t <= 1
0032     const CachedEntry& cachedAt(qreal t) const;
0033 
0034 private:
0035     const qint32 m_max;
0036     QVector<CachedEntry> m_cachedEntries;
0037     const CachedEntry m_nullEntry;
0038 };
0039 
0040 #endif