krita
kis_u16_base_colorspace.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef KIS_U16_BASE_COLORSPACE_H_
00019 #define KIS_U16_BASE_COLORSPACE_H_
00020
00021 #include "kis_global.h"
00022 #include "kis_abstract_colorspace.h"
00023 #include "kis_integer_maths.h"
00024
00030 class KisU16BaseColorSpace : public KisAbstractColorSpace {
00031
00032 public:
00033
00034 static const Q_UINT16 U16_OPACITY_OPAQUE = UINT16_MAX;
00035 static const Q_UINT16 U16_OPACITY_TRANSPARENT = UINT16_MIN;
00036
00037 public:
00038
00039 KisU16BaseColorSpace(const KisID & id, DWORD cmType, icColorSpaceSignature colorSpaceSignature,
00040 KisColorSpaceFactoryRegistry * parent,
00041 KisProfile *p)
00042 : KisAbstractColorSpace(id, cmType, colorSpaceSignature,
00043 parent,
00044 p)
00045 {
00046 m_alphaSize = sizeof(Q_UINT16);
00047 };
00048
00049 virtual Q_UINT8 getAlpha(const Q_UINT8 * pixel) const;
00050 virtual void setAlpha(Q_UINT8 * pixels, Q_UINT8 alpha, Q_INT32 nPixels) const;
00051 virtual void multiplyAlpha(Q_UINT8 * pixels, Q_UINT8 alpha, Q_INT32 nPixels);
00052
00053 virtual void applyAlphaU8Mask(Q_UINT8 * pixels, Q_UINT8 * alpha, Q_INT32 nPixels);
00054 virtual void applyInverseAlphaU8Mask(Q_UINT8 * pixels, Q_UINT8 * alpha, Q_INT32 nPixels);
00055
00056 virtual QString channelValueText(const Q_UINT8 *pixel, Q_UINT32 channelIndex) const;
00057 virtual QString normalisedChannelValueText(const Q_UINT8 *pixel, Q_UINT32 channelIndex) const;
00058
00059 virtual Q_UINT8 scaleToU8(const Q_UINT8 * srcPixel, Q_INT32 channelPos);
00060 virtual Q_UINT16 scaleToU16(const Q_UINT8 * srcPixel, Q_INT32 channelPos);
00061 };
00062 #endif // KIS_U16_BASE_COLORSPACE_H_
|