comparison src/video/SDL_blendrect.c @ 2899:a0c837a16e4c

Added ARGB optimized case for Mac OS X
author Sam Lantinga <slouken@libsdl.org>
date Sun, 21 Dec 2008 08:55:06 +0000
parents e40448bc7727
children 3a9636c83849
comparison
equal deleted inserted replaced
2898:e40448bc7727 2899:a0c837a16e4c
86 case SDL_BLENDMODE_MOD: 86 case SDL_BLENDMODE_MOD:
87 BLENDRECT(Uint32, DRAW_SETPIXEL_MOD_RGB888); 87 BLENDRECT(Uint32, DRAW_SETPIXEL_MOD_RGB888);
88 break; 88 break;
89 default: 89 default:
90 BLENDRECT(Uint32, DRAW_SETPIXEL_RGB888); 90 BLENDRECT(Uint32, DRAW_SETPIXEL_RGB888);
91 break;
92 }
93 return 0;
94 }
95
96 static int
97 SDL_BlendRect_ARGB8888(SDL_Surface * dst, SDL_Rect * dstrect, int blendMode,
98 Uint8 r, Uint8 g, Uint8 b, Uint8 a)
99 {
100 unsigned inva = 0xff - a;
101
102 switch (blendMode) {
103 case SDL_BLENDMODE_BLEND:
104 BLENDRECT(Uint32, DRAW_SETPIXEL_BLEND_ARGB8888);
105 break;
106 case SDL_BLENDMODE_ADD:
107 BLENDRECT(Uint32, DRAW_SETPIXEL_ADD_ARGB8888);
108 break;
109 case SDL_BLENDMODE_MOD:
110 BLENDRECT(Uint32, DRAW_SETPIXEL_MOD_ARGB8888);
111 break;
112 default:
113 BLENDRECT(Uint32, DRAW_SETPIXEL_ARGB8888);
91 break; 114 break;
92 } 115 }
93 return 0; 116 return 0;
94 } 117 }
95 118
215 switch (fmt->Rmask) { 238 switch (fmt->Rmask) {
216 case 0x00FF0000: 239 case 0x00FF0000:
217 if (!fmt->Amask) { 240 if (!fmt->Amask) {
218 return SDL_BlendRect_RGB888(dst, dstrect, blendMode, r, g, b, 241 return SDL_BlendRect_RGB888(dst, dstrect, blendMode, r, g, b,
219 a); 242 a);
243 } else {
244 return SDL_BlendRect_ARGB8888(dst, dstrect, blendMode, r, g,
245 b, a);
220 } 246 }
221 break; 247 break;
222 } 248 }
223 default: 249 default:
224 break; 250 break;