SDL Color ярлык - PullRequest
       20

SDL Color ярлык

0 голосов
/ 18 июля 2011

Я использую SDL для своего проекта и хочу использовать более короткий способ получения цветов.

Я хочу сделать что-то вроде этого:

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

Вместо этого:

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

Когда я работал в DarkGDK, вы могли делать что-то вроде того, что я хотел, и это было здорово и просто, но когда я пытаюсь сделать это в SDL, я теряю цвет.

1 Ответ

1 голос
/ 19 июля 2011

Как насчет определения этого в одном из ваших заголовочных файлов:

#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);, и компилятор должен иметь возможность складывать константы так, чтобы не было потери производительности.

...