Skip to content

Commit 9e95ede

Browse files
committed
Simplify alphablit.c macros
1 parent 58e4ead commit 9e95ede

File tree

1 file changed

+58
-58
lines changed

1 file changed

+58
-58
lines changed

src_c/alphablit.c

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ SoftBlitPyGame(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst,
594594

595595
/* --------------------------------------------------------- */
596596

597-
#define SETUP_BASE() \
597+
#define SETUP_BASE \
598598
int n; \
599599
int width = info->width; \
600600
int height = info->height; \
@@ -613,16 +613,15 @@ SoftBlitPyGame(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst,
613613
Uint8 dR, dG, dB, dA, sR, sG, sB, sA; \
614614
Uint32 pixel;
615615

616-
#define SETUP_BLIT_BLEND(...) \
617-
SETUP_BASE() \
618-
__VA_ARGS__; \
616+
#define SETUP_BLIT_BLEND \
617+
SETUP_BASE \
619618
int srcppa = info->src_blend != SDL_BLENDMODE_NONE && srcfmt->Amask; \
620619
int dstppa = info->dst_blend != SDL_BLENDMODE_NONE && dstfmt->Amask;
621620

622621
/* --------------------------------------------------------- */
623622

624-
#define BLIT_BLEND_RGBA_OP(operation, tmp_variable, blend_function, code) \
625-
SETUP_BLIT_BLEND(tmp_variable) \
623+
#define BLIT_BLEND_RGBA_OP(operation, blend_function, code) \
624+
SETUP_BLIT_BLEND \
626625
if (!dstppa) { \
627626
blit_blend_##operation(info); \
628627
return; \
@@ -734,7 +733,8 @@ SoftBlitPyGame(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst,
734733
static void
735734
blit_blend_rgba_add(SDL_BlitInfo *info)
736735
{
737-
BLIT_BLEND_RGBA_OP(add, Uint32 tmp,
736+
Uint32 tmp;
737+
BLIT_BLEND_RGBA_OP(add,
738738
BLEND_RGBA_ADD(tmp, sR, sG, sB, sA, dR, dG, dB, dA), {
739739
tmp = (*dst) + (*src);
740740
(*dst) = (tmp <= 255 ? tmp : 255);
@@ -744,7 +744,8 @@ blit_blend_rgba_add(SDL_BlitInfo *info)
744744
static void
745745
blit_blend_rgba_sub(SDL_BlitInfo *info)
746746
{
747-
BLIT_BLEND_RGBA_OP(sub, Sint32 tmp,
747+
Sint32 tmp;
748+
BLIT_BLEND_RGBA_OP(sub,
748749
BLEND_RGBA_SUB(tmp, sR, sG, sB, sA, dR, dG, dB, dA), {
749750
tmp = (*dst) - (*src);
750751
(*dst) = (tmp >= 0 ? tmp : 0);
@@ -754,17 +755,17 @@ blit_blend_rgba_sub(SDL_BlitInfo *info)
754755
static void
755756
blit_blend_rgba_mul(SDL_BlitInfo *info)
756757
{
757-
BLIT_BLEND_RGBA_OP(
758-
mul, Sint32 tmp, BLEND_RGBA_MULT(sR, sG, sB, sA, dR, dG, dB, dA), {
759-
tmp = ((*dst) && (*src)) ? (((*dst) * (*src)) + 255) >> 8 : 0;
760-
(*dst) = (tmp <= 255 ? tmp : 255);
761-
});
758+
Sint32 tmp;
759+
BLIT_BLEND_RGBA_OP(mul, BLEND_RGBA_MULT(sR, sG, sB, sA, dR, dG, dB, dA), {
760+
tmp = ((*dst) && (*src)) ? (((*dst) * (*src)) + 255) >> 8 : 0;
761+
(*dst) = (tmp <= 255 ? tmp : 255);
762+
});
762763
}
763764

764765
static void
765766
blit_blend_rgba_min(SDL_BlitInfo *info)
766767
{
767-
BLIT_BLEND_RGBA_OP(min, , BLEND_RGBA_MIN(sR, sG, sB, sA, dR, dG, dB, dA), {
768+
BLIT_BLEND_RGBA_OP(min, BLEND_RGBA_MIN(sR, sG, sB, sA, dR, dG, dB, dA), {
768769
if ((*src) < (*dst)) {
769770
(*dst) = (*src);
770771
}
@@ -774,7 +775,7 @@ blit_blend_rgba_min(SDL_BlitInfo *info)
774775
static void
775776
blit_blend_rgba_max(SDL_BlitInfo *info)
776777
{
777-
BLIT_BLEND_RGBA_OP(max, , BLEND_RGBA_MAX(sR, sG, sB, sA, dR, dG, dB, dA), {
778+
BLIT_BLEND_RGBA_OP(max, BLEND_RGBA_MAX(sR, sG, sB, sA, dR, dG, dB, dA), {
778779
if ((*src) > (*dst)) {
779780
(*dst) = (*src);
780781
}
@@ -784,7 +785,7 @@ blit_blend_rgba_max(SDL_BlitInfo *info)
784785
static void
785786
blit_blend_premultiplied(SDL_BlitInfo *info)
786787
{
787-
SETUP_BLIT_BLEND()
788+
SETUP_BLIT_BLEND
788789
if (srcbpp >= 3 && dstbpp >= 3 && info->src_blend == SDL_BLENDMODE_NONE) {
789790
size_t srcoffsetR, srcoffsetG, srcoffsetB;
790791
size_t dstoffsetR, dstoffsetG, dstoffsetB;
@@ -974,7 +975,7 @@ blit_blend_premultiplied(SDL_BlitInfo *info)
974975

975976
/* --------------------------------------------------------- */
976977

977-
#define BLIT_BLEND_OP(operation, tmp_variable, blend_function, code) \
978+
#define BLIT_BLEND_OP(blend_function, code) \
978979
int n; \
979980
int width = info->width; \
980981
int height = info->height; \
@@ -992,7 +993,6 @@ blit_blend_premultiplied(SDL_BlitInfo *info)
992993
int dstbpp = PG_FORMAT_BytesPerPixel(dstfmt); \
993994
Uint8 dR, dG, dB, dA, sR, sG, sB, sA; \
994995
Uint32 pixel; \
995-
tmp_variable; \
996996
int srcppa = info->src_blend != SDL_BLENDMODE_NONE && srcfmt->Amask; \
997997
int dstppa = info->dst_blend != SDL_BLENDMODE_NONE && dstfmt->Amask; \
998998
if (srcbpp >= 3 && dstbpp >= 3 && \
@@ -1153,55 +1153,55 @@ blit_blend_premultiplied(SDL_BlitInfo *info)
11531153
static void
11541154
blit_blend_add(SDL_BlitInfo *info)
11551155
{
1156-
BLIT_BLEND_OP(add, Uint32 tmp,
1157-
BLEND_ADD(tmp, sR, sG, sB, sA, dR, dG, dB, dA), {
1158-
tmp = dst[dstoffsetR] + src[srcoffsetR];
1159-
dst[dstoffsetR] = (tmp <= 255 ? tmp : 255);
1160-
tmp = dst[dstoffsetG] + src[srcoffsetG];
1161-
dst[dstoffsetG] = (tmp <= 255 ? tmp : 255);
1162-
tmp = dst[dstoffsetB] + src[srcoffsetB];
1163-
dst[dstoffsetB] = (tmp <= 255 ? tmp : 255);
1164-
});
1156+
Uint32 tmp;
1157+
BLIT_BLEND_OP(BLEND_ADD(tmp, sR, sG, sB, sA, dR, dG, dB, dA), {
1158+
tmp = dst[dstoffsetR] + src[srcoffsetR];
1159+
dst[dstoffsetR] = (tmp <= 255 ? tmp : 255);
1160+
tmp = dst[dstoffsetG] + src[srcoffsetG];
1161+
dst[dstoffsetG] = (tmp <= 255 ? tmp : 255);
1162+
tmp = dst[dstoffsetB] + src[srcoffsetB];
1163+
dst[dstoffsetB] = (tmp <= 255 ? tmp : 255);
1164+
});
11651165
}
11661166

11671167
static void
11681168
blit_blend_sub(SDL_BlitInfo *info)
11691169
{
1170-
BLIT_BLEND_OP(sub, Sint32 tmp,
1171-
BLEND_SUB(tmp, sR, sG, sB, sA, dR, dG, dB, dA), {
1172-
tmp = dst[dstoffsetR] - src[srcoffsetR];
1173-
dst[dstoffsetR] = (tmp >= 0 ? tmp : 0);
1174-
tmp = dst[dstoffsetG] - src[srcoffsetG];
1175-
dst[dstoffsetG] = (tmp >= 0 ? tmp : 0);
1176-
tmp = dst[dstoffsetB] - src[srcoffsetB];
1177-
dst[dstoffsetB] = (tmp >= 0 ? tmp : 0);
1178-
});
1170+
Sint32 tmp;
1171+
BLIT_BLEND_OP(BLEND_SUB(tmp, sR, sG, sB, sA, dR, dG, dB, dA), {
1172+
tmp = dst[dstoffsetR] - src[srcoffsetR];
1173+
dst[dstoffsetR] = (tmp >= 0 ? tmp : 0);
1174+
tmp = dst[dstoffsetG] - src[srcoffsetG];
1175+
dst[dstoffsetG] = (tmp >= 0 ? tmp : 0);
1176+
tmp = dst[dstoffsetB] - src[srcoffsetB];
1177+
dst[dstoffsetB] = (tmp >= 0 ? tmp : 0);
1178+
});
11791179
}
11801180

11811181
static void
11821182
blit_blend_mul(SDL_BlitInfo *info)
11831183
{
1184-
BLIT_BLEND_OP(
1185-
mul, Sint32 tmp, BLEND_MULT(sR, sG, sB, sA, dR, dG, dB, dA), {
1186-
tmp = ((dst[dstoffsetR] && src[srcoffsetR])
1187-
? ((dst[dstoffsetR] * src[srcoffsetR]) + 255) >> 8
1188-
: 0);
1189-
dst[dstoffsetR] = (tmp <= 255 ? tmp : 255);
1190-
tmp = ((dst[dstoffsetG] && src[srcoffsetG])
1191-
? ((dst[dstoffsetG] * src[srcoffsetG]) + 255) >> 8
1192-
: 0);
1193-
dst[dstoffsetG] = (tmp <= 255 ? tmp : 255);
1194-
tmp = ((dst[dstoffsetB] && src[srcoffsetB])
1195-
? ((dst[dstoffsetB] * src[srcoffsetB]) + 255) >> 8
1196-
: 0);
1197-
dst[dstoffsetB] = (tmp <= 255 ? tmp : 255);
1198-
});
1184+
Sint32 tmp;
1185+
BLIT_BLEND_OP(BLEND_MULT(sR, sG, sB, sA, dR, dG, dB, dA), {
1186+
tmp = ((dst[dstoffsetR] && src[srcoffsetR])
1187+
? ((dst[dstoffsetR] * src[srcoffsetR]) + 255) >> 8
1188+
: 0);
1189+
dst[dstoffsetR] = (tmp <= 255 ? tmp : 255);
1190+
tmp = ((dst[dstoffsetG] && src[srcoffsetG])
1191+
? ((dst[dstoffsetG] * src[srcoffsetG]) + 255) >> 8
1192+
: 0);
1193+
dst[dstoffsetG] = (tmp <= 255 ? tmp : 255);
1194+
tmp = ((dst[dstoffsetB] && src[srcoffsetB])
1195+
? ((dst[dstoffsetB] * src[srcoffsetB]) + 255) >> 8
1196+
: 0);
1197+
dst[dstoffsetB] = (tmp <= 255 ? tmp : 255);
1198+
});
11991199
}
12001200

12011201
static void
12021202
blit_blend_min(SDL_BlitInfo *info)
12031203
{
1204-
BLIT_BLEND_OP(min, , BLEND_MIN(sR, sG, sB, sA, dR, dG, dB, dA), {
1204+
BLIT_BLEND_OP(BLEND_MIN(sR, sG, sB, sA, dR, dG, dB, dA), {
12051205
if (src[srcoffsetR] < dst[dstoffsetR]) {
12061206
dst[dstoffsetR] = src[srcoffsetR];
12071207
}
@@ -1217,7 +1217,7 @@ blit_blend_min(SDL_BlitInfo *info)
12171217
static void
12181218
blit_blend_max(SDL_BlitInfo *info)
12191219
{
1220-
BLIT_BLEND_OP(min, , BLEND_MAX(sR, sG, sB, sA, dR, dG, dB, dA), {
1220+
BLIT_BLEND_OP(BLEND_MAX(sR, sG, sB, sA, dR, dG, dB, dA), {
12211221
if (src[srcoffsetR] > dst[dstoffsetR]) {
12221222
dst[dstoffsetR] = src[srcoffsetR];
12231223
}
@@ -1232,15 +1232,15 @@ blit_blend_max(SDL_BlitInfo *info)
12321232

12331233
/* --------------------------------------------------------- */
12341234

1235-
#define SETUP_ALPHABLIT() \
1236-
SETUP_BASE() \
1235+
#define SETUP_ALPHABLIT \
1236+
SETUP_BASE \
12371237
Uint32 dRi, dGi, dBi, dAi, sRi, sGi, sBi; \
12381238
int alpha = info->src_blanket_alpha;
12391239

12401240
static void
12411241
alphablit_alpha(SDL_BlitInfo *info)
12421242
{
1243-
SETUP_ALPHABLIT()
1243+
SETUP_ALPHABLIT
12441244
Uint32 sAi;
12451245

12461246
if (srcbpp == 1) {
@@ -1334,7 +1334,7 @@ alphablit_alpha(SDL_BlitInfo *info)
13341334
static void
13351335
alphablit_colorkey(SDL_BlitInfo *info)
13361336
{
1337-
SETUP_ALPHABLIT()
1337+
SETUP_ALPHABLIT
13381338
Uint32 sAi;
13391339
Uint32 colorkey = info->src_colorkey;
13401340

@@ -1463,7 +1463,7 @@ alphablit_colorkey(SDL_BlitInfo *info)
14631463
static void
14641464
alphablit_solid(SDL_BlitInfo *info)
14651465
{
1466-
SETUP_ALPHABLIT()
1466+
SETUP_ALPHABLIT
14671467

14681468
if (srcbpp == 1) {
14691469
if (dstbpp == 1) {

0 commit comments

Comments
 (0)