Mercurial > sdl-ios-xcode
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; |