X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Fimage.c;h=feb259703d3d96bc6be2f62b4044c0879b11917c;hb=6a947144cc0eb8325c248a5c682876c6c0da652d;hp=e0c5540fa0e29b279492c3a0bdfaf40d99fd8257;hpb=f26f23de50cb7941a7702198e3b4d1b2f9de062e;p=chaz%2Fopenbox diff --git a/render/image.c b/render/image.c index e0c5540f..feb25970 100644 --- a/render/image.c +++ b/render/image.c @@ -5,7 +5,7 @@ void image_draw(pixel32 *target, TextureRGBA *rgba, Rect *position, Rect *surarea) { - gulong *draw = rgba->data; + pixel32 *draw = rgba->data; guint c, i, e, t, sfw, sfh; sfw = position->width; sfh = position->height; @@ -50,10 +50,10 @@ void image_draw(pixel32 *target, TextureRGBA *rgba, Rect *position, for (i = 0, c = 0, t = position->x, e = sfw*sfh; i < e; ++i, ++t) { guchar alpha, r, g, b, bgr, bgg, bgb; - alpha = draw[i] >> 24; - r = draw[i] >> 16; - g = draw[i] >> 8; - b = draw[i]; + alpha = draw[i] >> default_alpha_offset; + r = draw[i] >> default_red_offset; + g = draw[i] >> default_green_offset; + b = draw[i] >> default_blue_offset; if (c >= sfw) { c = 0; @@ -61,16 +61,17 @@ void image_draw(pixel32 *target, TextureRGBA *rgba, Rect *position, } /* background color */ - bgr = target[t] >> default_red_shift; - bgg = target[t] >> default_green_shift; - bgb = target[t] >> default_blue_shift; + bgr = target[t] >> default_red_offset; + bgg = target[t] >> default_green_offset; + bgb = target[t] >> default_blue_offset; r = bgr + (((r - bgr) * alpha) >> 8); g = bgg + (((g - bgg) * alpha) >> 8); b = bgb + (((b - bgb) * alpha) >> 8); - target[t] = (r << default_red_shift) | (g << default_green_shift) | - (b << default_blue_shift); + target[t] = (r << default_red_offset) + | (g << default_green_offset) + | (b << default_blue_offset); } } }