Krita Source Code Documentation
Loading...
Searching...
No Matches
RgbCompositeOpBumpmap< _CSTraits > Class Template Reference

#include <RgbCompositeOpBumpmap.h>

+ Inheritance diagram for RgbCompositeOpBumpmap< _CSTraits >:

Public Member Functions

 RgbCompositeOpBumpmap (KoColorSpace *cs)
 
- Public Member Functions inherited from KoCompositeOpAlphaBase< _CSTraits, RgbCompositeOpBumpmap< _CSTraits >, true >
void composite (const KoCompositeOp::ParameterInfo &params) const
 
void composite (const KoCompositeOp::ParameterInfo &params) const
 
void composite (const KoCompositeOp::ParameterInfo &params) const override
 
virtual void composite (const ParameterInfo &params) const
 
void composite (quint8 *dstRowStart, qint32 dstRowStride, const quint8 *srcRowStart, qint32 srcRowStride, const quint8 *maskRowStart, qint32 maskRowStride, qint32 rows, qint32 numColumns, float opacity, const QBitArray &channelFlags=QBitArray()) const
 
 KoCompositeOpAlphaBase (const KoColorSpace *cs, const QString &id, const QString &category)
 
- Public Member Functions inherited from KoCompositeOp
QString category () const
 
const KoColorSpacecolorSpace () const
 
void composite (quint8 *dstRowStart, qint32 dstRowStride, const quint8 *srcRowStart, qint32 srcRowStride, const quint8 *maskRowStart, qint32 maskRowStride, qint32 rows, qint32 numColumns, float opacity, const QBitArray &channelFlags=QBitArray()) const
 
QString description () const
 
QString id () const
 
 KoCompositeOp (const KoColorSpace *cs, const QString &id, const QString &category=KoCompositeOp::categoryMisc())
 
virtual ~KoCompositeOp ()
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Static Public Member Functions

static void composeColorChannels (channels_type srcBlend, const channels_type *src, channels_type *dst, bool allChannelFlags, const QBitArray &channelFlags)
 
static channels_type selectAlpha (channels_type srcAlpha, channels_type dstAlpha)
 
- Static Public Member Functions inherited from KoCompositeOp
static QString categoryArithmetic ()
 
static QString categoryBinary ()
 
static QString categoryDark ()
 
static QString categoryHSI ()
 
static QString categoryHSL ()
 
static QString categoryHSV ()
 
static QString categoryHSY ()
 
static QString categoryLight ()
 
static QString categoryMisc ()
 
static QString categoryMix ()
 
static QString categoryModulo ()
 
static QString categoryNegative ()
 
static QString categoryQuadratic ()
 

Private Types

typedef _CSTraits::channels_type channels_type
 
typedef KoColorSpaceMathsTraits< typename_CSTraits::channels_type >::compositetype compositetype
 

Additional Inherited Members

- Public Attributes inherited from KoCompositeOp
QString category
 
const KoColorSpacecolorSpace
 
QBitArray defaultChannelFlags
 
QString description
 
QString id
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Detailed Description

template<class _CSTraits>
class RgbCompositeOpBumpmap< _CSTraits >

Definition at line 13 of file RgbCompositeOpBumpmap.h.

Member Typedef Documentation

◆ channels_type

template<class _CSTraits >
typedef _CSTraits::channels_type RgbCompositeOpBumpmap< _CSTraits >::channels_type
private

Definition at line 15 of file RgbCompositeOpBumpmap.h.

◆ compositetype

template<class _CSTraits >
typedef KoColorSpaceMathsTraits<typename_CSTraits::channels_type>::compositetype RgbCompositeOpBumpmap< _CSTraits >::compositetype
private

Definition at line 16 of file RgbCompositeOpBumpmap.h.

Constructor & Destructor Documentation

◆ RgbCompositeOpBumpmap()

Member Function Documentation

◆ composeColorChannels()

template<class _CSTraits >
static void RgbCompositeOpBumpmap< _CSTraits >::composeColorChannels ( channels_type srcBlend,
const channels_type * src,
channels_type * dst,
bool allChannelFlags,
const QBitArray & channelFlags )
inlinestatic

Definition at line 30 of file RgbCompositeOpBumpmap.h.

35 {
36 qreal intensity;
37
38 // And I'm not sure whether this is correct, either.
39 intensity = ((qreal)306.0 * src[_CSTraits::red_pos] +
40 (qreal)601.0 * src[_CSTraits::green_pos] +
41 (qreal)117.0 * src[_CSTraits::blue_pos]) / 1024.0;
42
43 for (uint i = 0; i < _CSTraits::channels_nb; i++) {
44 if ((int)i != _CSTraits::alpha_pos && (allChannelFlags || channelFlags.testBit(i))) {
45 channels_type srcChannel = (channels_type)(((qreal)
46 intensity * dst[i]) / NATIVE_OPACITY_OPAQUE + 0.5);
47 channels_type dstChannel = dst[i];
48
49 dst[i] = KoColorSpaceMaths<channels_type>::blend(srcChannel, dstChannel, srcBlend);
50 }
51 }
52 }
#define NATIVE_OPACITY_OPAQUE
unsigned int uint
static _T blend(_T a, _T b, _T alpha)
_CSTraits::channels_type channels_type

References KoColorSpaceMaths< _T, _Tdst >::blend(), and NATIVE_OPACITY_OPAQUE.

◆ selectAlpha()

template<class _CSTraits >
static channels_type RgbCompositeOpBumpmap< _CSTraits >::selectAlpha ( channels_type srcAlpha,
channels_type dstAlpha )
inlinestatic

Definition at line 25 of file RgbCompositeOpBumpmap.h.

26 {
27 return qMin(srcAlpha, dstAlpha);
28 }

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