|
@@ -82,7 +82,7 @@ static void SDL_Blit_RGB888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
srcR = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcB = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -98,6 +98,11 @@ static void SDL_Blit_RGB888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -147,7 +152,7 @@ static void SDL_Blit_RGB888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcR = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcB = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -163,6 +168,11 @@ static void SDL_Blit_RGB888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -292,7 +302,7 @@ static void SDL_Blit_RGB888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -308,6 +318,11 @@ static void SDL_Blit_RGB888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -375,7 +390,7 @@ static void SDL_Blit_RGB888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -391,6 +406,11 @@ static void SDL_Blit_RGB888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -462,7 +482,7 @@ static void SDL_Blit_RGB888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
srcR = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcB = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstB = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstR = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -478,6 +498,11 @@ static void SDL_Blit_RGB888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -527,7 +552,7 @@ static void SDL_Blit_RGB888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcR = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcB = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstB = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstR = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -543,6 +568,11 @@ static void SDL_Blit_RGB888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -672,7 +702,7 @@ static void SDL_Blit_RGB888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -688,6 +718,11 @@ static void SDL_Blit_RGB888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -755,7 +790,7 @@ static void SDL_Blit_RGB888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -771,6 +806,11 @@ static void SDL_Blit_RGB888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -843,7 +883,7 @@ static void SDL_Blit_RGB888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
srcR = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcB = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel; dstA = (Uint8)(dstpixel >> 24);
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -860,6 +900,12 @@ static void SDL_Blit_RGB888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ dstA = 0xFF;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -909,7 +955,7 @@ static void SDL_Blit_RGB888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcR = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcB = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel; dstA = (Uint8)(dstpixel >> 24);
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -926,6 +972,12 @@ static void SDL_Blit_RGB888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ dstA = 0xFF;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -1059,7 +1111,7 @@ static void SDL_Blit_RGB888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -1076,6 +1128,12 @@ static void SDL_Blit_RGB888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -1143,7 +1201,7 @@ static void SDL_Blit_RGB888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -1160,6 +1218,12 @@ static void SDL_Blit_RGB888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -1231,7 +1295,7 @@ static void SDL_Blit_BGR888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcR = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -1247,6 +1311,11 @@ static void SDL_Blit_BGR888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -1296,7 +1365,7 @@ static void SDL_Blit_BGR888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcR = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -1312,6 +1381,11 @@ static void SDL_Blit_BGR888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -1441,7 +1515,7 @@ static void SDL_Blit_BGR888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -1457,6 +1531,11 @@ static void SDL_Blit_BGR888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -1524,7 +1603,7 @@ static void SDL_Blit_BGR888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -1540,6 +1619,11 @@ static void SDL_Blit_BGR888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -1606,7 +1690,7 @@ static void SDL_Blit_BGR888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcR = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstB = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstR = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -1622,6 +1706,11 @@ static void SDL_Blit_BGR888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -1671,7 +1760,7 @@ static void SDL_Blit_BGR888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcR = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstB = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstR = (Uint8)dstpixel;
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -1687,6 +1776,11 @@ static void SDL_Blit_BGR888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -1816,7 +1910,7 @@ static void SDL_Blit_BGR888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -1832,6 +1926,11 @@ static void SDL_Blit_BGR888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -1899,7 +1998,7 @@ static void SDL_Blit_BGR888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -1915,6 +2014,11 @@ static void SDL_Blit_BGR888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -1987,7 +2091,7 @@ static void SDL_Blit_BGR888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcR = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel; dstA = (Uint8)(dstpixel >> 24);
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -2004,6 +2108,12 @@ static void SDL_Blit_BGR888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ dstA = 0xFF;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2053,7 +2163,7 @@ static void SDL_Blit_BGR888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (Uint8)(srcpixel >> 16); srcG = (Uint8)(srcpixel >> 8); srcR = (Uint8)srcpixel;
|
|
|
dstpixel = *dst;
|
|
|
dstR = (Uint8)(dstpixel >> 16); dstG = (Uint8)(dstpixel >> 8); dstB = (Uint8)dstpixel; dstA = (Uint8)(dstpixel >> 24);
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR;
|
|
|
dstG = srcG;
|
|
@@ -2070,6 +2180,12 @@ static void SDL_Blit_BGR888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = (srcR * dstR) / 255;
|
|
|
+ dstG = (srcG * dstG) / 255;
|
|
|
+ dstB = (srcB * dstB) / 255;
|
|
|
+ dstA = 0xFF;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2203,7 +2319,7 @@ static void SDL_Blit_BGR888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2220,6 +2336,12 @@ static void SDL_Blit_BGR888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2287,7 +2409,7 @@ static void SDL_Blit_BGR888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2304,6 +2426,12 @@ static void SDL_Blit_BGR888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2383,7 +2511,7 @@ static void SDL_Blit_ARGB8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2399,6 +2527,11 @@ static void SDL_Blit_ARGB8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2456,7 +2589,7 @@ static void SDL_Blit_ARGB8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2472,6 +2605,11 @@ static void SDL_Blit_ARGB8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2603,7 +2741,7 @@ static void SDL_Blit_ARGB8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2619,6 +2757,11 @@ static void SDL_Blit_ARGB8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2688,7 +2831,7 @@ static void SDL_Blit_ARGB8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2704,6 +2847,11 @@ static void SDL_Blit_ARGB8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -2783,7 +2931,7 @@ static void SDL_Blit_ARGB8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2799,6 +2947,11 @@ static void SDL_Blit_ARGB8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -2856,7 +3009,7 @@ static void SDL_Blit_ARGB8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -2872,6 +3025,11 @@ static void SDL_Blit_ARGB8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -3003,7 +3161,7 @@ static void SDL_Blit_ARGB8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3019,6 +3177,11 @@ static void SDL_Blit_ARGB8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -3088,7 +3251,7 @@ static void SDL_Blit_ARGB8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3104,6 +3267,11 @@ static void SDL_Blit_ARGB8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -3178,7 +3346,7 @@ static void SDL_Blit_ARGB8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3195,6 +3363,12 @@ static void SDL_Blit_ARGB8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3252,7 +3426,7 @@ static void SDL_Blit_ARGB8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3269,6 +3443,12 @@ static void SDL_Blit_ARGB8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3408,7 +3588,7 @@ static void SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3425,6 +3605,12 @@ static void SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3494,7 +3680,7 @@ static void SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3511,6 +3697,12 @@ static void SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3590,7 +3782,7 @@ static void SDL_Blit_RGBA8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3606,6 +3798,11 @@ static void SDL_Blit_RGBA8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3663,7 +3860,7 @@ static void SDL_Blit_RGBA8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3679,6 +3876,11 @@ static void SDL_Blit_RGBA8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3810,7 +4012,7 @@ static void SDL_Blit_RGBA8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3826,6 +4028,11 @@ static void SDL_Blit_RGBA8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3895,7 +4102,7 @@ static void SDL_Blit_RGBA8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -3911,6 +4118,11 @@ static void SDL_Blit_RGBA8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -3990,7 +4202,7 @@ static void SDL_Blit_RGBA8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4006,6 +4218,11 @@ static void SDL_Blit_RGBA8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -4063,7 +4280,7 @@ static void SDL_Blit_RGBA8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4079,6 +4296,11 @@ static void SDL_Blit_RGBA8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -4210,7 +4432,7 @@ static void SDL_Blit_RGBA8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4226,6 +4448,11 @@ static void SDL_Blit_RGBA8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -4295,7 +4522,7 @@ static void SDL_Blit_RGBA8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4311,6 +4538,11 @@ static void SDL_Blit_RGBA8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -4390,7 +4622,7 @@ static void SDL_Blit_RGBA8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4407,6 +4639,12 @@ static void SDL_Blit_RGBA8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -4464,7 +4702,7 @@ static void SDL_Blit_RGBA8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4481,6 +4719,12 @@ static void SDL_Blit_RGBA8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -4620,7 +4864,7 @@ static void SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4637,6 +4881,12 @@ static void SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -4706,7 +4956,7 @@ static void SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4723,6 +4973,12 @@ static void SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -4802,7 +5058,7 @@ static void SDL_Blit_ABGR8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4818,6 +5074,11 @@ static void SDL_Blit_ABGR8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -4875,7 +5136,7 @@ static void SDL_Blit_ABGR8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -4891,6 +5152,11 @@ static void SDL_Blit_ABGR8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -5022,7 +5288,7 @@ static void SDL_Blit_ABGR8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5038,6 +5304,11 @@ static void SDL_Blit_ABGR8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -5107,7 +5378,7 @@ static void SDL_Blit_ABGR8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5123,6 +5394,11 @@ static void SDL_Blit_ABGR8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -5202,7 +5478,7 @@ static void SDL_Blit_ABGR8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5218,6 +5494,11 @@ static void SDL_Blit_ABGR8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -5275,7 +5556,7 @@ static void SDL_Blit_ABGR8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5291,6 +5572,11 @@ static void SDL_Blit_ABGR8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -5422,7 +5708,7 @@ static void SDL_Blit_ABGR8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5438,6 +5724,11 @@ static void SDL_Blit_ABGR8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -5507,7 +5798,7 @@ static void SDL_Blit_ABGR8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5523,6 +5814,11 @@ static void SDL_Blit_ABGR8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -5602,7 +5898,7 @@ static void SDL_Blit_ABGR8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5619,6 +5915,12 @@ static void SDL_Blit_ABGR8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -5676,7 +5978,7 @@ static void SDL_Blit_ABGR8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5693,6 +5995,12 @@ static void SDL_Blit_ABGR8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -5832,7 +6140,7 @@ static void SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5849,6 +6157,12 @@ static void SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -5918,7 +6232,7 @@ static void SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -5935,6 +6249,12 @@ static void SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -6014,7 +6334,7 @@ static void SDL_Blit_BGRA8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6030,6 +6350,11 @@ static void SDL_Blit_BGRA8888_RGB888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -6087,7 +6412,7 @@ static void SDL_Blit_BGRA8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6103,6 +6428,11 @@ static void SDL_Blit_BGRA8888_RGB888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -6234,7 +6564,7 @@ static void SDL_Blit_BGRA8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6250,6 +6580,11 @@ static void SDL_Blit_BGRA8888_RGB888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -6319,7 +6654,7 @@ static void SDL_Blit_BGRA8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6335,6 +6670,11 @@ static void SDL_Blit_BGRA8888_RGB888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -6414,7 +6754,7 @@ static void SDL_Blit_BGRA8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6430,6 +6770,11 @@ static void SDL_Blit_BGRA8888_BGR888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -6487,7 +6832,7 @@ static void SDL_Blit_BGRA8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6503,6 +6848,11 @@ static void SDL_Blit_BGRA8888_BGR888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -6634,7 +6984,7 @@ static void SDL_Blit_BGRA8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6650,6 +7000,11 @@ static void SDL_Blit_BGRA8888_BGR888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -6719,7 +7074,7 @@ static void SDL_Blit_BGRA8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6735,6 +7090,11 @@ static void SDL_Blit_BGRA8888_BGR888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstB << 16) | (dstG << 8) | dstR;
|
|
|
*dst = dstpixel;
|
|
@@ -6814,7 +7174,7 @@ static void SDL_Blit_BGRA8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6831,6 +7191,12 @@ static void SDL_Blit_BGRA8888_ARGB8888_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -6888,7 +7254,7 @@ static void SDL_Blit_BGRA8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -6905,6 +7271,12 @@ static void SDL_Blit_BGRA8888_ARGB8888_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -7044,7 +7416,7 @@ static void SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -7061,6 +7433,12 @@ static void SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -7130,7 +7508,7 @@ static void SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
srcB = (srcB * srcA) / 255;
|
|
|
}
|
|
|
}
|
|
|
- switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD)) {
|
|
|
+ switch (flags & (SDL_COPY_BLEND|SDL_COPY_ADD|SDL_COPY_MOD|SDL_COPY_MUL)) {
|
|
|
case SDL_COPY_BLEND:
|
|
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
|
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
|
@@ -7147,6 +7525,12 @@ static void SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
dstG = (srcG * dstG) / 255;
|
|
|
dstB = (srcB * dstB) / 255;
|
|
|
break;
|
|
|
+ case SDL_COPY_MUL:
|
|
|
+ dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255; if (dstR > 255) dstR = 255;
|
|
|
+ dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255; if (dstG > 255) dstG = 255;
|
|
|
+ dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255; if (dstB > 255) dstB = 255;
|
|
|
+ dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255; if (dstA > 255) dstA = 255;
|
|
|
+ break;
|
|
|
}
|
|
|
dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
|
|
|
*dst = dstpixel;
|
|
@@ -7160,131 +7544,131 @@ static void SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend_Scale(SDL_BlitInfo *info)
|
|
|
|
|
|
SDL_BlitFuncEntry SDL_GeneratedBlitFuncTable[] = {
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_RGB888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_BGR888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGB888_ARGB8888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_RGB888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_BGR888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGR888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGR888_ARGB8888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Scale },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Blend },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_RGB888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Scale },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Blend },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_BGR888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Scale },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Blend },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ARGB8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_RGB888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_BGR888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_RGBA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_RGBA8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Scale },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Blend },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_RGB888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Scale },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Blend },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_BGR888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Scale },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Blend },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_ABGR8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_RGB888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_RGB888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_BGR888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_BGR888_Modulate_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Blend_Scale },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Modulate },
|
|
|
{ SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Modulate_Scale },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend },
|
|
|
- { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend },
|
|
|
+ { SDL_PIXELFORMAT_BGRA8888, SDL_PIXELFORMAT_ARGB8888, (SDL_COPY_MODULATE_COLOR | SDL_COPY_MODULATE_ALPHA | SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD | SDL_COPY_MUL | SDL_COPY_NEAREST), SDL_CPU_ANY, SDL_Blit_BGRA8888_ARGB8888_Modulate_Blend_Scale },
|
|
|
{ 0, 0, 0, 0, NULL }
|
|
|
};
|
|
|
|