22 #include "../SDL_internal.h"
24 #if SDL_HAVE_BLIT_AUTO
43 while (info->
dst_h--) {
49 while (posy >= 0x10000L) {
54 if (posx >= 0x10000L) {
55 while (posx >= 0x10000L) {
78 while (info->
dst_h--) {
84 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
86 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
94 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
95 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
96 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
99 dstR = (srcR * dstR) / 255;
100 dstG = (srcG * dstG) / 255;
101 dstB = (srcB * dstB) / 255;
104 dstR = (srcR * dstR) / 255;
105 dstG = (srcG * dstG) / 255;
106 dstB = (srcB * dstB) / 255;
109 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
135 while (info->
dst_h--) {
141 while (posy >= 0x10000L) {
146 if (posx >= 0x10000L) {
147 while (posx >= 0x10000L) {
154 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
156 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
164 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
165 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
166 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
169 dstR = (srcR * dstR) / 255;
170 dstG = (srcG * dstG) / 255;
171 dstB = (srcB * dstB) / 255;
174 dstR = (srcR * dstR) / 255;
175 dstG = (srcG * dstG) / 255;
176 dstB = (srcB * dstB) / 255;
179 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
192 const Uint32 modulateR = info->
r;
193 const Uint32 modulateG = info->
g;
194 const Uint32 modulateB = info->
b;
198 while (info->
dst_h--) {
206 R = (R * modulateR) / 255;
207 G = (
G * modulateG) / 255;
208 B = (B * modulateB) / 255;
210 pixel = (R << 16) | (
G << 8) | B;
223 const Uint32 modulateR = info->
r;
224 const Uint32 modulateG = info->
g;
225 const Uint32 modulateB = info->
b;
237 while (info->
dst_h--) {
243 while (posy >= 0x10000L) {
248 if (posx >= 0x10000L) {
249 while (posx >= 0x10000L) {
258 R = (R * modulateR) / 255;
259 G = (
G * modulateG) / 255;
260 B = (B * modulateB) / 255;
262 pixel = (R << 16) | (
G << 8) | B;
275 const Uint32 modulateR = info->
r;
276 const Uint32 modulateG = info->
g;
277 const Uint32 modulateB = info->
b;
278 const Uint32 modulateA = info->
a;
285 while (info->
dst_h--) {
291 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
293 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
295 srcR = (srcR * modulateR) / 255;
296 srcG = (srcG * modulateG) / 255;
297 srcB = (srcB * modulateB) / 255;
302 srcR = (srcR * srcA) / 255;
303 srcG = (srcG * srcA) / 255;
304 srcB = (srcB * srcA) / 255;
309 dstR = srcR + ((255 - srcA) * dstR) / 255;
310 dstG = srcG + ((255 - srcA) * dstG) / 255;
311 dstB = srcB + ((255 - srcA) * dstB) / 255;
314 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
315 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
316 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
319 dstR = (srcR * dstR) / 255;
320 dstG = (srcG * dstG) / 255;
321 dstB = (srcB * dstB) / 255;
324 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
325 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
326 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
329 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
342 const Uint32 modulateR = info->
r;
343 const Uint32 modulateG = info->
g;
344 const Uint32 modulateB = info->
b;
345 const Uint32 modulateA = info->
a;
360 while (info->
dst_h--) {
366 while (posy >= 0x10000L) {
371 if (posx >= 0x10000L) {
372 while (posx >= 0x10000L) {
379 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
381 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
383 srcR = (srcR * modulateR) / 255;
384 srcG = (srcG * modulateG) / 255;
385 srcB = (srcB * modulateB) / 255;
390 srcR = (srcR * srcA) / 255;
391 srcG = (srcG * srcA) / 255;
392 srcB = (srcB * srcA) / 255;
397 dstR = srcR + ((255 - srcA) * dstR) / 255;
398 dstG = srcG + ((255 - srcA) * dstG) / 255;
399 dstB = srcB + ((255 - srcA) * dstB) / 255;
402 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
403 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
404 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
407 dstR = (srcR * dstR) / 255;
408 dstG = (srcG * dstG) / 255;
409 dstB = (srcB * dstB) / 255;
412 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
413 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
414 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
417 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
440 while (info->
dst_h--) {
446 while (posy >= 0x10000L) {
451 if (posx >= 0x10000L) {
452 while (posx >= 0x10000L) {
460 pixel = (B << 16) | (
G << 8) | R;
478 while (info->
dst_h--) {
484 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
486 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
494 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
495 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
496 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
499 dstR = (srcR * dstR) / 255;
500 dstG = (srcG * dstG) / 255;
501 dstB = (srcB * dstB) / 255;
504 dstR = (srcR * dstR) / 255;
505 dstG = (srcG * dstG) / 255;
506 dstB = (srcB * dstB) / 255;
509 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
535 while (info->
dst_h--) {
541 while (posy >= 0x10000L) {
546 if (posx >= 0x10000L) {
547 while (posx >= 0x10000L) {
554 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
556 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
564 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
565 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
566 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
569 dstR = (srcR * dstR) / 255;
570 dstG = (srcG * dstG) / 255;
571 dstB = (srcB * dstB) / 255;
574 dstR = (srcR * dstR) / 255;
575 dstG = (srcG * dstG) / 255;
576 dstB = (srcB * dstB) / 255;
579 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
592 const Uint32 modulateR = info->
r;
593 const Uint32 modulateG = info->
g;
594 const Uint32 modulateB = info->
b;
598 while (info->
dst_h--) {
606 R = (R * modulateR) / 255;
607 G = (
G * modulateG) / 255;
608 B = (B * modulateB) / 255;
610 pixel = (B << 16) | (
G << 8) | R;
623 const Uint32 modulateR = info->
r;
624 const Uint32 modulateG = info->
g;
625 const Uint32 modulateB = info->
b;
637 while (info->
dst_h--) {
643 while (posy >= 0x10000L) {
648 if (posx >= 0x10000L) {
649 while (posx >= 0x10000L) {
658 R = (R * modulateR) / 255;
659 G = (
G * modulateG) / 255;
660 B = (B * modulateB) / 255;
662 pixel = (B << 16) | (
G << 8) | R;
675 const Uint32 modulateR = info->
r;
676 const Uint32 modulateG = info->
g;
677 const Uint32 modulateB = info->
b;
678 const Uint32 modulateA = info->
a;
685 while (info->
dst_h--) {
691 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
693 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
695 srcR = (srcR * modulateR) / 255;
696 srcG = (srcG * modulateG) / 255;
697 srcB = (srcB * modulateB) / 255;
702 srcR = (srcR * srcA) / 255;
703 srcG = (srcG * srcA) / 255;
704 srcB = (srcB * srcA) / 255;
709 dstR = srcR + ((255 - srcA) * dstR) / 255;
710 dstG = srcG + ((255 - srcA) * dstG) / 255;
711 dstB = srcB + ((255 - srcA) * dstB) / 255;
714 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
715 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
716 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
719 dstR = (srcR * dstR) / 255;
720 dstG = (srcG * dstG) / 255;
721 dstB = (srcB * dstB) / 255;
724 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
725 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
726 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
729 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
742 const Uint32 modulateR = info->
r;
743 const Uint32 modulateG = info->
g;
744 const Uint32 modulateB = info->
b;
745 const Uint32 modulateA = info->
a;
760 while (info->
dst_h--) {
766 while (posy >= 0x10000L) {
771 if (posx >= 0x10000L) {
772 while (posx >= 0x10000L) {
779 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
781 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
783 srcR = (srcR * modulateR) / 255;
784 srcG = (srcG * modulateG) / 255;
785 srcB = (srcB * modulateB) / 255;
790 srcR = (srcR * srcA) / 255;
791 srcG = (srcG * srcA) / 255;
792 srcB = (srcB * srcA) / 255;
797 dstR = srcR + ((255 - srcA) * dstR) / 255;
798 dstG = srcG + ((255 - srcA) * dstG) / 255;
799 dstB = srcB + ((255 - srcA) * dstB) / 255;
802 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
803 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
804 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
807 dstR = (srcR * dstR) / 255;
808 dstG = (srcG * dstG) / 255;
809 dstB = (srcB * dstB) / 255;
812 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
813 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
814 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
817 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
841 while (info->
dst_h--) {
847 while (posy >= 0x10000L) {
852 if (posx >= 0x10000L) {
853 while (posx >= 0x10000L) {
861 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
877 Uint32 dstR, dstG, dstB, dstA;
879 while (info->
dst_h--) {
885 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
887 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
896 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
897 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
898 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
901 dstR = (srcR * dstR) / 255;
902 dstG = (srcG * dstG) / 255;
903 dstB = (srcB * dstB) / 255;
906 dstR = (srcR * dstR) / 255;
907 dstG = (srcG * dstG) / 255;
908 dstB = (srcB * dstB) / 255;
912 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
928 Uint32 dstR, dstG, dstB, dstA;
938 while (info->
dst_h--) {
944 while (posy >= 0x10000L) {
949 if (posx >= 0x10000L) {
950 while (posx >= 0x10000L) {
957 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
959 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
968 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
969 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
970 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
973 dstR = (srcR * dstR) / 255;
974 dstG = (srcG * dstG) / 255;
975 dstB = (srcB * dstB) / 255;
978 dstR = (srcR * dstR) / 255;
979 dstG = (srcG * dstG) / 255;
980 dstB = (srcB * dstB) / 255;
984 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
997 const Uint32 modulateR = info->
r;
998 const Uint32 modulateG = info->
g;
999 const Uint32 modulateB = info->
b;
1000 const Uint32 modulateA = info->
a;
1005 while (info->
dst_h--) {
1013 R = (R * modulateR) / 255;
1014 G = (
G * modulateG) / 255;
1015 B = (B * modulateB) / 255;
1017 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
1030 const Uint32 modulateR = info->
r;
1031 const Uint32 modulateG = info->
g;
1032 const Uint32 modulateB = info->
b;
1033 const Uint32 modulateA = info->
a;
1046 while (info->
dst_h--) {
1052 while (posy >= 0x10000L) {
1057 if (posx >= 0x10000L) {
1058 while (posx >= 0x10000L) {
1067 R = (R * modulateR) / 255;
1068 G = (
G * modulateG) / 255;
1069 B = (B * modulateB) / 255;
1071 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
1084 const Uint32 modulateR = info->
r;
1085 const Uint32 modulateG = info->
g;
1086 const Uint32 modulateB = info->
b;
1087 const Uint32 modulateA = info->
a;
1092 Uint32 dstR, dstG, dstB, dstA;
1094 while (info->
dst_h--) {
1100 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
1102 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
1104 srcR = (srcR * modulateR) / 255;
1105 srcG = (srcG * modulateG) / 255;
1106 srcB = (srcB * modulateB) / 255;
1111 srcR = (srcR * srcA) / 255;
1112 srcG = (srcG * srcA) / 255;
1113 srcB = (srcB * srcA) / 255;
1118 dstR = srcR + ((255 - srcA) * dstR) / 255;
1119 dstG = srcG + ((255 - srcA) * dstG) / 255;
1120 dstB = srcB + ((255 - srcA) * dstB) / 255;
1121 dstA = srcA + ((255 - srcA) * dstA) / 255;
1124 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1125 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1126 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1129 dstR = (srcR * dstR) / 255;
1130 dstG = (srcG * dstG) / 255;
1131 dstB = (srcB * dstB) / 255;
1134 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
1135 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
1136 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
1137 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
1140 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
1153 const Uint32 modulateR = info->
r;
1154 const Uint32 modulateG = info->
g;
1155 const Uint32 modulateB = info->
b;
1156 const Uint32 modulateA = info->
a;
1161 Uint32 dstR, dstG, dstB, dstA;
1171 while (info->
dst_h--) {
1177 while (posy >= 0x10000L) {
1182 if (posx >= 0x10000L) {
1183 while (posx >= 0x10000L) {
1190 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel;
1192 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
1194 srcR = (srcR * modulateR) / 255;
1195 srcG = (srcG * modulateG) / 255;
1196 srcB = (srcB * modulateB) / 255;
1201 srcR = (srcR * srcA) / 255;
1202 srcG = (srcG * srcA) / 255;
1203 srcB = (srcB * srcA) / 255;
1208 dstR = srcR + ((255 - srcA) * dstR) / 255;
1209 dstG = srcG + ((255 - srcA) * dstG) / 255;
1210 dstB = srcB + ((255 - srcA) * dstB) / 255;
1211 dstA = srcA + ((255 - srcA) * dstA) / 255;
1214 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1215 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1216 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1219 dstR = (srcR * dstR) / 255;
1220 dstG = (srcG * dstG) / 255;
1221 dstB = (srcB * dstB) / 255;
1224 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
1225 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
1226 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
1227 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
1230 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
1253 while (info->
dst_h--) {
1259 while (posy >= 0x10000L) {
1264 if (posx >= 0x10000L) {
1265 while (posx >= 0x10000L) {
1273 pixel = (R << 16) | (
G << 8) | B;
1291 while (info->
dst_h--) {
1297 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1299 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
1307 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1308 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1309 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1312 dstR = (srcR * dstR) / 255;
1313 dstG = (srcG * dstG) / 255;
1314 dstB = (srcB * dstB) / 255;
1317 dstR = (srcR * dstR) / 255;
1318 dstG = (srcG * dstG) / 255;
1319 dstB = (srcB * dstB) / 255;
1322 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
1348 while (info->
dst_h--) {
1354 while (posy >= 0x10000L) {
1359 if (posx >= 0x10000L) {
1360 while (posx >= 0x10000L) {
1367 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1369 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
1377 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1378 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1379 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1382 dstR = (srcR * dstR) / 255;
1383 dstG = (srcG * dstG) / 255;
1384 dstB = (srcB * dstB) / 255;
1387 dstR = (srcR * dstR) / 255;
1388 dstG = (srcG * dstG) / 255;
1389 dstB = (srcB * dstB) / 255;
1392 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
1405 const Uint32 modulateR = info->
r;
1406 const Uint32 modulateG = info->
g;
1407 const Uint32 modulateB = info->
b;
1411 while (info->
dst_h--) {
1419 R = (R * modulateR) / 255;
1420 G = (
G * modulateG) / 255;
1421 B = (B * modulateB) / 255;
1423 pixel = (R << 16) | (
G << 8) | B;
1436 const Uint32 modulateR = info->
r;
1437 const Uint32 modulateG = info->
g;
1438 const Uint32 modulateB = info->
b;
1450 while (info->
dst_h--) {
1456 while (posy >= 0x10000L) {
1461 if (posx >= 0x10000L) {
1462 while (posx >= 0x10000L) {
1471 R = (R * modulateR) / 255;
1472 G = (
G * modulateG) / 255;
1473 B = (B * modulateB) / 255;
1475 pixel = (R << 16) | (
G << 8) | B;
1488 const Uint32 modulateR = info->
r;
1489 const Uint32 modulateG = info->
g;
1490 const Uint32 modulateB = info->
b;
1491 const Uint32 modulateA = info->
a;
1498 while (info->
dst_h--) {
1504 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1506 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
1508 srcR = (srcR * modulateR) / 255;
1509 srcG = (srcG * modulateG) / 255;
1510 srcB = (srcB * modulateB) / 255;
1515 srcR = (srcR * srcA) / 255;
1516 srcG = (srcG * srcA) / 255;
1517 srcB = (srcB * srcA) / 255;
1522 dstR = srcR + ((255 - srcA) * dstR) / 255;
1523 dstG = srcG + ((255 - srcA) * dstG) / 255;
1524 dstB = srcB + ((255 - srcA) * dstB) / 255;
1527 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1528 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1529 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1532 dstR = (srcR * dstR) / 255;
1533 dstG = (srcG * dstG) / 255;
1534 dstB = (srcB * dstB) / 255;
1537 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
1538 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
1539 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
1542 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
1555 const Uint32 modulateR = info->
r;
1556 const Uint32 modulateG = info->
g;
1557 const Uint32 modulateB = info->
b;
1558 const Uint32 modulateA = info->
a;
1573 while (info->
dst_h--) {
1579 while (posy >= 0x10000L) {
1584 if (posx >= 0x10000L) {
1585 while (posx >= 0x10000L) {
1592 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1594 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
1596 srcR = (srcR * modulateR) / 255;
1597 srcG = (srcG * modulateG) / 255;
1598 srcB = (srcB * modulateB) / 255;
1603 srcR = (srcR * srcA) / 255;
1604 srcG = (srcG * srcA) / 255;
1605 srcB = (srcB * srcA) / 255;
1610 dstR = srcR + ((255 - srcA) * dstR) / 255;
1611 dstG = srcG + ((255 - srcA) * dstG) / 255;
1612 dstB = srcB + ((255 - srcA) * dstB) / 255;
1615 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1616 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1617 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1620 dstR = (srcR * dstR) / 255;
1621 dstG = (srcG * dstG) / 255;
1622 dstB = (srcB * dstB) / 255;
1625 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
1626 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
1627 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
1630 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
1651 while (info->
dst_h--) {
1657 while (posy >= 0x10000L) {
1662 if (posx >= 0x10000L) {
1663 while (posx >= 0x10000L) {
1686 while (info->
dst_h--) {
1692 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1694 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
1702 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1703 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1704 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1707 dstR = (srcR * dstR) / 255;
1708 dstG = (srcG * dstG) / 255;
1709 dstB = (srcB * dstB) / 255;
1712 dstR = (srcR * dstR) / 255;
1713 dstG = (srcG * dstG) / 255;
1714 dstB = (srcB * dstB) / 255;
1717 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
1743 while (info->
dst_h--) {
1749 while (posy >= 0x10000L) {
1754 if (posx >= 0x10000L) {
1755 while (posx >= 0x10000L) {
1762 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1764 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
1772 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1773 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1774 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1777 dstR = (srcR * dstR) / 255;
1778 dstG = (srcG * dstG) / 255;
1779 dstB = (srcB * dstB) / 255;
1782 dstR = (srcR * dstR) / 255;
1783 dstG = (srcG * dstG) / 255;
1784 dstB = (srcB * dstB) / 255;
1787 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
1800 const Uint32 modulateR = info->
r;
1801 const Uint32 modulateG = info->
g;
1802 const Uint32 modulateB = info->
b;
1806 while (info->
dst_h--) {
1814 R = (R * modulateR) / 255;
1815 G = (
G * modulateG) / 255;
1816 B = (B * modulateB) / 255;
1818 pixel = (B << 16) | (
G << 8) | R;
1831 const Uint32 modulateR = info->
r;
1832 const Uint32 modulateG = info->
g;
1833 const Uint32 modulateB = info->
b;
1845 while (info->
dst_h--) {
1851 while (posy >= 0x10000L) {
1856 if (posx >= 0x10000L) {
1857 while (posx >= 0x10000L) {
1866 R = (R * modulateR) / 255;
1867 G = (
G * modulateG) / 255;
1868 B = (B * modulateB) / 255;
1870 pixel = (B << 16) | (
G << 8) | R;
1883 const Uint32 modulateR = info->
r;
1884 const Uint32 modulateG = info->
g;
1885 const Uint32 modulateB = info->
b;
1886 const Uint32 modulateA = info->
a;
1893 while (info->
dst_h--) {
1899 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1901 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
1903 srcR = (srcR * modulateR) / 255;
1904 srcG = (srcG * modulateG) / 255;
1905 srcB = (srcB * modulateB) / 255;
1910 srcR = (srcR * srcA) / 255;
1911 srcG = (srcG * srcA) / 255;
1912 srcB = (srcB * srcA) / 255;
1917 dstR = srcR + ((255 - srcA) * dstR) / 255;
1918 dstG = srcG + ((255 - srcA) * dstG) / 255;
1919 dstB = srcB + ((255 - srcA) * dstB) / 255;
1922 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
1923 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
1924 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
1927 dstR = (srcR * dstR) / 255;
1928 dstG = (srcG * dstG) / 255;
1929 dstB = (srcB * dstB) / 255;
1932 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
1933 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
1934 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
1937 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
1950 const Uint32 modulateR = info->
r;
1951 const Uint32 modulateG = info->
g;
1952 const Uint32 modulateB = info->
b;
1953 const Uint32 modulateA = info->
a;
1968 while (info->
dst_h--) {
1974 while (posy >= 0x10000L) {
1979 if (posx >= 0x10000L) {
1980 while (posx >= 0x10000L) {
1987 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
1989 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
1991 srcR = (srcR * modulateR) / 255;
1992 srcG = (srcG * modulateG) / 255;
1993 srcB = (srcB * modulateB) / 255;
1998 srcR = (srcR * srcA) / 255;
1999 srcG = (srcG * srcA) / 255;
2000 srcB = (srcB * srcA) / 255;
2005 dstR = srcR + ((255 - srcA) * dstR) / 255;
2006 dstG = srcG + ((255 - srcA) * dstG) / 255;
2007 dstB = srcB + ((255 - srcA) * dstB) / 255;
2010 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2011 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2012 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2015 dstR = (srcR * dstR) / 255;
2016 dstG = (srcG * dstG) / 255;
2017 dstB = (srcB * dstB) / 255;
2020 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2021 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2022 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2025 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
2049 while (info->
dst_h--) {
2055 while (posy >= 0x10000L) {
2060 if (posx >= 0x10000L) {
2061 while (posx >= 0x10000L) {
2069 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
2085 Uint32 dstR, dstG, dstB, dstA;
2087 while (info->
dst_h--) {
2093 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
2095 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
2104 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2105 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2106 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2109 dstR = (srcR * dstR) / 255;
2110 dstG = (srcG * dstG) / 255;
2111 dstB = (srcB * dstB) / 255;
2114 dstR = (srcR * dstR) / 255;
2115 dstG = (srcG * dstG) / 255;
2116 dstB = (srcB * dstB) / 255;
2120 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
2136 Uint32 dstR, dstG, dstB, dstA;
2146 while (info->
dst_h--) {
2152 while (posy >= 0x10000L) {
2157 if (posx >= 0x10000L) {
2158 while (posx >= 0x10000L) {
2165 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
2167 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
2176 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2177 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2178 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2181 dstR = (srcR * dstR) / 255;
2182 dstG = (srcG * dstG) / 255;
2183 dstB = (srcB * dstB) / 255;
2186 dstR = (srcR * dstR) / 255;
2187 dstG = (srcG * dstG) / 255;
2188 dstB = (srcB * dstB) / 255;
2192 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
2205 const Uint32 modulateR = info->
r;
2206 const Uint32 modulateG = info->
g;
2207 const Uint32 modulateB = info->
b;
2208 const Uint32 modulateA = info->
a;
2213 while (info->
dst_h--) {
2221 R = (R * modulateR) / 255;
2222 G = (
G * modulateG) / 255;
2223 B = (B * modulateB) / 255;
2225 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
2238 const Uint32 modulateR = info->
r;
2239 const Uint32 modulateG = info->
g;
2240 const Uint32 modulateB = info->
b;
2241 const Uint32 modulateA = info->
a;
2254 while (info->
dst_h--) {
2260 while (posy >= 0x10000L) {
2265 if (posx >= 0x10000L) {
2266 while (posx >= 0x10000L) {
2275 R = (R * modulateR) / 255;
2276 G = (
G * modulateG) / 255;
2277 B = (B * modulateB) / 255;
2279 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
2292 const Uint32 modulateR = info->
r;
2293 const Uint32 modulateG = info->
g;
2294 const Uint32 modulateB = info->
b;
2295 const Uint32 modulateA = info->
a;
2300 Uint32 dstR, dstG, dstB, dstA;
2302 while (info->
dst_h--) {
2308 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
2310 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
2312 srcR = (srcR * modulateR) / 255;
2313 srcG = (srcG * modulateG) / 255;
2314 srcB = (srcB * modulateB) / 255;
2319 srcR = (srcR * srcA) / 255;
2320 srcG = (srcG * srcA) / 255;
2321 srcB = (srcB * srcA) / 255;
2326 dstR = srcR + ((255 - srcA) * dstR) / 255;
2327 dstG = srcG + ((255 - srcA) * dstG) / 255;
2328 dstB = srcB + ((255 - srcA) * dstB) / 255;
2329 dstA = srcA + ((255 - srcA) * dstA) / 255;
2332 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2333 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2334 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2337 dstR = (srcR * dstR) / 255;
2338 dstG = (srcG * dstG) / 255;
2339 dstB = (srcB * dstB) / 255;
2342 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2343 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2344 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2345 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
2348 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
2361 const Uint32 modulateR = info->
r;
2362 const Uint32 modulateG = info->
g;
2363 const Uint32 modulateB = info->
b;
2364 const Uint32 modulateA = info->
a;
2369 Uint32 dstR, dstG, dstB, dstA;
2379 while (info->
dst_h--) {
2385 while (posy >= 0x10000L) {
2390 if (posx >= 0x10000L) {
2391 while (posx >= 0x10000L) {
2398 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel;
2400 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
2402 srcR = (srcR * modulateR) / 255;
2403 srcG = (srcG * modulateG) / 255;
2404 srcB = (srcB * modulateB) / 255;
2409 srcR = (srcR * srcA) / 255;
2410 srcG = (srcG * srcA) / 255;
2411 srcB = (srcB * srcA) / 255;
2416 dstR = srcR + ((255 - srcA) * dstR) / 255;
2417 dstG = srcG + ((255 - srcA) * dstG) / 255;
2418 dstB = srcB + ((255 - srcA) * dstB) / 255;
2419 dstA = srcA + ((255 - srcA) * dstA) / 255;
2422 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2423 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2424 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2427 dstR = (srcR * dstR) / 255;
2428 dstG = (srcG * dstG) / 255;
2429 dstB = (srcB * dstB) / 255;
2432 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2433 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2434 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2435 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
2438 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
2461 while (info->
dst_h--) {
2467 while (posy >= 0x10000L) {
2472 if (posx >= 0x10000L) {
2473 while (posx >= 0x10000L) {
2481 pixel = (R << 16) | (
G << 8) | B;
2495 Uint32 srcR, srcG, srcB, srcA;
2499 while (info->
dst_h--) {
2505 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
2507 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
2511 srcR = (srcR * srcA) / 255;
2512 srcG = (srcG * srcA) / 255;
2513 srcB = (srcB * srcA) / 255;
2518 dstR = srcR + ((255 - srcA) * dstR) / 255;
2519 dstG = srcG + ((255 - srcA) * dstG) / 255;
2520 dstB = srcB + ((255 - srcA) * dstB) / 255;
2523 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2524 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2525 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2528 dstR = (srcR * dstR) / 255;
2529 dstG = (srcG * dstG) / 255;
2530 dstB = (srcB * dstB) / 255;
2533 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2534 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2535 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2538 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
2552 Uint32 srcR, srcG, srcB, srcA;
2564 while (info->
dst_h--) {
2570 while (posy >= 0x10000L) {
2575 if (posx >= 0x10000L) {
2576 while (posx >= 0x10000L) {
2583 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
2585 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
2589 srcR = (srcR * srcA) / 255;
2590 srcG = (srcG * srcA) / 255;
2591 srcB = (srcB * srcA) / 255;
2596 dstR = srcR + ((255 - srcA) * dstR) / 255;
2597 dstG = srcG + ((255 - srcA) * dstG) / 255;
2598 dstB = srcB + ((255 - srcA) * dstB) / 255;
2601 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2602 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2603 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2606 dstR = (srcR * dstR) / 255;
2607 dstG = (srcG * dstG) / 255;
2608 dstB = (srcB * dstB) / 255;
2611 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2612 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2613 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2616 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
2629 const Uint32 modulateR = info->
r;
2630 const Uint32 modulateG = info->
g;
2631 const Uint32 modulateB = info->
b;
2635 while (info->
dst_h--) {
2643 R = (R * modulateR) / 255;
2644 G = (
G * modulateG) / 255;
2645 B = (B * modulateB) / 255;
2647 pixel = (R << 16) | (
G << 8) | B;
2660 const Uint32 modulateR = info->
r;
2661 const Uint32 modulateG = info->
g;
2662 const Uint32 modulateB = info->
b;
2674 while (info->
dst_h--) {
2680 while (posy >= 0x10000L) {
2685 if (posx >= 0x10000L) {
2686 while (posx >= 0x10000L) {
2695 R = (R * modulateR) / 255;
2696 G = (
G * modulateG) / 255;
2697 B = (B * modulateB) / 255;
2699 pixel = (R << 16) | (
G << 8) | B;
2712 const Uint32 modulateR = info->
r;
2713 const Uint32 modulateG = info->
g;
2714 const Uint32 modulateB = info->
b;
2715 const Uint32 modulateA = info->
a;
2717 Uint32 srcR, srcG, srcB, srcA;
2721 while (info->
dst_h--) {
2727 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
2729 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
2731 srcR = (srcR * modulateR) / 255;
2732 srcG = (srcG * modulateG) / 255;
2733 srcB = (srcB * modulateB) / 255;
2736 srcA = (srcA * modulateA) / 255;
2741 srcR = (srcR * srcA) / 255;
2742 srcG = (srcG * srcA) / 255;
2743 srcB = (srcB * srcA) / 255;
2748 dstR = srcR + ((255 - srcA) * dstR) / 255;
2749 dstG = srcG + ((255 - srcA) * dstG) / 255;
2750 dstB = srcB + ((255 - srcA) * dstB) / 255;
2753 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2754 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2755 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2758 dstR = (srcR * dstR) / 255;
2759 dstG = (srcG * dstG) / 255;
2760 dstB = (srcB * dstB) / 255;
2763 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2764 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2765 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2768 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
2781 const Uint32 modulateR = info->
r;
2782 const Uint32 modulateG = info->
g;
2783 const Uint32 modulateB = info->
b;
2784 const Uint32 modulateA = info->
a;
2786 Uint32 srcR, srcG, srcB, srcA;
2798 while (info->
dst_h--) {
2804 while (posy >= 0x10000L) {
2809 if (posx >= 0x10000L) {
2810 while (posx >= 0x10000L) {
2817 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
2819 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
2821 srcR = (srcR * modulateR) / 255;
2822 srcG = (srcG * modulateG) / 255;
2823 srcB = (srcB * modulateB) / 255;
2826 srcA = (srcA * modulateA) / 255;
2831 srcR = (srcR * srcA) / 255;
2832 srcG = (srcG * srcA) / 255;
2833 srcB = (srcB * srcA) / 255;
2838 dstR = srcR + ((255 - srcA) * dstR) / 255;
2839 dstG = srcG + ((255 - srcA) * dstG) / 255;
2840 dstB = srcB + ((255 - srcA) * dstB) / 255;
2843 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2844 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2845 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2848 dstR = (srcR * dstR) / 255;
2849 dstG = (srcG * dstG) / 255;
2850 dstB = (srcB * dstB) / 255;
2853 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2854 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2855 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2858 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
2881 while (info->
dst_h--) {
2887 while (posy >= 0x10000L) {
2892 if (posx >= 0x10000L) {
2893 while (posx >= 0x10000L) {
2901 pixel = (B << 16) | (
G << 8) | R;
2915 Uint32 srcR, srcG, srcB, srcA;
2919 while (info->
dst_h--) {
2925 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
2927 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
2931 srcR = (srcR * srcA) / 255;
2932 srcG = (srcG * srcA) / 255;
2933 srcB = (srcB * srcA) / 255;
2938 dstR = srcR + ((255 - srcA) * dstR) / 255;
2939 dstG = srcG + ((255 - srcA) * dstG) / 255;
2940 dstB = srcB + ((255 - srcA) * dstB) / 255;
2943 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
2944 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
2945 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
2948 dstR = (srcR * dstR) / 255;
2949 dstG = (srcG * dstG) / 255;
2950 dstB = (srcB * dstB) / 255;
2953 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
2954 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
2955 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
2958 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
2972 Uint32 srcR, srcG, srcB, srcA;
2984 while (info->
dst_h--) {
2990 while (posy >= 0x10000L) {
2995 if (posx >= 0x10000L) {
2996 while (posx >= 0x10000L) {
3003 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
3005 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
3009 srcR = (srcR * srcA) / 255;
3010 srcG = (srcG * srcA) / 255;
3011 srcB = (srcB * srcA) / 255;
3016 dstR = srcR + ((255 - srcA) * dstR) / 255;
3017 dstG = srcG + ((255 - srcA) * dstG) / 255;
3018 dstB = srcB + ((255 - srcA) * dstB) / 255;
3021 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3022 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3023 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3026 dstR = (srcR * dstR) / 255;
3027 dstG = (srcG * dstG) / 255;
3028 dstB = (srcB * dstB) / 255;
3031 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3032 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3033 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3036 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
3049 const Uint32 modulateR = info->
r;
3050 const Uint32 modulateG = info->
g;
3051 const Uint32 modulateB = info->
b;
3055 while (info->
dst_h--) {
3063 R = (R * modulateR) / 255;
3064 G = (
G * modulateG) / 255;
3065 B = (B * modulateB) / 255;
3067 pixel = (B << 16) | (
G << 8) | R;
3080 const Uint32 modulateR = info->
r;
3081 const Uint32 modulateG = info->
g;
3082 const Uint32 modulateB = info->
b;
3094 while (info->
dst_h--) {
3100 while (posy >= 0x10000L) {
3105 if (posx >= 0x10000L) {
3106 while (posx >= 0x10000L) {
3115 R = (R * modulateR) / 255;
3116 G = (
G * modulateG) / 255;
3117 B = (B * modulateB) / 255;
3119 pixel = (B << 16) | (
G << 8) | R;
3132 const Uint32 modulateR = info->
r;
3133 const Uint32 modulateG = info->
g;
3134 const Uint32 modulateB = info->
b;
3135 const Uint32 modulateA = info->
a;
3137 Uint32 srcR, srcG, srcB, srcA;
3141 while (info->
dst_h--) {
3147 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
3149 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
3151 srcR = (srcR * modulateR) / 255;
3152 srcG = (srcG * modulateG) / 255;
3153 srcB = (srcB * modulateB) / 255;
3156 srcA = (srcA * modulateA) / 255;
3161 srcR = (srcR * srcA) / 255;
3162 srcG = (srcG * srcA) / 255;
3163 srcB = (srcB * srcA) / 255;
3168 dstR = srcR + ((255 - srcA) * dstR) / 255;
3169 dstG = srcG + ((255 - srcA) * dstG) / 255;
3170 dstB = srcB + ((255 - srcA) * dstB) / 255;
3173 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3174 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3175 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3178 dstR = (srcR * dstR) / 255;
3179 dstG = (srcG * dstG) / 255;
3180 dstB = (srcB * dstB) / 255;
3183 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3184 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3185 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3188 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
3201 const Uint32 modulateR = info->
r;
3202 const Uint32 modulateG = info->
g;
3203 const Uint32 modulateB = info->
b;
3204 const Uint32 modulateA = info->
a;
3206 Uint32 srcR, srcG, srcB, srcA;
3218 while (info->
dst_h--) {
3224 while (posy >= 0x10000L) {
3229 if (posx >= 0x10000L) {
3230 while (posx >= 0x10000L) {
3237 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
3239 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
3241 srcR = (srcR * modulateR) / 255;
3242 srcG = (srcG * modulateG) / 255;
3243 srcB = (srcB * modulateB) / 255;
3246 srcA = (srcA * modulateA) / 255;
3251 srcR = (srcR * srcA) / 255;
3252 srcG = (srcG * srcA) / 255;
3253 srcB = (srcB * srcA) / 255;
3258 dstR = srcR + ((255 - srcA) * dstR) / 255;
3259 dstG = srcG + ((255 - srcA) * dstG) / 255;
3260 dstB = srcB + ((255 - srcA) * dstB) / 255;
3263 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3264 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3265 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3268 dstR = (srcR * dstR) / 255;
3269 dstG = (srcG * dstG) / 255;
3270 dstB = (srcB * dstB) / 255;
3273 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3274 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3275 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3278 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
3299 while (info->
dst_h--) {
3305 while (posy >= 0x10000L) {
3310 if (posx >= 0x10000L) {
3311 while (posx >= 0x10000L) {
3330 Uint32 srcR, srcG, srcB, srcA;
3332 Uint32 dstR, dstG, dstB, dstA;
3334 while (info->
dst_h--) {
3340 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
3342 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
3346 srcR = (srcR * srcA) / 255;
3347 srcG = (srcG * srcA) / 255;
3348 srcB = (srcB * srcA) / 255;
3353 dstR = srcR + ((255 - srcA) * dstR) / 255;
3354 dstG = srcG + ((255 - srcA) * dstG) / 255;
3355 dstB = srcB + ((255 - srcA) * dstB) / 255;
3356 dstA = srcA + ((255 - srcA) * dstA) / 255;
3359 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3360 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3361 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3364 dstR = (srcR * dstR) / 255;
3365 dstG = (srcG * dstG) / 255;
3366 dstB = (srcB * dstB) / 255;
3369 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3370 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3371 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3372 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
3375 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
3389 Uint32 srcR, srcG, srcB, srcA;
3391 Uint32 dstR, dstG, dstB, dstA;
3401 while (info->
dst_h--) {
3407 while (posy >= 0x10000L) {
3412 if (posx >= 0x10000L) {
3413 while (posx >= 0x10000L) {
3420 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
3422 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
3426 srcR = (srcR * srcA) / 255;
3427 srcG = (srcG * srcA) / 255;
3428 srcB = (srcB * srcA) / 255;
3433 dstR = srcR + ((255 - srcA) * dstR) / 255;
3434 dstG = srcG + ((255 - srcA) * dstG) / 255;
3435 dstB = srcB + ((255 - srcA) * dstB) / 255;
3436 dstA = srcA + ((255 - srcA) * dstA) / 255;
3439 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3440 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3441 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3444 dstR = (srcR * dstR) / 255;
3445 dstG = (srcG * dstG) / 255;
3446 dstB = (srcB * dstB) / 255;
3449 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3450 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3451 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3452 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
3455 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
3468 const Uint32 modulateR = info->
r;
3469 const Uint32 modulateG = info->
g;
3470 const Uint32 modulateB = info->
b;
3471 const Uint32 modulateA = info->
a;
3475 while (info->
dst_h--) {
3483 R = (R * modulateR) / 255;
3484 G = (
G * modulateG) / 255;
3485 B = (B * modulateB) / 255;
3488 A = (A * modulateA) / 255;
3490 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
3503 const Uint32 modulateR = info->
r;
3504 const Uint32 modulateG = info->
g;
3505 const Uint32 modulateB = info->
b;
3506 const Uint32 modulateA = info->
a;
3518 while (info->
dst_h--) {
3524 while (posy >= 0x10000L) {
3529 if (posx >= 0x10000L) {
3530 while (posx >= 0x10000L) {
3539 R = (R * modulateR) / 255;
3540 G = (
G * modulateG) / 255;
3541 B = (B * modulateB) / 255;
3544 A = (A * modulateA) / 255;
3546 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
3559 const Uint32 modulateR = info->
r;
3560 const Uint32 modulateG = info->
g;
3561 const Uint32 modulateB = info->
b;
3562 const Uint32 modulateA = info->
a;
3564 Uint32 srcR, srcG, srcB, srcA;
3566 Uint32 dstR, dstG, dstB, dstA;
3568 while (info->
dst_h--) {
3574 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
3576 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
3578 srcR = (srcR * modulateR) / 255;
3579 srcG = (srcG * modulateG) / 255;
3580 srcB = (srcB * modulateB) / 255;
3583 srcA = (srcA * modulateA) / 255;
3588 srcR = (srcR * srcA) / 255;
3589 srcG = (srcG * srcA) / 255;
3590 srcB = (srcB * srcA) / 255;
3595 dstR = srcR + ((255 - srcA) * dstR) / 255;
3596 dstG = srcG + ((255 - srcA) * dstG) / 255;
3597 dstB = srcB + ((255 - srcA) * dstB) / 255;
3598 dstA = srcA + ((255 - srcA) * dstA) / 255;
3601 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3602 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3603 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3606 dstR = (srcR * dstR) / 255;
3607 dstG = (srcG * dstG) / 255;
3608 dstB = (srcB * dstB) / 255;
3611 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3612 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3613 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3614 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
3617 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
3630 const Uint32 modulateR = info->
r;
3631 const Uint32 modulateG = info->
g;
3632 const Uint32 modulateB = info->
b;
3633 const Uint32 modulateA = info->
a;
3635 Uint32 srcR, srcG, srcB, srcA;
3637 Uint32 dstR, dstG, dstB, dstA;
3647 while (info->
dst_h--) {
3653 while (posy >= 0x10000L) {
3658 if (posx >= 0x10000L) {
3659 while (posx >= 0x10000L) {
3666 srcR = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcB = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
3668 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
3670 srcR = (srcR * modulateR) / 255;
3671 srcG = (srcG * modulateG) / 255;
3672 srcB = (srcB * modulateB) / 255;
3675 srcA = (srcA * modulateA) / 255;
3680 srcR = (srcR * srcA) / 255;
3681 srcG = (srcG * srcA) / 255;
3682 srcB = (srcB * srcA) / 255;
3687 dstR = srcR + ((255 - srcA) * dstR) / 255;
3688 dstG = srcG + ((255 - srcA) * dstG) / 255;
3689 dstB = srcB + ((255 - srcA) * dstB) / 255;
3690 dstA = srcA + ((255 - srcA) * dstA) / 255;
3693 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3694 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3695 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3698 dstR = (srcR * dstR) / 255;
3699 dstG = (srcG * dstG) / 255;
3700 dstB = (srcB * dstB) / 255;
3703 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3704 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3705 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3706 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
3709 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
3732 while (info->
dst_h--) {
3738 while (posy >= 0x10000L) {
3743 if (posx >= 0x10000L) {
3744 while (posx >= 0x10000L) {
3751 R = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); B = (
Uint8)(pixel >> 8);
3752 pixel = (R << 16) | (
G << 8) | B;
3766 Uint32 srcR, srcG, srcB, srcA;
3770 while (info->
dst_h--) {
3776 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
3778 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
3782 srcR = (srcR * srcA) / 255;
3783 srcG = (srcG * srcA) / 255;
3784 srcB = (srcB * srcA) / 255;
3789 dstR = srcR + ((255 - srcA) * dstR) / 255;
3790 dstG = srcG + ((255 - srcA) * dstG) / 255;
3791 dstB = srcB + ((255 - srcA) * dstB) / 255;
3794 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3795 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3796 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3799 dstR = (srcR * dstR) / 255;
3800 dstG = (srcG * dstG) / 255;
3801 dstB = (srcB * dstB) / 255;
3804 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3805 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3806 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3809 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
3823 Uint32 srcR, srcG, srcB, srcA;
3835 while (info->
dst_h--) {
3841 while (posy >= 0x10000L) {
3846 if (posx >= 0x10000L) {
3847 while (posx >= 0x10000L) {
3854 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
3856 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
3860 srcR = (srcR * srcA) / 255;
3861 srcG = (srcG * srcA) / 255;
3862 srcB = (srcB * srcA) / 255;
3867 dstR = srcR + ((255 - srcA) * dstR) / 255;
3868 dstG = srcG + ((255 - srcA) * dstG) / 255;
3869 dstB = srcB + ((255 - srcA) * dstB) / 255;
3872 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
3873 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
3874 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
3877 dstR = (srcR * dstR) / 255;
3878 dstG = (srcG * dstG) / 255;
3879 dstB = (srcB * dstB) / 255;
3882 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
3883 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
3884 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
3887 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
3900 const Uint32 modulateR = info->
r;
3901 const Uint32 modulateG = info->
g;
3902 const Uint32 modulateB = info->
b;
3906 while (info->
dst_h--) {
3912 R = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); B = (
Uint8)(pixel >> 8);
3914 R = (R * modulateR) / 255;
3915 G = (
G * modulateG) / 255;
3916 B = (B * modulateB) / 255;
3918 pixel = (R << 16) | (
G << 8) | B;
3931 const Uint32 modulateR = info->
r;
3932 const Uint32 modulateG = info->
g;
3933 const Uint32 modulateB = info->
b;
3945 while (info->
dst_h--) {
3951 while (posy >= 0x10000L) {
3956 if (posx >= 0x10000L) {
3957 while (posx >= 0x10000L) {
3964 R = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); B = (
Uint8)(pixel >> 8);
3966 R = (R * modulateR) / 255;
3967 G = (
G * modulateG) / 255;
3968 B = (B * modulateB) / 255;
3970 pixel = (R << 16) | (
G << 8) | B;
3983 const Uint32 modulateR = info->
r;
3984 const Uint32 modulateG = info->
g;
3985 const Uint32 modulateB = info->
b;
3986 const Uint32 modulateA = info->
a;
3988 Uint32 srcR, srcG, srcB, srcA;
3992 while (info->
dst_h--) {
3998 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4000 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
4002 srcR = (srcR * modulateR) / 255;
4003 srcG = (srcG * modulateG) / 255;
4004 srcB = (srcB * modulateB) / 255;
4007 srcA = (srcA * modulateA) / 255;
4012 srcR = (srcR * srcA) / 255;
4013 srcG = (srcG * srcA) / 255;
4014 srcB = (srcB * srcA) / 255;
4019 dstR = srcR + ((255 - srcA) * dstR) / 255;
4020 dstG = srcG + ((255 - srcA) * dstG) / 255;
4021 dstB = srcB + ((255 - srcA) * dstB) / 255;
4024 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4025 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4026 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4029 dstR = (srcR * dstR) / 255;
4030 dstG = (srcG * dstG) / 255;
4031 dstB = (srcB * dstB) / 255;
4034 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4035 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4036 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4039 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
4052 const Uint32 modulateR = info->
r;
4053 const Uint32 modulateG = info->
g;
4054 const Uint32 modulateB = info->
b;
4055 const Uint32 modulateA = info->
a;
4057 Uint32 srcR, srcG, srcB, srcA;
4069 while (info->
dst_h--) {
4075 while (posy >= 0x10000L) {
4080 if (posx >= 0x10000L) {
4081 while (posx >= 0x10000L) {
4088 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4090 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
4092 srcR = (srcR * modulateR) / 255;
4093 srcG = (srcG * modulateG) / 255;
4094 srcB = (srcB * modulateB) / 255;
4097 srcA = (srcA * modulateA) / 255;
4102 srcR = (srcR * srcA) / 255;
4103 srcG = (srcG * srcA) / 255;
4104 srcB = (srcB * srcA) / 255;
4109 dstR = srcR + ((255 - srcA) * dstR) / 255;
4110 dstG = srcG + ((255 - srcA) * dstG) / 255;
4111 dstB = srcB + ((255 - srcA) * dstB) / 255;
4114 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4115 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4116 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4119 dstR = (srcR * dstR) / 255;
4120 dstG = (srcG * dstG) / 255;
4121 dstB = (srcB * dstB) / 255;
4124 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4125 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4126 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4129 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
4152 while (info->
dst_h--) {
4158 while (posy >= 0x10000L) {
4163 if (posx >= 0x10000L) {
4164 while (posx >= 0x10000L) {
4171 R = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); B = (
Uint8)(pixel >> 8);
4172 pixel = (B << 16) | (
G << 8) | R;
4186 Uint32 srcR, srcG, srcB, srcA;
4190 while (info->
dst_h--) {
4196 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4198 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
4202 srcR = (srcR * srcA) / 255;
4203 srcG = (srcG * srcA) / 255;
4204 srcB = (srcB * srcA) / 255;
4209 dstR = srcR + ((255 - srcA) * dstR) / 255;
4210 dstG = srcG + ((255 - srcA) * dstG) / 255;
4211 dstB = srcB + ((255 - srcA) * dstB) / 255;
4214 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4215 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4216 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4219 dstR = (srcR * dstR) / 255;
4220 dstG = (srcG * dstG) / 255;
4221 dstB = (srcB * dstB) / 255;
4224 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4225 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4226 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4229 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
4243 Uint32 srcR, srcG, srcB, srcA;
4255 while (info->
dst_h--) {
4261 while (posy >= 0x10000L) {
4266 if (posx >= 0x10000L) {
4267 while (posx >= 0x10000L) {
4274 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4276 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
4280 srcR = (srcR * srcA) / 255;
4281 srcG = (srcG * srcA) / 255;
4282 srcB = (srcB * srcA) / 255;
4287 dstR = srcR + ((255 - srcA) * dstR) / 255;
4288 dstG = srcG + ((255 - srcA) * dstG) / 255;
4289 dstB = srcB + ((255 - srcA) * dstB) / 255;
4292 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4293 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4294 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4297 dstR = (srcR * dstR) / 255;
4298 dstG = (srcG * dstG) / 255;
4299 dstB = (srcB * dstB) / 255;
4302 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4303 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4304 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4307 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
4320 const Uint32 modulateR = info->
r;
4321 const Uint32 modulateG = info->
g;
4322 const Uint32 modulateB = info->
b;
4326 while (info->
dst_h--) {
4332 R = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); B = (
Uint8)(pixel >> 8);
4334 R = (R * modulateR) / 255;
4335 G = (
G * modulateG) / 255;
4336 B = (B * modulateB) / 255;
4338 pixel = (B << 16) | (
G << 8) | R;
4351 const Uint32 modulateR = info->
r;
4352 const Uint32 modulateG = info->
g;
4353 const Uint32 modulateB = info->
b;
4365 while (info->
dst_h--) {
4371 while (posy >= 0x10000L) {
4376 if (posx >= 0x10000L) {
4377 while (posx >= 0x10000L) {
4384 R = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); B = (
Uint8)(pixel >> 8);
4386 R = (R * modulateR) / 255;
4387 G = (
G * modulateG) / 255;
4388 B = (B * modulateB) / 255;
4390 pixel = (B << 16) | (
G << 8) | R;
4403 const Uint32 modulateR = info->
r;
4404 const Uint32 modulateG = info->
g;
4405 const Uint32 modulateB = info->
b;
4406 const Uint32 modulateA = info->
a;
4408 Uint32 srcR, srcG, srcB, srcA;
4412 while (info->
dst_h--) {
4418 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4420 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
4422 srcR = (srcR * modulateR) / 255;
4423 srcG = (srcG * modulateG) / 255;
4424 srcB = (srcB * modulateB) / 255;
4427 srcA = (srcA * modulateA) / 255;
4432 srcR = (srcR * srcA) / 255;
4433 srcG = (srcG * srcA) / 255;
4434 srcB = (srcB * srcA) / 255;
4439 dstR = srcR + ((255 - srcA) * dstR) / 255;
4440 dstG = srcG + ((255 - srcA) * dstG) / 255;
4441 dstB = srcB + ((255 - srcA) * dstB) / 255;
4444 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4445 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4446 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4449 dstR = (srcR * dstR) / 255;
4450 dstG = (srcG * dstG) / 255;
4451 dstB = (srcB * dstB) / 255;
4454 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4455 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4456 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4459 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
4472 const Uint32 modulateR = info->
r;
4473 const Uint32 modulateG = info->
g;
4474 const Uint32 modulateB = info->
b;
4475 const Uint32 modulateA = info->
a;
4477 Uint32 srcR, srcG, srcB, srcA;
4489 while (info->
dst_h--) {
4495 while (posy >= 0x10000L) {
4500 if (posx >= 0x10000L) {
4501 while (posx >= 0x10000L) {
4508 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4510 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
4512 srcR = (srcR * modulateR) / 255;
4513 srcG = (srcG * modulateG) / 255;
4514 srcB = (srcB * modulateB) / 255;
4517 srcA = (srcA * modulateA) / 255;
4522 srcR = (srcR * srcA) / 255;
4523 srcG = (srcG * srcA) / 255;
4524 srcB = (srcB * srcA) / 255;
4529 dstR = srcR + ((255 - srcA) * dstR) / 255;
4530 dstG = srcG + ((255 - srcA) * dstG) / 255;
4531 dstB = srcB + ((255 - srcA) * dstB) / 255;
4534 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4535 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4536 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4539 dstR = (srcR * dstR) / 255;
4540 dstG = (srcG * dstG) / 255;
4541 dstB = (srcB * dstB) / 255;
4544 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4545 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4546 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4549 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
4572 while (info->
dst_h--) {
4578 while (posy >= 0x10000L) {
4583 if (posx >= 0x10000L) {
4584 while (posx >= 0x10000L) {
4592 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
4606 Uint32 srcR, srcG, srcB, srcA;
4608 Uint32 dstR, dstG, dstB, dstA;
4610 while (info->
dst_h--) {
4616 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4618 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
4622 srcR = (srcR * srcA) / 255;
4623 srcG = (srcG * srcA) / 255;
4624 srcB = (srcB * srcA) / 255;
4629 dstR = srcR + ((255 - srcA) * dstR) / 255;
4630 dstG = srcG + ((255 - srcA) * dstG) / 255;
4631 dstB = srcB + ((255 - srcA) * dstB) / 255;
4632 dstA = srcA + ((255 - srcA) * dstA) / 255;
4635 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4636 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4637 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4640 dstR = (srcR * dstR) / 255;
4641 dstG = (srcG * dstG) / 255;
4642 dstB = (srcB * dstB) / 255;
4645 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4646 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4647 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4648 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
4651 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
4665 Uint32 srcR, srcG, srcB, srcA;
4667 Uint32 dstR, dstG, dstB, dstA;
4677 while (info->
dst_h--) {
4683 while (posy >= 0x10000L) {
4688 if (posx >= 0x10000L) {
4689 while (posx >= 0x10000L) {
4696 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4698 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
4702 srcR = (srcR * srcA) / 255;
4703 srcG = (srcG * srcA) / 255;
4704 srcB = (srcB * srcA) / 255;
4709 dstR = srcR + ((255 - srcA) * dstR) / 255;
4710 dstG = srcG + ((255 - srcA) * dstG) / 255;
4711 dstB = srcB + ((255 - srcA) * dstB) / 255;
4712 dstA = srcA + ((255 - srcA) * dstA) / 255;
4715 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4716 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4717 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4720 dstR = (srcR * dstR) / 255;
4721 dstG = (srcG * dstG) / 255;
4722 dstB = (srcB * dstB) / 255;
4725 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4726 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4727 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4728 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
4731 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
4744 const Uint32 modulateR = info->
r;
4745 const Uint32 modulateG = info->
g;
4746 const Uint32 modulateB = info->
b;
4747 const Uint32 modulateA = info->
a;
4751 while (info->
dst_h--) {
4759 R = (R * modulateR) / 255;
4760 G = (
G * modulateG) / 255;
4761 B = (B * modulateB) / 255;
4764 A = (A * modulateA) / 255;
4766 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
4779 const Uint32 modulateR = info->
r;
4780 const Uint32 modulateG = info->
g;
4781 const Uint32 modulateB = info->
b;
4782 const Uint32 modulateA = info->
a;
4794 while (info->
dst_h--) {
4800 while (posy >= 0x10000L) {
4805 if (posx >= 0x10000L) {
4806 while (posx >= 0x10000L) {
4815 R = (R * modulateR) / 255;
4816 G = (
G * modulateG) / 255;
4817 B = (B * modulateB) / 255;
4820 A = (A * modulateA) / 255;
4822 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
4835 const Uint32 modulateR = info->
r;
4836 const Uint32 modulateG = info->
g;
4837 const Uint32 modulateB = info->
b;
4838 const Uint32 modulateA = info->
a;
4840 Uint32 srcR, srcG, srcB, srcA;
4842 Uint32 dstR, dstG, dstB, dstA;
4844 while (info->
dst_h--) {
4850 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4852 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
4854 srcR = (srcR * modulateR) / 255;
4855 srcG = (srcG * modulateG) / 255;
4856 srcB = (srcB * modulateB) / 255;
4859 srcA = (srcA * modulateA) / 255;
4864 srcR = (srcR * srcA) / 255;
4865 srcG = (srcG * srcA) / 255;
4866 srcB = (srcB * srcA) / 255;
4871 dstR = srcR + ((255 - srcA) * dstR) / 255;
4872 dstG = srcG + ((255 - srcA) * dstG) / 255;
4873 dstB = srcB + ((255 - srcA) * dstB) / 255;
4874 dstA = srcA + ((255 - srcA) * dstA) / 255;
4877 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4878 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4879 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4882 dstR = (srcR * dstR) / 255;
4883 dstG = (srcG * dstG) / 255;
4884 dstB = (srcB * dstB) / 255;
4887 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4888 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4889 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4890 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
4893 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
4906 const Uint32 modulateR = info->
r;
4907 const Uint32 modulateG = info->
g;
4908 const Uint32 modulateB = info->
b;
4909 const Uint32 modulateA = info->
a;
4911 Uint32 srcR, srcG, srcB, srcA;
4913 Uint32 dstR, dstG, dstB, dstA;
4923 while (info->
dst_h--) {
4929 while (posy >= 0x10000L) {
4934 if (posx >= 0x10000L) {
4935 while (posx >= 0x10000L) {
4942 srcR = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcB = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
4944 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
4946 srcR = (srcR * modulateR) / 255;
4947 srcG = (srcG * modulateG) / 255;
4948 srcB = (srcB * modulateB) / 255;
4951 srcA = (srcA * modulateA) / 255;
4956 srcR = (srcR * srcA) / 255;
4957 srcG = (srcG * srcA) / 255;
4958 srcB = (srcB * srcA) / 255;
4963 dstR = srcR + ((255 - srcA) * dstR) / 255;
4964 dstG = srcG + ((255 - srcA) * dstG) / 255;
4965 dstB = srcB + ((255 - srcA) * dstB) / 255;
4966 dstA = srcA + ((255 - srcA) * dstA) / 255;
4969 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
4970 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
4971 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
4974 dstR = (srcR * dstR) / 255;
4975 dstG = (srcG * dstG) / 255;
4976 dstB = (srcB * dstB) / 255;
4979 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
4980 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
4981 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
4982 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
4985 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
5008 while (info->
dst_h--) {
5014 while (posy >= 0x10000L) {
5019 if (posx >= 0x10000L) {
5020 while (posx >= 0x10000L) {
5028 pixel = (R << 16) | (
G << 8) | B;
5042 Uint32 srcR, srcG, srcB, srcA;
5046 while (info->
dst_h--) {
5052 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5054 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
5058 srcR = (srcR * srcA) / 255;
5059 srcG = (srcG * srcA) / 255;
5060 srcB = (srcB * srcA) / 255;
5065 dstR = srcR + ((255 - srcA) * dstR) / 255;
5066 dstG = srcG + ((255 - srcA) * dstG) / 255;
5067 dstB = srcB + ((255 - srcA) * dstB) / 255;
5070 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5071 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5072 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5075 dstR = (srcR * dstR) / 255;
5076 dstG = (srcG * dstG) / 255;
5077 dstB = (srcB * dstB) / 255;
5080 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5081 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5082 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5085 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
5099 Uint32 srcR, srcG, srcB, srcA;
5111 while (info->
dst_h--) {
5117 while (posy >= 0x10000L) {
5122 if (posx >= 0x10000L) {
5123 while (posx >= 0x10000L) {
5130 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5132 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
5136 srcR = (srcR * srcA) / 255;
5137 srcG = (srcG * srcA) / 255;
5138 srcB = (srcB * srcA) / 255;
5143 dstR = srcR + ((255 - srcA) * dstR) / 255;
5144 dstG = srcG + ((255 - srcA) * dstG) / 255;
5145 dstB = srcB + ((255 - srcA) * dstB) / 255;
5148 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5149 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5150 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5153 dstR = (srcR * dstR) / 255;
5154 dstG = (srcG * dstG) / 255;
5155 dstB = (srcB * dstB) / 255;
5158 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5159 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5160 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5163 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
5176 const Uint32 modulateR = info->
r;
5177 const Uint32 modulateG = info->
g;
5178 const Uint32 modulateB = info->
b;
5182 while (info->
dst_h--) {
5190 R = (R * modulateR) / 255;
5191 G = (
G * modulateG) / 255;
5192 B = (B * modulateB) / 255;
5194 pixel = (R << 16) | (
G << 8) | B;
5207 const Uint32 modulateR = info->
r;
5208 const Uint32 modulateG = info->
g;
5209 const Uint32 modulateB = info->
b;
5221 while (info->
dst_h--) {
5227 while (posy >= 0x10000L) {
5232 if (posx >= 0x10000L) {
5233 while (posx >= 0x10000L) {
5242 R = (R * modulateR) / 255;
5243 G = (
G * modulateG) / 255;
5244 B = (B * modulateB) / 255;
5246 pixel = (R << 16) | (
G << 8) | B;
5259 const Uint32 modulateR = info->
r;
5260 const Uint32 modulateG = info->
g;
5261 const Uint32 modulateB = info->
b;
5262 const Uint32 modulateA = info->
a;
5264 Uint32 srcR, srcG, srcB, srcA;
5268 while (info->
dst_h--) {
5274 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5276 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
5278 srcR = (srcR * modulateR) / 255;
5279 srcG = (srcG * modulateG) / 255;
5280 srcB = (srcB * modulateB) / 255;
5283 srcA = (srcA * modulateA) / 255;
5288 srcR = (srcR * srcA) / 255;
5289 srcG = (srcG * srcA) / 255;
5290 srcB = (srcB * srcA) / 255;
5295 dstR = srcR + ((255 - srcA) * dstR) / 255;
5296 dstG = srcG + ((255 - srcA) * dstG) / 255;
5297 dstB = srcB + ((255 - srcA) * dstB) / 255;
5300 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5301 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5302 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5305 dstR = (srcR * dstR) / 255;
5306 dstG = (srcG * dstG) / 255;
5307 dstB = (srcB * dstB) / 255;
5310 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5311 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5312 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5315 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
5328 const Uint32 modulateR = info->
r;
5329 const Uint32 modulateG = info->
g;
5330 const Uint32 modulateB = info->
b;
5331 const Uint32 modulateA = info->
a;
5333 Uint32 srcR, srcG, srcB, srcA;
5345 while (info->
dst_h--) {
5351 while (posy >= 0x10000L) {
5356 if (posx >= 0x10000L) {
5357 while (posx >= 0x10000L) {
5364 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5366 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
5368 srcR = (srcR * modulateR) / 255;
5369 srcG = (srcG * modulateG) / 255;
5370 srcB = (srcB * modulateB) / 255;
5373 srcA = (srcA * modulateA) / 255;
5378 srcR = (srcR * srcA) / 255;
5379 srcG = (srcG * srcA) / 255;
5380 srcB = (srcB * srcA) / 255;
5385 dstR = srcR + ((255 - srcA) * dstR) / 255;
5386 dstG = srcG + ((255 - srcA) * dstG) / 255;
5387 dstB = srcB + ((255 - srcA) * dstB) / 255;
5390 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5391 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5392 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5395 dstR = (srcR * dstR) / 255;
5396 dstG = (srcG * dstG) / 255;
5397 dstB = (srcB * dstB) / 255;
5400 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5401 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5402 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5405 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
5428 while (info->
dst_h--) {
5434 while (posy >= 0x10000L) {
5439 if (posx >= 0x10000L) {
5440 while (posx >= 0x10000L) {
5448 pixel = (B << 16) | (
G << 8) | R;
5462 Uint32 srcR, srcG, srcB, srcA;
5466 while (info->
dst_h--) {
5472 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5474 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
5478 srcR = (srcR * srcA) / 255;
5479 srcG = (srcG * srcA) / 255;
5480 srcB = (srcB * srcA) / 255;
5485 dstR = srcR + ((255 - srcA) * dstR) / 255;
5486 dstG = srcG + ((255 - srcA) * dstG) / 255;
5487 dstB = srcB + ((255 - srcA) * dstB) / 255;
5490 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5491 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5492 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5495 dstR = (srcR * dstR) / 255;
5496 dstG = (srcG * dstG) / 255;
5497 dstB = (srcB * dstB) / 255;
5500 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5501 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5502 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5505 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
5519 Uint32 srcR, srcG, srcB, srcA;
5531 while (info->
dst_h--) {
5537 while (posy >= 0x10000L) {
5542 if (posx >= 0x10000L) {
5543 while (posx >= 0x10000L) {
5550 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5552 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
5556 srcR = (srcR * srcA) / 255;
5557 srcG = (srcG * srcA) / 255;
5558 srcB = (srcB * srcA) / 255;
5563 dstR = srcR + ((255 - srcA) * dstR) / 255;
5564 dstG = srcG + ((255 - srcA) * dstG) / 255;
5565 dstB = srcB + ((255 - srcA) * dstB) / 255;
5568 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5569 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5570 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5573 dstR = (srcR * dstR) / 255;
5574 dstG = (srcG * dstG) / 255;
5575 dstB = (srcB * dstB) / 255;
5578 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5579 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5580 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5583 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
5596 const Uint32 modulateR = info->
r;
5597 const Uint32 modulateG = info->
g;
5598 const Uint32 modulateB = info->
b;
5602 while (info->
dst_h--) {
5610 R = (R * modulateR) / 255;
5611 G = (
G * modulateG) / 255;
5612 B = (B * modulateB) / 255;
5614 pixel = (B << 16) | (
G << 8) | R;
5627 const Uint32 modulateR = info->
r;
5628 const Uint32 modulateG = info->
g;
5629 const Uint32 modulateB = info->
b;
5641 while (info->
dst_h--) {
5647 while (posy >= 0x10000L) {
5652 if (posx >= 0x10000L) {
5653 while (posx >= 0x10000L) {
5662 R = (R * modulateR) / 255;
5663 G = (
G * modulateG) / 255;
5664 B = (B * modulateB) / 255;
5666 pixel = (B << 16) | (
G << 8) | R;
5679 const Uint32 modulateR = info->
r;
5680 const Uint32 modulateG = info->
g;
5681 const Uint32 modulateB = info->
b;
5682 const Uint32 modulateA = info->
a;
5684 Uint32 srcR, srcG, srcB, srcA;
5688 while (info->
dst_h--) {
5694 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5696 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
5698 srcR = (srcR * modulateR) / 255;
5699 srcG = (srcG * modulateG) / 255;
5700 srcB = (srcB * modulateB) / 255;
5703 srcA = (srcA * modulateA) / 255;
5708 srcR = (srcR * srcA) / 255;
5709 srcG = (srcG * srcA) / 255;
5710 srcB = (srcB * srcA) / 255;
5715 dstR = srcR + ((255 - srcA) * dstR) / 255;
5716 dstG = srcG + ((255 - srcA) * dstG) / 255;
5717 dstB = srcB + ((255 - srcA) * dstB) / 255;
5720 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5721 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5722 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5725 dstR = (srcR * dstR) / 255;
5726 dstG = (srcG * dstG) / 255;
5727 dstB = (srcB * dstB) / 255;
5730 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5731 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5732 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5735 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
5748 const Uint32 modulateR = info->
r;
5749 const Uint32 modulateG = info->
g;
5750 const Uint32 modulateB = info->
b;
5751 const Uint32 modulateA = info->
a;
5753 Uint32 srcR, srcG, srcB, srcA;
5765 while (info->
dst_h--) {
5771 while (posy >= 0x10000L) {
5776 if (posx >= 0x10000L) {
5777 while (posx >= 0x10000L) {
5784 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5786 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
5788 srcR = (srcR * modulateR) / 255;
5789 srcG = (srcG * modulateG) / 255;
5790 srcB = (srcB * modulateB) / 255;
5793 srcA = (srcA * modulateA) / 255;
5798 srcR = (srcR * srcA) / 255;
5799 srcG = (srcG * srcA) / 255;
5800 srcB = (srcB * srcA) / 255;
5805 dstR = srcR + ((255 - srcA) * dstR) / 255;
5806 dstG = srcG + ((255 - srcA) * dstG) / 255;
5807 dstB = srcB + ((255 - srcA) * dstB) / 255;
5810 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5811 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5812 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5815 dstR = (srcR * dstR) / 255;
5816 dstG = (srcG * dstG) / 255;
5817 dstB = (srcB * dstB) / 255;
5820 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5821 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5822 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5825 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
5848 while (info->
dst_h--) {
5854 while (posy >= 0x10000L) {
5859 if (posx >= 0x10000L) {
5860 while (posx >= 0x10000L) {
5868 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
5882 Uint32 srcR, srcG, srcB, srcA;
5884 Uint32 dstR, dstG, dstB, dstA;
5886 while (info->
dst_h--) {
5892 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5894 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
5898 srcR = (srcR * srcA) / 255;
5899 srcG = (srcG * srcA) / 255;
5900 srcB = (srcB * srcA) / 255;
5905 dstR = srcR + ((255 - srcA) * dstR) / 255;
5906 dstG = srcG + ((255 - srcA) * dstG) / 255;
5907 dstB = srcB + ((255 - srcA) * dstB) / 255;
5908 dstA = srcA + ((255 - srcA) * dstA) / 255;
5911 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5912 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5913 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5916 dstR = (srcR * dstR) / 255;
5917 dstG = (srcG * dstG) / 255;
5918 dstB = (srcB * dstB) / 255;
5921 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
5922 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
5923 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
5924 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
5927 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
5941 Uint32 srcR, srcG, srcB, srcA;
5943 Uint32 dstR, dstG, dstB, dstA;
5953 while (info->
dst_h--) {
5959 while (posy >= 0x10000L) {
5964 if (posx >= 0x10000L) {
5965 while (posx >= 0x10000L) {
5972 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
5974 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
5978 srcR = (srcR * srcA) / 255;
5979 srcG = (srcG * srcA) / 255;
5980 srcB = (srcB * srcA) / 255;
5985 dstR = srcR + ((255 - srcA) * dstR) / 255;
5986 dstG = srcG + ((255 - srcA) * dstG) / 255;
5987 dstB = srcB + ((255 - srcA) * dstB) / 255;
5988 dstA = srcA + ((255 - srcA) * dstA) / 255;
5991 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
5992 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
5993 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
5996 dstR = (srcR * dstR) / 255;
5997 dstG = (srcG * dstG) / 255;
5998 dstB = (srcB * dstB) / 255;
6001 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6002 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6003 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6004 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
6007 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
6020 const Uint32 modulateR = info->
r;
6021 const Uint32 modulateG = info->
g;
6022 const Uint32 modulateB = info->
b;
6023 const Uint32 modulateA = info->
a;
6027 while (info->
dst_h--) {
6035 R = (R * modulateR) / 255;
6036 G = (
G * modulateG) / 255;
6037 B = (B * modulateB) / 255;
6040 A = (A * modulateA) / 255;
6042 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
6055 const Uint32 modulateR = info->
r;
6056 const Uint32 modulateG = info->
g;
6057 const Uint32 modulateB = info->
b;
6058 const Uint32 modulateA = info->
a;
6070 while (info->
dst_h--) {
6076 while (posy >= 0x10000L) {
6081 if (posx >= 0x10000L) {
6082 while (posx >= 0x10000L) {
6091 R = (R * modulateR) / 255;
6092 G = (
G * modulateG) / 255;
6093 B = (B * modulateB) / 255;
6096 A = (A * modulateA) / 255;
6098 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
6111 const Uint32 modulateR = info->
r;
6112 const Uint32 modulateG = info->
g;
6113 const Uint32 modulateB = info->
b;
6114 const Uint32 modulateA = info->
a;
6116 Uint32 srcR, srcG, srcB, srcA;
6118 Uint32 dstR, dstG, dstB, dstA;
6120 while (info->
dst_h--) {
6126 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
6128 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
6130 srcR = (srcR * modulateR) / 255;
6131 srcG = (srcG * modulateG) / 255;
6132 srcB = (srcB * modulateB) / 255;
6135 srcA = (srcA * modulateA) / 255;
6140 srcR = (srcR * srcA) / 255;
6141 srcG = (srcG * srcA) / 255;
6142 srcB = (srcB * srcA) / 255;
6147 dstR = srcR + ((255 - srcA) * dstR) / 255;
6148 dstG = srcG + ((255 - srcA) * dstG) / 255;
6149 dstB = srcB + ((255 - srcA) * dstB) / 255;
6150 dstA = srcA + ((255 - srcA) * dstA) / 255;
6153 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6154 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6155 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6158 dstR = (srcR * dstR) / 255;
6159 dstG = (srcG * dstG) / 255;
6160 dstB = (srcB * dstB) / 255;
6163 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6164 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6165 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6166 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
6169 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
6182 const Uint32 modulateR = info->
r;
6183 const Uint32 modulateG = info->
g;
6184 const Uint32 modulateB = info->
b;
6185 const Uint32 modulateA = info->
a;
6187 Uint32 srcR, srcG, srcB, srcA;
6189 Uint32 dstR, dstG, dstB, dstA;
6199 while (info->
dst_h--) {
6205 while (posy >= 0x10000L) {
6210 if (posx >= 0x10000L) {
6211 while (posx >= 0x10000L) {
6218 srcB = (
Uint8)(srcpixel >> 16); srcG = (
Uint8)(srcpixel >> 8); srcR = (
Uint8)srcpixel; srcA = (
Uint8)(srcpixel >> 24);
6220 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
6222 srcR = (srcR * modulateR) / 255;
6223 srcG = (srcG * modulateG) / 255;
6224 srcB = (srcB * modulateB) / 255;
6227 srcA = (srcA * modulateA) / 255;
6232 srcR = (srcR * srcA) / 255;
6233 srcG = (srcG * srcA) / 255;
6234 srcB = (srcB * srcA) / 255;
6239 dstR = srcR + ((255 - srcA) * dstR) / 255;
6240 dstG = srcG + ((255 - srcA) * dstG) / 255;
6241 dstB = srcB + ((255 - srcA) * dstB) / 255;
6242 dstA = srcA + ((255 - srcA) * dstA) / 255;
6245 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6246 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6247 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6250 dstR = (srcR * dstR) / 255;
6251 dstG = (srcG * dstG) / 255;
6252 dstB = (srcB * dstB) / 255;
6255 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6256 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6257 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6258 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
6261 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
6284 while (info->
dst_h--) {
6290 while (posy >= 0x10000L) {
6295 if (posx >= 0x10000L) {
6296 while (posx >= 0x10000L) {
6303 B = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); R = (
Uint8)(pixel >> 8);
6304 pixel = (R << 16) | (
G << 8) | B;
6318 Uint32 srcR, srcG, srcB, srcA;
6322 while (info->
dst_h--) {
6328 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
6330 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
6334 srcR = (srcR * srcA) / 255;
6335 srcG = (srcG * srcA) / 255;
6336 srcB = (srcB * srcA) / 255;
6341 dstR = srcR + ((255 - srcA) * dstR) / 255;
6342 dstG = srcG + ((255 - srcA) * dstG) / 255;
6343 dstB = srcB + ((255 - srcA) * dstB) / 255;
6346 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6347 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6348 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6351 dstR = (srcR * dstR) / 255;
6352 dstG = (srcG * dstG) / 255;
6353 dstB = (srcB * dstB) / 255;
6356 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6357 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6358 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6361 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
6375 Uint32 srcR, srcG, srcB, srcA;
6387 while (info->
dst_h--) {
6393 while (posy >= 0x10000L) {
6398 if (posx >= 0x10000L) {
6399 while (posx >= 0x10000L) {
6406 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
6408 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
6412 srcR = (srcR * srcA) / 255;
6413 srcG = (srcG * srcA) / 255;
6414 srcB = (srcB * srcA) / 255;
6419 dstR = srcR + ((255 - srcA) * dstR) / 255;
6420 dstG = srcG + ((255 - srcA) * dstG) / 255;
6421 dstB = srcB + ((255 - srcA) * dstB) / 255;
6424 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6425 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6426 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6429 dstR = (srcR * dstR) / 255;
6430 dstG = (srcG * dstG) / 255;
6431 dstB = (srcB * dstB) / 255;
6434 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6435 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6436 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6439 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
6452 const Uint32 modulateR = info->
r;
6453 const Uint32 modulateG = info->
g;
6454 const Uint32 modulateB = info->
b;
6458 while (info->
dst_h--) {
6464 B = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); R = (
Uint8)(pixel >> 8);
6466 R = (R * modulateR) / 255;
6467 G = (
G * modulateG) / 255;
6468 B = (B * modulateB) / 255;
6470 pixel = (R << 16) | (
G << 8) | B;
6483 const Uint32 modulateR = info->
r;
6484 const Uint32 modulateG = info->
g;
6485 const Uint32 modulateB = info->
b;
6497 while (info->
dst_h--) {
6503 while (posy >= 0x10000L) {
6508 if (posx >= 0x10000L) {
6509 while (posx >= 0x10000L) {
6516 B = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); R = (
Uint8)(pixel >> 8);
6518 R = (R * modulateR) / 255;
6519 G = (
G * modulateG) / 255;
6520 B = (B * modulateB) / 255;
6522 pixel = (R << 16) | (
G << 8) | B;
6535 const Uint32 modulateR = info->
r;
6536 const Uint32 modulateG = info->
g;
6537 const Uint32 modulateB = info->
b;
6538 const Uint32 modulateA = info->
a;
6540 Uint32 srcR, srcG, srcB, srcA;
6544 while (info->
dst_h--) {
6550 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
6552 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
6554 srcR = (srcR * modulateR) / 255;
6555 srcG = (srcG * modulateG) / 255;
6556 srcB = (srcB * modulateB) / 255;
6559 srcA = (srcA * modulateA) / 255;
6564 srcR = (srcR * srcA) / 255;
6565 srcG = (srcG * srcA) / 255;
6566 srcB = (srcB * srcA) / 255;
6571 dstR = srcR + ((255 - srcA) * dstR) / 255;
6572 dstG = srcG + ((255 - srcA) * dstG) / 255;
6573 dstB = srcB + ((255 - srcA) * dstB) / 255;
6576 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6577 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6578 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6581 dstR = (srcR * dstR) / 255;
6582 dstG = (srcG * dstG) / 255;
6583 dstB = (srcB * dstB) / 255;
6586 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6587 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6588 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6591 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
6604 const Uint32 modulateR = info->
r;
6605 const Uint32 modulateG = info->
g;
6606 const Uint32 modulateB = info->
b;
6607 const Uint32 modulateA = info->
a;
6609 Uint32 srcR, srcG, srcB, srcA;
6621 while (info->
dst_h--) {
6627 while (posy >= 0x10000L) {
6632 if (posx >= 0x10000L) {
6633 while (posx >= 0x10000L) {
6640 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
6642 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel;
6644 srcR = (srcR * modulateR) / 255;
6645 srcG = (srcG * modulateG) / 255;
6646 srcB = (srcB * modulateB) / 255;
6649 srcA = (srcA * modulateA) / 255;
6654 srcR = (srcR * srcA) / 255;
6655 srcG = (srcG * srcA) / 255;
6656 srcB = (srcB * srcA) / 255;
6661 dstR = srcR + ((255 - srcA) * dstR) / 255;
6662 dstG = srcG + ((255 - srcA) * dstG) / 255;
6663 dstB = srcB + ((255 - srcA) * dstB) / 255;
6666 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6667 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6668 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6671 dstR = (srcR * dstR) / 255;
6672 dstG = (srcG * dstG) / 255;
6673 dstB = (srcB * dstB) / 255;
6676 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6677 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6678 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6681 dstpixel = (dstR << 16) | (dstG << 8) | dstB;
6704 while (info->
dst_h--) {
6710 while (posy >= 0x10000L) {
6715 if (posx >= 0x10000L) {
6716 while (posx >= 0x10000L) {
6723 B = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); R = (
Uint8)(pixel >> 8);
6724 pixel = (B << 16) | (
G << 8) | R;
6738 Uint32 srcR, srcG, srcB, srcA;
6742 while (info->
dst_h--) {
6748 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
6750 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
6754 srcR = (srcR * srcA) / 255;
6755 srcG = (srcG * srcA) / 255;
6756 srcB = (srcB * srcA) / 255;
6761 dstR = srcR + ((255 - srcA) * dstR) / 255;
6762 dstG = srcG + ((255 - srcA) * dstG) / 255;
6763 dstB = srcB + ((255 - srcA) * dstB) / 255;
6766 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6767 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6768 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6771 dstR = (srcR * dstR) / 255;
6772 dstG = (srcG * dstG) / 255;
6773 dstB = (srcB * dstB) / 255;
6776 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6777 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6778 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6781 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
6795 Uint32 srcR, srcG, srcB, srcA;
6807 while (info->
dst_h--) {
6813 while (posy >= 0x10000L) {
6818 if (posx >= 0x10000L) {
6819 while (posx >= 0x10000L) {
6826 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
6828 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
6832 srcR = (srcR * srcA) / 255;
6833 srcG = (srcG * srcA) / 255;
6834 srcB = (srcB * srcA) / 255;
6839 dstR = srcR + ((255 - srcA) * dstR) / 255;
6840 dstG = srcG + ((255 - srcA) * dstG) / 255;
6841 dstB = srcB + ((255 - srcA) * dstB) / 255;
6844 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6845 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6846 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
6849 dstR = (srcR * dstR) / 255;
6850 dstG = (srcG * dstG) / 255;
6851 dstB = (srcB * dstB) / 255;
6854 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
6855 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
6856 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
6859 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
6872 const Uint32 modulateR = info->
r;
6873 const Uint32 modulateG = info->
g;
6874 const Uint32 modulateB = info->
b;
6878 while (info->
dst_h--) {
6884 B = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); R = (
Uint8)(pixel >> 8);
6886 R = (R * modulateR) / 255;
6887 G = (
G * modulateG) / 255;
6888 B = (B * modulateB) / 255;
6890 pixel = (B << 16) | (
G << 8) | R;
6903 const Uint32 modulateR = info->
r;
6904 const Uint32 modulateG = info->
g;
6905 const Uint32 modulateB = info->
b;
6917 while (info->
dst_h--) {
6923 while (posy >= 0x10000L) {
6928 if (posx >= 0x10000L) {
6929 while (posx >= 0x10000L) {
6936 B = (
Uint8)(pixel >> 24);
G = (
Uint8)(pixel >> 16); R = (
Uint8)(pixel >> 8);
6938 R = (R * modulateR) / 255;
6939 G = (
G * modulateG) / 255;
6940 B = (B * modulateB) / 255;
6942 pixel = (B << 16) | (
G << 8) | R;
6955 const Uint32 modulateR = info->
r;
6956 const Uint32 modulateG = info->
g;
6957 const Uint32 modulateB = info->
b;
6958 const Uint32 modulateA = info->
a;
6960 Uint32 srcR, srcG, srcB, srcA;
6964 while (info->
dst_h--) {
6970 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
6972 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
6974 srcR = (srcR * modulateR) / 255;
6975 srcG = (srcG * modulateG) / 255;
6976 srcB = (srcB * modulateB) / 255;
6979 srcA = (srcA * modulateA) / 255;
6984 srcR = (srcR * srcA) / 255;
6985 srcG = (srcG * srcA) / 255;
6986 srcB = (srcB * srcA) / 255;
6991 dstR = srcR + ((255 - srcA) * dstR) / 255;
6992 dstG = srcG + ((255 - srcA) * dstG) / 255;
6993 dstB = srcB + ((255 - srcA) * dstB) / 255;
6996 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
6997 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
6998 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
7001 dstR = (srcR * dstR) / 255;
7002 dstG = (srcG * dstG) / 255;
7003 dstB = (srcB * dstB) / 255;
7006 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
7007 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
7008 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
7011 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
7024 const Uint32 modulateR = info->
r;
7025 const Uint32 modulateG = info->
g;
7026 const Uint32 modulateB = info->
b;
7027 const Uint32 modulateA = info->
a;
7029 Uint32 srcR, srcG, srcB, srcA;
7041 while (info->
dst_h--) {
7047 while (posy >= 0x10000L) {
7052 if (posx >= 0x10000L) {
7053 while (posx >= 0x10000L) {
7060 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
7062 dstB = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstR = (
Uint8)dstpixel;
7064 srcR = (srcR * modulateR) / 255;
7065 srcG = (srcG * modulateG) / 255;
7066 srcB = (srcB * modulateB) / 255;
7069 srcA = (srcA * modulateA) / 255;
7074 srcR = (srcR * srcA) / 255;
7075 srcG = (srcG * srcA) / 255;
7076 srcB = (srcB * srcA) / 255;
7081 dstR = srcR + ((255 - srcA) * dstR) / 255;
7082 dstG = srcG + ((255 - srcA) * dstG) / 255;
7083 dstB = srcB + ((255 - srcA) * dstB) / 255;
7086 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
7087 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
7088 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
7091 dstR = (srcR * dstR) / 255;
7092 dstG = (srcG * dstG) / 255;
7093 dstB = (srcB * dstB) / 255;
7096 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
7097 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
7098 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
7101 dstpixel = (dstB << 16) | (dstG << 8) | dstR;
7124 while (info->
dst_h--) {
7130 while (posy >= 0x10000L) {
7135 if (posx >= 0x10000L) {
7136 while (posx >= 0x10000L) {
7144 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
7158 Uint32 srcR, srcG, srcB, srcA;
7160 Uint32 dstR, dstG, dstB, dstA;
7162 while (info->
dst_h--) {
7168 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
7170 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
7174 srcR = (srcR * srcA) / 255;
7175 srcG = (srcG * srcA) / 255;
7176 srcB = (srcB * srcA) / 255;
7181 dstR = srcR + ((255 - srcA) * dstR) / 255;
7182 dstG = srcG + ((255 - srcA) * dstG) / 255;
7183 dstB = srcB + ((255 - srcA) * dstB) / 255;
7184 dstA = srcA + ((255 - srcA) * dstA) / 255;
7187 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
7188 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
7189 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
7192 dstR = (srcR * dstR) / 255;
7193 dstG = (srcG * dstG) / 255;
7194 dstB = (srcB * dstB) / 255;
7197 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
7198 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
7199 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
7200 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
7203 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
7217 Uint32 srcR, srcG, srcB, srcA;
7219 Uint32 dstR, dstG, dstB, dstA;
7229 while (info->
dst_h--) {
7235 while (posy >= 0x10000L) {
7240 if (posx >= 0x10000L) {
7241 while (posx >= 0x10000L) {
7248 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
7250 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
7254 srcR = (srcR * srcA) / 255;
7255 srcG = (srcG * srcA) / 255;
7256 srcB = (srcB * srcA) / 255;
7261 dstR = srcR + ((255 - srcA) * dstR) / 255;
7262 dstG = srcG + ((255 - srcA) * dstG) / 255;
7263 dstB = srcB + ((255 - srcA) * dstB) / 255;
7264 dstA = srcA + ((255 - srcA) * dstA) / 255;
7267 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
7268 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
7269 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
7272 dstR = (srcR * dstR) / 255;
7273 dstG = (srcG * dstG) / 255;
7274 dstB = (srcB * dstB) / 255;
7277 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
7278 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
7279 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
7280 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
7283 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
7296 const Uint32 modulateR = info->
r;
7297 const Uint32 modulateG = info->
g;
7298 const Uint32 modulateB = info->
b;
7299 const Uint32 modulateA = info->
a;
7303 while (info->
dst_h--) {
7311 R = (R * modulateR) / 255;
7312 G = (
G * modulateG) / 255;
7313 B = (B * modulateB) / 255;
7316 A = (A * modulateA) / 255;
7318 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
7331 const Uint32 modulateR = info->
r;
7332 const Uint32 modulateG = info->
g;
7333 const Uint32 modulateB = info->
b;
7334 const Uint32 modulateA = info->
a;
7346 while (info->
dst_h--) {
7352 while (posy >= 0x10000L) {
7357 if (posx >= 0x10000L) {
7358 while (posx >= 0x10000L) {
7367 R = (R * modulateR) / 255;
7368 G = (
G * modulateG) / 255;
7369 B = (B * modulateB) / 255;
7372 A = (A * modulateA) / 255;
7374 pixel = (A << 24) | (R << 16) | (
G << 8) | B;
7387 const Uint32 modulateR = info->
r;
7388 const Uint32 modulateG = info->
g;
7389 const Uint32 modulateB = info->
b;
7390 const Uint32 modulateA = info->
a;
7392 Uint32 srcR, srcG, srcB, srcA;
7394 Uint32 dstR, dstG, dstB, dstA;
7396 while (info->
dst_h--) {
7402 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
7404 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
7406 srcR = (srcR * modulateR) / 255;
7407 srcG = (srcG * modulateG) / 255;
7408 srcB = (srcB * modulateB) / 255;
7411 srcA = (srcA * modulateA) / 255;
7416 srcR = (srcR * srcA) / 255;
7417 srcG = (srcG * srcA) / 255;
7418 srcB = (srcB * srcA) / 255;
7423 dstR = srcR + ((255 - srcA) * dstR) / 255;
7424 dstG = srcG + ((255 - srcA) * dstG) / 255;
7425 dstB = srcB + ((255 - srcA) * dstB) / 255;
7426 dstA = srcA + ((255 - srcA) * dstA) / 255;
7429 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
7430 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
7431 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
7434 dstR = (srcR * dstR) / 255;
7435 dstG = (srcG * dstG) / 255;
7436 dstB = (srcB * dstB) / 255;
7439 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
7440 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
7441 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
7442 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
7445 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
7458 const Uint32 modulateR = info->
r;
7459 const Uint32 modulateG = info->
g;
7460 const Uint32 modulateB = info->
b;
7461 const Uint32 modulateA = info->
a;
7463 Uint32 srcR, srcG, srcB, srcA;
7465 Uint32 dstR, dstG, dstB, dstA;
7475 while (info->
dst_h--) {
7481 while (posy >= 0x10000L) {
7486 if (posx >= 0x10000L) {
7487 while (posx >= 0x10000L) {
7494 srcB = (
Uint8)(srcpixel >> 24); srcG = (
Uint8)(srcpixel >> 16); srcR = (
Uint8)(srcpixel >> 8); srcA = (
Uint8)srcpixel;
7496 dstR = (
Uint8)(dstpixel >> 16); dstG = (
Uint8)(dstpixel >> 8); dstB = (
Uint8)dstpixel; dstA = (
Uint8)(dstpixel >> 24);
7498 srcR = (srcR * modulateR) / 255;
7499 srcG = (srcG * modulateG) / 255;
7500 srcB = (srcB * modulateB) / 255;
7503 srcA = (srcA * modulateA) / 255;
7508 srcR = (srcR * srcA) / 255;
7509 srcG = (srcG * srcA) / 255;
7510 srcB = (srcB * srcA) / 255;
7515 dstR = srcR + ((255 - srcA) * dstR) / 255;
7516 dstG = srcG + ((255 - srcA) * dstG) / 255;
7517 dstB = srcB + ((255 - srcA) * dstB) / 255;
7518 dstA = srcA + ((255 - srcA) * dstA) / 255;
7521 dstR = srcR + dstR;
if (dstR > 255) dstR = 255;
7522 dstG = srcG + dstG;
if (dstG > 255) dstG = 255;
7523 dstB = srcB + dstB;
if (dstB > 255) dstB = 255;
7526 dstR = (srcR * dstR) / 255;
7527 dstG = (srcG * dstG) / 255;
7528 dstB = (srcB * dstB) / 255;
7531 dstR = ((srcR * dstR) + (dstR * (255 - srcA))) / 255;
if (dstR > 255) dstR = 255;
7532 dstG = ((srcG * dstG) + (dstG * (255 - srcA))) / 255;
if (dstG > 255) dstG = 255;
7533 dstB = ((srcB * dstB) + (dstB * (255 - srcA))) / 255;
if (dstB > 255) dstB = 255;
7534 dstA = ((srcA * dstA) + (dstA * (255 - srcA))) / 255;
if (dstA > 255) dstA = 255;
7537 dstpixel = (dstA << 24) | (dstR << 16) | (dstG << 8) | dstB;
7674 { 0, 0, 0, 0,
NULL }