Krita Source Code Documentation
Loading...
Searching...
No Matches
ApplyRgbShaper< SrcCSTraits, DstCSTraits, Policy > Struct Template Reference

#include <LcmsRGBP2020PQColorSpaceTransformation.h>

+ Inheritance diagram for ApplyRgbShaper< SrcCSTraits, DstCSTraits, Policy >:

Public Member Functions

 ApplyRgbShaper (const KoColorSpace *srcCs, const KoColorSpace *dstCs, Intent renderingIntent, ConversionFlags conversionFlags)
 
void transform (const quint8 *src, quint8 *dst, qint32 nPixels) const override
 
- Public Member Functions inherited from KoColorConversionTransformation
ConversionFlags conversionFlags () const
 
const KoColorSpacedstColorSpace () const
 
bool isValid () const override
 
 KoColorConversionTransformation (const KoColorSpace *srcCs, const KoColorSpace *dstCs, Intent renderingIntent, ConversionFlags conversionFlags)
 
Intent renderingIntent () const
 
const KoColorSpacesrcColorSpace () const
 
void transformInPlace (const quint8 *src, quint8 *dst, qint32 nPixels) const
 
 ~KoColorConversionTransformation () override
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 
- Public Member Functions inherited from KoColorTransformation
virtual int parameterId (const QString &name) const
 
virtual QList< QString > parameters () const
 
virtual void setParameter (int id, const QVariant &parameter)
 
void setParameters (const QHash< QString, QVariant > &parameters)
 
virtual ~KoColorTransformation ()
 

Additional Inherited Members

- Public Types inherited from KoColorConversionTransformation
enum  ConversionFlag {
  Empty = 0x0 , NoOptimization = 0x0100 , GamutCheck = 0x1000 , SoftProofing = 0x4000 ,
  BlackpointCompensation = 0x2000 , NoWhiteOnWhiteFixup = 0x0004 , HighQuality = 0x0400 , LowQuality = 0x0800 ,
  CopyAlpha = 0x04000000 , NoAdaptationAbsoluteIntent = 01000000
}
 
enum  Intent { IntentPerceptual = 0 , IntentRelativeColorimetric = 1 , IntentSaturation = 2 , IntentAbsoluteColorimetric = 3 }
 
- Static Public Member Functions inherited from KoColorConversionTransformation
static ConversionFlags adjustmentConversionFlags ()
 
static Intent adjustmentRenderingIntent ()
 
static ConversionFlags internalConversionFlags ()
 
static Intent internalRenderingIntent ()
 
- Public Attributes inherited from KoColorConversionTransformation
ConversionFlags conversionFlags
 
const KoColorSpacedstColorSpace
 
Intent renderingIntent
 
const KoColorSpacesrcColorSpace
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Detailed Description

template<typename SrcCSTraits, typename DstCSTraits, template< typename, typename > class Policy>
struct ApplyRgbShaper< SrcCSTraits, DstCSTraits, Policy >

Definition at line 104 of file LcmsRGBP2020PQColorSpaceTransformation.h.

Constructor & Destructor Documentation

◆ ApplyRgbShaper()

template<typename SrcCSTraits , typename DstCSTraits , template< typename, typename > class Policy>
ApplyRgbShaper< SrcCSTraits, DstCSTraits, Policy >::ApplyRgbShaper ( const KoColorSpace * srcCs,
const KoColorSpace * dstCs,
Intent renderingIntent,
ConversionFlags conversionFlags )
inline

Definition at line 106 of file LcmsRGBP2020PQColorSpaceTransformation.h.

111 dstCs,
114 {
115 }
KoColorConversionTransformation(const KoColorSpace *srcCs, const KoColorSpace *dstCs, Intent renderingIntent, ConversionFlags conversionFlags)

Member Function Documentation

◆ transform()

template<typename SrcCSTraits , typename DstCSTraits , template< typename, typename > class Policy>
void ApplyRgbShaper< SrcCSTraits, DstCSTraits, Policy >::transform ( const quint8 * src,
quint8 * dst,
qint32 nPixels ) const
inlineoverridevirtual

perform the color conversion between two buffers. Make sure that src is not the same as dst!

Parameters
nPixelsthe number of pixels in the buffers.

Implements KoColorConversionTransformation.

Definition at line 117 of file LcmsRGBP2020PQColorSpaceTransformation.h.

117 {
118 KIS_ASSERT(src != dst);
119
120 const typename SrcCSTraits::Pixel *srcPixel = reinterpret_cast<const typename SrcCSTraits::Pixel*>(src);
121 typename DstCSTraits::Pixel *dstPixel = reinterpret_cast<typename DstCSTraits::Pixel*>(dst);
122
123 typedef typename SrcCSTraits::channels_type src_channel_type;
124 typedef typename DstCSTraits::channels_type dst_channel_type;
125 typedef Policy<src_channel_type, dst_channel_type> ConcretePolicy;
126
127 const double refWhite = ConcretePolicy::getRefWhite(srcColorSpace(), dstColorSpace());
128
129 for (int i = 0; i < nPixels; i++) {
130 dstPixel->red = ConcretePolicy::process(srcPixel->red, refWhite);
131 dstPixel->green = ConcretePolicy::process(srcPixel->green, refWhite);
132 dstPixel->blue = ConcretePolicy::process(srcPixel->blue, refWhite);
133 dstPixel->alpha =
135 srcPixel->alpha);
136
137 srcPixel++;
138 dstPixel++;
139 }
140 }
static _Tdst scaleToA(_T a)
#define KIS_ASSERT(cond)
Definition kis_assert.h:33

References KoColorConversionTransformation::dstColorSpace, KIS_ASSERT, KoColorSpaceMaths< _T, _Tdst >::scaleToA(), and KoColorConversionTransformation::srcColorSpace.


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