21 #include "../SDL_internal.h"
77 Uint32 pixel_value = 0,mask_value = 0;
78 int bytes_per_scanline = (shape->
w + (ppb - 1)) / ppb;
79 Uint8 *bitmap_scanline;
83 for(y = 0;y<shape->
h;y++) {
84 bitmap_scanline = bitmap + y * bytes_per_scanline;
85 for(x=0;x<shape->
w;x++) {
91 pixel_value = *(
Uint8*)pixel;
94 pixel_value = *(
Uint16*)pixel;
100 pixel_value = *(
Uint32*)pixel;
106 mask_value = (
alpha >= 1 ? 1 : 0);
116 mask_value = ((key.
r != r || key.
g !=
g || key.
b !=
b) ? 1 : 0);
119 bitmap_scanline[x / ppb] |= mask_value << (x % ppb);
133 int last_opaque = -1;
138 for(
y=dimensions.
y;
y<dimensions.
y + dimensions.
h;
y++) {
139 for(x=dimensions.
x;x<dimensions.
x + dimensions.
w;x++) {
144 pixel_value = *(
Uint8*)pixel;
147 pixel_value = *(
Uint16*)pixel;
153 pixel_value = *(
Uint32*)pixel;
172 if(last_opaque == -1)
173 last_opaque = pixel_opaque;
174 if(last_opaque != pixel_opaque) {
175 const int halfwidth = dimensions.
w / 2;
176 const int halfheight = dimensions.
h / 2;
180 next.
x = dimensions.
x;
181 next.
y = dimensions.
y;
186 next.
x = dimensions.
x + halfwidth;
187 next.
w = dimensions.
w - halfwidth;
190 next.
x = dimensions.
x;
192 next.
y = dimensions.
y + halfheight;
193 next.
h = dimensions.
h - halfheight;
196 next.
x = dimensions.
x + halfwidth;
197 next.
w = dimensions.
w - halfwidth;
220 dimensions.
w = shape->
w;
221 dimensions.
h = shape->
h;
242 function(tree,closure);
269 if(shape_mode !=
NULL)
293 if(shape_mode ==
NULL) {