Krita Source Code Documentation
Loading...
Searching...
No Matches
KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType > Class Template Reference

#include <KisColorSelectionPolicies.h>

+ Inheritance diagram for KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >:

Public Member Functions

ALWAYS_INLINE quint8 difference (const quint8 *colorPtr) const
 
 OptimizedDifferencePolicy (const KoColor &referenceColor, int threshold)
 
- Public Member Functions inherited from KisColorSelectionPolicies::SlowDifferencePolicy
ALWAYS_INLINE quint8 difference (const quint8 *colorPtr) const
 
 SlowDifferencePolicy (const KoColor &referenceColor, int threshold)
 

Protected Types

using HashKeyType = SrcPixelType
 
using HashType = QHash<HashKeyType, quint8>
 

Protected Attributes

HashType m_differences
 
- Protected Attributes inherited from KisColorSelectionPolicies::SlowDifferencePolicy
const KoColorSpacem_colorSpace
 
KoColor m_referenceColor
 
const bool m_referenceColorIsTransparent
 
const quint8 * m_referenceColorPtr
 
int m_threshold
 

Detailed Description

template<typename SrcPixelType>
class KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >

Definition at line 55 of file KisColorSelectionPolicies.h.

Member Typedef Documentation

◆ HashKeyType

template<typename SrcPixelType >
using KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >::HashKeyType = SrcPixelType
protected

Definition at line 81 of file KisColorSelectionPolicies.h.

◆ HashType

template<typename SrcPixelType >
using KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >::HashType = QHash<HashKeyType, quint8>
protected

Definition at line 82 of file KisColorSelectionPolicies.h.

Constructor & Destructor Documentation

◆ OptimizedDifferencePolicy()

template<typename SrcPixelType >
KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >::OptimizedDifferencePolicy ( const KoColor & referenceColor,
int threshold )
inline

Definition at line 58 of file KisColorSelectionPolicies.h.

59 : SlowDifferencePolicy(referenceColor, threshold)
60 {}
SlowDifferencePolicy(const KoColor &referenceColor, int threshold)

Member Function Documentation

◆ difference()

template<typename SrcPixelType >
ALWAYS_INLINE quint8 KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >::difference ( const quint8 * colorPtr) const
inline

Definition at line 62 of file KisColorSelectionPolicies.h.

63 {
64 HashKeyType key = *reinterpret_cast<const HashKeyType*>(colorPtr);
65
66 quint8 result;
67
68 typename HashType::iterator it = m_differences.find(key);
69
70 if (it != m_differences.end()) {
71 result = *it;
72 } else {
73 result = SlowDifferencePolicy::difference(colorPtr);
74 m_differences.insert(key, result);
75 }
76
77 return result;
78 }
ALWAYS_INLINE quint8 difference(const quint8 *colorPtr) const

References KisColorSelectionPolicies::SlowDifferencePolicy::difference(), and KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >::m_differences.

Member Data Documentation

◆ m_differences

template<typename SrcPixelType >
HashType KisColorSelectionPolicies::OptimizedDifferencePolicy< SrcPixelType >::m_differences
mutableprotected

Definition at line 84 of file KisColorSelectionPolicies.h.


The documentation for this class was generated from the following file: