|
|
|
@ -265,14 +265,14 @@ TQImage KisRgbColorSpace::convertToTQImage(const TQ_UINT8 *data, TQ_INT32 width,
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride,
|
|
|
|
|
const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride,
|
|
|
|
|
const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride,
|
|
|
|
|
const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride,
|
|
|
|
|
TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
@ -331,22 +331,22 @@ void KisRgbColorSpace::compositeOver(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStrid
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeAlphaDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride,
|
|
|
|
|
const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride,
|
|
|
|
|
const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride,
|
|
|
|
|
const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride,
|
|
|
|
|
TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
@ -379,20 +379,20 @@ void KisRgbColorSpace::compositeAlphaDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstR
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -461,19 +461,19 @@ void KisRgbColorSpace::compositeMultiply(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowS
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -532,19 +532,19 @@ void KisRgbColorSpace::compositeDivide(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStr
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -603,19 +603,19 @@ void KisRgbColorSpace::compositeScreen(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStr
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -675,19 +675,19 @@ void KisRgbColorSpace::compositeOverlay(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowSt
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -747,19 +747,19 @@ void KisRgbColorSpace::compositeDodge(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStri
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -819,19 +819,19 @@ void KisRgbColorSpace::compositeBurn(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStrid
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -890,19 +890,19 @@ void KisRgbColorSpace::compositeDarken(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStr
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -961,19 +961,19 @@ void KisRgbColorSpace::compositeLighten(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowSt
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeHue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeHue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -1044,19 +1044,19 @@ void KisRgbColorSpace::compositeHue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeSaturation(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeSaturation(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -1127,19 +1127,19 @@ void KisRgbColorSpace::compositeSaturation(TQ_UINT8 *dstRowStart, TQ_INT32 dstRo
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeValue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeValue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -1210,19 +1210,19 @@ void KisRgbColorSpace::compositeValue(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStri
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void KisRgbColorSpace::compositeColor(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *tqmaskRowStart, TQ_INT32 tqmaskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
void KisRgbColorSpace::compositeColor(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStride, const TQ_UINT8 *srcRowStart, TQ_INT32 srcRowStride, const TQ_UINT8 *maskRowStart, TQ_INT32 maskRowStride, TQ_INT32 rows, TQ_INT32 numColumns, TQ_UINT8 opacity)
|
|
|
|
|
{
|
|
|
|
|
while (rows > 0) {
|
|
|
|
|
|
|
|
|
|
const TQ_UINT8 *src = srcRowStart;
|
|
|
|
|
TQ_UINT8 *dst = dstRowStart;
|
|
|
|
|
TQ_INT32 columns = numColumns;
|
|
|
|
|
const TQ_UINT8 *tqmask = tqmaskRowStart;
|
|
|
|
|
const TQ_UINT8 *tqmask = maskRowStart;
|
|
|
|
|
|
|
|
|
|
while (columns > 0) {
|
|
|
|
|
|
|
|
|
@ -1293,8 +1293,8 @@ void KisRgbColorSpace::compositeColor(TQ_UINT8 *dstRowStart, TQ_INT32 dstRowStri
|
|
|
|
|
rows--;
|
|
|
|
|
srcRowStart += srcRowStride;
|
|
|
|
|
dstRowStart += dstRowStride;
|
|
|
|
|
if(tqmaskRowStart)
|
|
|
|
|
tqmaskRowStart += tqmaskRowStride;
|
|
|
|
|
if(maskRowStart)
|
|
|
|
|
maskRowStart += maskRowStride;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1303,7 +1303,7 @@ void KisRgbColorSpace::compositeErase(TQ_UINT8 *dst,
|
|
|
|
|
const TQ_UINT8 *src,
|
|
|
|
|
TQ_INT32 srcRowSize,
|
|
|
|
|
const TQ_UINT8 *srcAlphaMask,
|
|
|
|
|
TQ_INT32 tqmaskRowStride,
|
|
|
|
|
TQ_INT32 maskRowStride,
|
|
|
|
|
TQ_INT32 rows,
|
|
|
|
|
TQ_INT32 cols,
|
|
|
|
|
TQ_UINT8 /*opacity*/)
|
|
|
|
@ -1332,7 +1332,7 @@ void KisRgbColorSpace::compositeErase(TQ_UINT8 *dst,
|
|
|
|
|
|
|
|
|
|
dst += dstRowSize;
|
|
|
|
|
if(srcAlphaMask)
|
|
|
|
|
srcAlphaMask += tqmaskRowStride;
|
|
|
|
|
srcAlphaMask += maskRowStride;
|
|
|
|
|
src += srcRowSize;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1342,7 +1342,7 @@ void KisRgbColorSpace::bitBlt(TQ_UINT8 *dst,
|
|
|
|
|
const TQ_UINT8 *src,
|
|
|
|
|
TQ_INT32 srcRowStride,
|
|
|
|
|
const TQ_UINT8 *tqmask,
|
|
|
|
|
TQ_INT32 tqmaskRowStride,
|
|
|
|
|
TQ_INT32 maskRowStride,
|
|
|
|
|
TQ_UINT8 opacity,
|
|
|
|
|
TQ_INT32 rows,
|
|
|
|
|
TQ_INT32 cols,
|
|
|
|
@ -1354,10 +1354,10 @@ void KisRgbColorSpace::bitBlt(TQ_UINT8 *dst,
|
|
|
|
|
// Undefined == no composition
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_OVER:
|
|
|
|
|
compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeOver(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_ALPHA_DARKEN:
|
|
|
|
|
compositeAlphaDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeAlphaDarken(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_IN:
|
|
|
|
|
compositeIn(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
|
|
|
|
@ -1387,16 +1387,16 @@ void KisRgbColorSpace::bitBlt(TQ_UINT8 *dst,
|
|
|
|
|
compositeDiff(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_MULT:
|
|
|
|
|
compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeMultiply(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_DIVIDE:
|
|
|
|
|
compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeDivide(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_BUMPMAP:
|
|
|
|
|
compositeBumpmap(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_COPY:
|
|
|
|
|
compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeCopy(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_COPY_RED:
|
|
|
|
|
compositeCopyRed(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
|
|
|
|
@ -1431,22 +1431,22 @@ void KisRgbColorSpace::bitBlt(TQ_UINT8 *dst,
|
|
|
|
|
// No composition.
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_DARKEN:
|
|
|
|
|
compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeDarken(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_LIGHTEN:
|
|
|
|
|
compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeLighten(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_HUE:
|
|
|
|
|
compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeHue(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_SATURATION:
|
|
|
|
|
compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeSaturation(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_VALUE:
|
|
|
|
|
compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeValue(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_COLOR:
|
|
|
|
|
compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeColor(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_COLORIZE:
|
|
|
|
|
compositeColorize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
|
|
|
|
@ -1455,19 +1455,19 @@ void KisRgbColorSpace::bitBlt(TQ_UINT8 *dst,
|
|
|
|
|
compositeLuminize(pixelSize(), dst, dstRowStride, src, srcRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_SCREEN:
|
|
|
|
|
compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeScreen(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_OVERLAY:
|
|
|
|
|
compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeOverlay(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_ERASE:
|
|
|
|
|
compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeErase(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_DODGE:
|
|
|
|
|
compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeDodge(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
case COMPOSITE_BURN:
|
|
|
|
|
compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, tqmaskRowStride, rows, cols, opacity);
|
|
|
|
|
compositeBurn(dst, dstRowStride, src, srcRowStride, tqmask, maskRowStride, rows, cols, opacity);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|