From 62ccdb65beee5d8e875769d3c451dc9554ae26f7 Mon Sep 17 00:00:00 2001 From: Albert Cahalan Date: Sat, 18 Dec 2004 20:35:53 +0000 Subject: [PATCH] macros for: SDL_GetRGB SDL_GetRGBA SDL_MapRGBA SDL_MapRGB --- src/tuxpaint.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/tuxpaint.c b/src/tuxpaint.c index 38f1e25e7..3a01a249a 100644 --- a/src/tuxpaint.c +++ b/src/tuxpaint.c @@ -417,6 +417,40 @@ static TTF_Font *BUGFIX_TTF_OpenFont206(const char * const file, int ptsize) #define TTF_OpenFont BUGFIX_TTF_OpenFont206 +#if VIDEO_BPP==32 +#ifdef __GNUC__ +#define SDL_GetRGBA(p,f,rp,gp,bp,ap) ({ \ + unsigned u_p = p; \ + *(ap) = (u_p >> 24) & 0xff; \ + *(rp) = (u_p >> 16) & 0xff; \ + *(gp) = (u_p >> 8) & 0xff; \ + *(bp) = (u_p >> 0) & 0xff; \ +}) +#define SDL_GetRGB(p,f,rp,gp,bp) ({ \ + unsigned u_p = p; \ + *(rp) = (u_p >> 16) & 0xff; \ + *(gp) = (u_p >> 8) & 0xff; \ + *(bp) = (u_p >> 0) & 0xff; \ +}) +#endif +#define SDL_MapRGBA(f,r,g,b,a) ( \ + (((a) & 0xffu) << 24) \ + | \ + (((r) & 0xffu) << 16) \ + | \ + (((g) & 0xffu) << 8) \ + | \ + (((b) & 0xffu) << 0) \ +) +#define SDL_MapRGB(f,r,g,b) ( \ + (((r) & 0xffu) << 16) \ + | \ + (((g) & 0xffu) << 8) \ + | \ + (((b) & 0xffu) << 0) \ +) +#endif + /* Possible languages: */ enum {