SDL颜色快捷方式

时间:2011-07-18 18:43:42

标签: colors sdl

我正在使用SDL作为我的一个项目,我想要一种更短的获取颜色的方法。

我想做这样的事情:

SDL_FillRect(screen, &screen->clip_rect, 0x0F380F);

而不是:

SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0x0F, 0x38, 0x0F));

当我在DarkGDK工作时,你可以做我喜欢的事情,这很棒很简单,但是当我尝试用SDL做的时候,我就会有颜色。

1 个答案:

答案 0 :(得分:1)

如何在一个头文件中定义它:

#define My_FillRect(screen, num)                               \
    do {                                                       \
        SDL_FillRect(screen, &screen->clip_rect,               \
                     SDL_MapRGB(screen->format,                \
                                num >> 16,                     \
                               (num >> 8) & 0xff, num & 0xff); \
    } while (0)

然后你可以使用My_FillRect(screen, 0x0F380F);,编译器应该能够折叠常量,这样就不会有性能损失。