Better naming for the blit permutation variables
parent
f6a2ae6007
commit
1aa2ad2fe8
|
@ -2152,53 +2152,54 @@ Blit4to4CopyAlpha(SDL_BlitInfo * info)
|
||||||
/* permutation for mapping srcfmt to dstfmt, overloading or not the alpha channel */
|
/* permutation for mapping srcfmt to dstfmt, overloading or not the alpha channel */
|
||||||
static void
|
static void
|
||||||
get_permutation(SDL_PixelFormat *srcfmt, SDL_PixelFormat *dstfmt,
|
get_permutation(SDL_PixelFormat *srcfmt, SDL_PixelFormat *dstfmt,
|
||||||
int *_r , int *_g, int *_b, int *_a, int *_missing)
|
int *_p0 , int *_p1, int *_p2, int *_p3, int *_alpha_channel)
|
||||||
{
|
{
|
||||||
int missing = 0, r, g, b, a = 0;
|
int alpha_channel = 0, p0, p1, p2, p3;
|
||||||
int Pixel = 0x04030201; /* identity permutation */
|
int Pixel = 0x04030201; /* identity permutation */
|
||||||
|
|
||||||
if (srcfmt->Amask) {
|
if (srcfmt->Amask) {
|
||||||
RGBA_FROM_PIXEL(Pixel, srcfmt, r, g, b, a);
|
RGBA_FROM_PIXEL(Pixel, srcfmt, p0, p1, p2, p3);
|
||||||
} else {
|
} else {
|
||||||
RGB_FROM_PIXEL(Pixel, srcfmt, r, g, b);
|
RGB_FROM_PIXEL(Pixel, srcfmt, p0, p1, p2);
|
||||||
|
p3 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dstfmt->Amask) {
|
if (dstfmt->Amask) {
|
||||||
if (srcfmt->Amask) {
|
if (srcfmt->Amask) {
|
||||||
PIXEL_FROM_RGBA(Pixel, dstfmt, r, g, b, a);
|
PIXEL_FROM_RGBA(Pixel, dstfmt, p0, p1, p2, p3);
|
||||||
} else {
|
} else {
|
||||||
PIXEL_FROM_RGBA(Pixel, dstfmt, r, g, b, 0);
|
PIXEL_FROM_RGBA(Pixel, dstfmt, p0, p1, p2, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
PIXEL_FROM_RGB(Pixel, dstfmt, r, g, b);
|
PIXEL_FROM_RGB(Pixel, dstfmt, p0, p1, p2);
|
||||||
}
|
}
|
||||||
|
|
||||||
r = Pixel & 0xFF;
|
p0 = Pixel & 0xFF;
|
||||||
g = (Pixel >> 8) & 0xFF;
|
p1 = (Pixel >> 8) & 0xFF;
|
||||||
b = (Pixel >> 16) & 0xFF;
|
p2 = (Pixel >> 16) & 0xFF;
|
||||||
a = (Pixel >> 24) & 0xFF;
|
p3 = (Pixel >> 24) & 0xFF;
|
||||||
|
|
||||||
if (r == 0) {
|
if (p0 == 0) {
|
||||||
r = 1;
|
p0 = 1;
|
||||||
missing = 0;
|
alpha_channel = 0;
|
||||||
} else if (g == 0) {
|
} else if (p1 == 0) {
|
||||||
g = 1;
|
p1 = 1;
|
||||||
missing = 1;
|
alpha_channel = 1;
|
||||||
} else if (b == 0) {
|
} else if (p2 == 0) {
|
||||||
b = 1;
|
p2 = 1;
|
||||||
missing = 2;
|
alpha_channel = 2;
|
||||||
} else if (a == 0) {
|
} else if (p3 == 0) {
|
||||||
a = 1;
|
p3 = 1;
|
||||||
missing = 3;
|
alpha_channel = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
*_r = r - 1;
|
*_p0 = p0 - 1;
|
||||||
*_g = g - 1;
|
*_p1 = p1 - 1;
|
||||||
*_b = b - 1;
|
*_p2 = p2 - 1;
|
||||||
*_a = a - 1;
|
*_p3 = p3 - 1;
|
||||||
|
|
||||||
if (_missing) {
|
if (_alpha_channel) {
|
||||||
*_missing = missing;
|
*_alpha_channel = alpha_channel;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2228,8 +2229,8 @@ BlitNtoN(SDL_BlitInfo * info)
|
||||||
Uint32 *dst32 = (Uint32*)dst;
|
Uint32 *dst32 = (Uint32*)dst;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int missing = 0, r, g, b, a;
|
int alpha_channel, p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, &missing);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, &alpha_channel);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
@ -2237,11 +2238,11 @@ BlitNtoN(SDL_BlitInfo * info)
|
||||||
{
|
{
|
||||||
Uint8 *s8 = (Uint8 *)src32;
|
Uint8 *s8 = (Uint8 *)src32;
|
||||||
Uint8 *d8 = (Uint8 *)dst32;
|
Uint8 *d8 = (Uint8 *)dst32;
|
||||||
d8[0] = s8[r];
|
d8[0] = s8[p0];
|
||||||
d8[1] = s8[g];
|
d8[1] = s8[p1];
|
||||||
d8[2] = s8[b];
|
d8[2] = s8[p2];
|
||||||
d8[3] = s8[a];
|
d8[3] = s8[p3];
|
||||||
d8[missing] = alpha;
|
d8[alpha_channel] = alpha;
|
||||||
++src32;
|
++src32;
|
||||||
++dst32;
|
++dst32;
|
||||||
}, width);
|
}, width);
|
||||||
|
@ -2259,17 +2260,17 @@ BlitNtoN(SDL_BlitInfo * info)
|
||||||
Uint32 *src32 = (Uint32*)src;
|
Uint32 *src32 = (Uint32*)src;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int r, g, b, a;
|
int p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, NULL);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, NULL);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
DUFFS_LOOP(
|
DUFFS_LOOP(
|
||||||
{
|
{
|
||||||
Uint8 *s8 = (Uint8 *)src32;
|
Uint8 *s8 = (Uint8 *)src32;
|
||||||
dst[0] = s8[r];
|
dst[0] = s8[p0];
|
||||||
dst[1] = s8[g];
|
dst[1] = s8[p1];
|
||||||
dst[2] = s8[b];
|
dst[2] = s8[p2];
|
||||||
++src32;
|
++src32;
|
||||||
dst += 3;
|
dst += 3;
|
||||||
}, width);
|
}, width);
|
||||||
|
@ -2287,19 +2288,19 @@ BlitNtoN(SDL_BlitInfo * info)
|
||||||
Uint32 *dst32 = (Uint32*)dst;
|
Uint32 *dst32 = (Uint32*)dst;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int missing = 0, r, g, b, a;
|
int alpha_channel, p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, &missing);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, &alpha_channel);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
DUFFS_LOOP(
|
DUFFS_LOOP(
|
||||||
{
|
{
|
||||||
Uint8 *d8 = (Uint8 *)dst32;
|
Uint8 *d8 = (Uint8 *)dst32;
|
||||||
d8[0] = src[r];
|
d8[0] = src[p0];
|
||||||
d8[1] = src[g];
|
d8[1] = src[p1];
|
||||||
d8[2] = src[b];
|
d8[2] = src[p2];
|
||||||
d8[3] = src[a];
|
d8[3] = src[p3];
|
||||||
d8[missing] = alpha;
|
d8[alpha_channel] = alpha;
|
||||||
src += 3;
|
src += 3;
|
||||||
++dst32;
|
++dst32;
|
||||||
}, width);
|
}, width);
|
||||||
|
@ -2354,8 +2355,8 @@ BlitNtoNCopyAlpha(SDL_BlitInfo * info)
|
||||||
Uint32 *dst32 = (Uint32*)dst;
|
Uint32 *dst32 = (Uint32*)dst;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int r, g, b, a;
|
int p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, NULL);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, NULL);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
@ -2363,10 +2364,10 @@ BlitNtoNCopyAlpha(SDL_BlitInfo * info)
|
||||||
{
|
{
|
||||||
Uint8 *s8 = (Uint8 *)src32;
|
Uint8 *s8 = (Uint8 *)src32;
|
||||||
Uint8 *d8 = (Uint8 *)dst32;
|
Uint8 *d8 = (Uint8 *)dst32;
|
||||||
d8[0] = s8[r];
|
d8[0] = s8[p0];
|
||||||
d8[1] = s8[g];
|
d8[1] = s8[p1];
|
||||||
d8[2] = s8[b];
|
d8[2] = s8[p2];
|
||||||
d8[3] = s8[a];
|
d8[3] = s8[p3];
|
||||||
++src32;
|
++src32;
|
||||||
++dst32;
|
++dst32;
|
||||||
}, width);
|
}, width);
|
||||||
|
@ -2566,8 +2567,8 @@ BlitNtoNKey(SDL_BlitInfo * info)
|
||||||
Uint32 *dst32 = (Uint32*)dst;
|
Uint32 *dst32 = (Uint32*)dst;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int missing = 0, r, g, b, a;
|
int alpha_channel, p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, &missing);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, &alpha_channel);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
@ -2576,11 +2577,11 @@ BlitNtoNKey(SDL_BlitInfo * info)
|
||||||
if ((*src32 & rgbmask) != ckey) {
|
if ((*src32 & rgbmask) != ckey) {
|
||||||
Uint8 *s8 = (Uint8 *)src32;
|
Uint8 *s8 = (Uint8 *)src32;
|
||||||
Uint8 *d8 = (Uint8 *)dst32;
|
Uint8 *d8 = (Uint8 *)dst32;
|
||||||
d8[0] = s8[r];
|
d8[0] = s8[p0];
|
||||||
d8[1] = s8[g];
|
d8[1] = s8[p1];
|
||||||
d8[2] = s8[b];
|
d8[2] = s8[p2];
|
||||||
d8[3] = s8[a];
|
d8[3] = s8[p3];
|
||||||
d8[missing] = alpha;
|
d8[alpha_channel] = alpha;
|
||||||
}
|
}
|
||||||
++src32;
|
++src32;
|
||||||
++dst32;
|
++dst32;
|
||||||
|
@ -2663,8 +2664,8 @@ BlitNtoNKey(SDL_BlitInfo * info)
|
||||||
Uint32 *src32 = (Uint32*)src;
|
Uint32 *src32 = (Uint32*)src;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int r, g, b, a;
|
int p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, NULL);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, NULL);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
@ -2672,9 +2673,9 @@ BlitNtoNKey(SDL_BlitInfo * info)
|
||||||
{
|
{
|
||||||
if ((*src32 & rgbmask) != ckey) {
|
if ((*src32 & rgbmask) != ckey) {
|
||||||
Uint8 *s8 = (Uint8 *)src32;
|
Uint8 *s8 = (Uint8 *)src32;
|
||||||
dst[0] = s8[r];
|
dst[0] = s8[p0];
|
||||||
dst[1] = s8[g];
|
dst[1] = s8[p1];
|
||||||
dst[2] = s8[b];
|
dst[2] = s8[p2];
|
||||||
}
|
}
|
||||||
++src32;
|
++src32;
|
||||||
dst += 3;
|
dst += 3;
|
||||||
|
@ -2697,8 +2698,8 @@ BlitNtoNKey(SDL_BlitInfo * info)
|
||||||
Uint8 k2 = (ckey >> 16) & 0xFF;
|
Uint8 k2 = (ckey >> 16) & 0xFF;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int missing = 0, r, g, b, a;
|
int alpha_channel, p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, &missing);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, &alpha_channel);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
@ -2710,11 +2711,11 @@ BlitNtoNKey(SDL_BlitInfo * info)
|
||||||
|
|
||||||
if (k0 != s0 || k1 != s1 || k2 != s2) {
|
if (k0 != s0 || k1 != s1 || k2 != s2) {
|
||||||
Uint8 *d8 = (Uint8 *)dst32;
|
Uint8 *d8 = (Uint8 *)dst32;
|
||||||
d8[0] = src[r];
|
d8[0] = src[p0];
|
||||||
d8[1] = src[g];
|
d8[1] = src[p1];
|
||||||
d8[2] = src[b];
|
d8[2] = src[p2];
|
||||||
d8[3] = src[a];
|
d8[3] = src[p3];
|
||||||
d8[missing] = alpha;
|
d8[alpha_channel] = alpha;
|
||||||
}
|
}
|
||||||
src += 3;
|
src += 3;
|
||||||
++dst32;
|
++dst32;
|
||||||
|
@ -2812,8 +2813,8 @@ BlitNtoNKeyCopyAlpha(SDL_BlitInfo * info)
|
||||||
Uint32 *dst32 = (Uint32*)dst;
|
Uint32 *dst32 = (Uint32*)dst;
|
||||||
|
|
||||||
/* Find the appropriate permutation */
|
/* Find the appropriate permutation */
|
||||||
int r, g, b, a;
|
int p0, p1, p2, p3;
|
||||||
get_permutation(srcfmt, dstfmt, &r, &g, &b, &a, NULL);
|
get_permutation(srcfmt, dstfmt, &p0, &p1, &p2, &p3, NULL);
|
||||||
|
|
||||||
while (height--) {
|
while (height--) {
|
||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
@ -2822,10 +2823,10 @@ BlitNtoNKeyCopyAlpha(SDL_BlitInfo * info)
|
||||||
if ((*src32 & rgbmask) != ckey) {
|
if ((*src32 & rgbmask) != ckey) {
|
||||||
Uint8 *s8 = (Uint8 *)src32;
|
Uint8 *s8 = (Uint8 *)src32;
|
||||||
Uint8 *d8 = (Uint8 *)dst32;
|
Uint8 *d8 = (Uint8 *)dst32;
|
||||||
d8[0] = s8[r];
|
d8[0] = s8[p0];
|
||||||
d8[1] = s8[g];
|
d8[1] = s8[p1];
|
||||||
d8[2] = s8[b];
|
d8[2] = s8[p2];
|
||||||
d8[3] = s8[a];
|
d8[3] = s8[p3];
|
||||||
}
|
}
|
||||||
++src32;
|
++src32;
|
||||||
++dst32;
|
++dst32;
|
||||||
|
|
Loading…
Reference in New Issue