BPP меняет цвет SDL - PullRequest
       3

BPP меняет цвет SDL

1 голос
/ 31 октября 2011

Каждый раз, когда я запускаю свое приложение, цвета меняются, дисплей выглядит так, как показано ниже

Display = SDL_SetVideoMode(WIDTH, HEIGHT, 16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ASYNCBLIT)

и тогда я делаю

SDL_FillRect(Display, &Woutput, colors[1]);

информация о цветах:

Uint32 colors[3];
colors[1] = SDL_MapRGB(Surf_Display->format, 32, 32, 255);

Если я изменю SDL_FillRect(Display, &Woutput, colors[1]); на SDL_FillRect(Display, &Woutput, SDL_MapRGB(Surf_Display->format, 32, 32, 255));, он будет работать правильно, что заставляет меня поверить, что оно как-то связано с Uint32, но не уверен, что изменить на

1 Ответ

1 голос
/ 31 октября 2011

Я добавляю этот комментарий в качестве ответа.

Ваш массив цветов, вероятно, не инициализируется ожидаемыми значениями при вызове SDL_FillRect. Когда это произойдет, цвета будут иметь любой случайный мусор, и это объясняет изменение цвета при каждом запуске.

Чтобы увидеть, так ли это на самом деле, попробуйте обнулить массив сразу, как показано ниже:

Uint32 colors[3] = {0};

Теперь, если вы запустите свою программу и обнаружите, что цвета больше не меняются (возможно, это будет просто черный, поскольку цвета теперь содержат все нули) - хорошо, вы знаете, что не так в этом пункте.

...