我正在使用SDL作为我的一个项目,我想要一种更短的获取颜色的方法。
我想做这样的事情:
SDL_FillRect(screen, &screen->clip_rect, 0x0F380F);
而不是:
SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0x0F, 0x38, 0x0F));
当我在DarkGDK工作时,你可以做我喜欢的事情,这很棒很简单,但是当我尝试用SDL做的时候,我就会有颜色。
答案 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);
,编译器应该能够折叠常量,这样就不会有性能损失。