Изменить фон SDL

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

Не знаю, имеет ли это значение, но я использую SDL_SetVideoMode()

Мой код очень простой:

if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
    return 1;

SDL_Surface * screen = NULL;

screen = SDL_SetVideoMode(width, height, bpp, SDL_SWSURFACE);

SDL_FillRect(screen, NULL, 0xFFFFFF);
SDL_Delay(3000);

person calccrypto    schedule 17.07.2011    source источник
comment
Вы используете OpenGL или чистый SDL?   -  person Bart    schedule 17.07.2011
comment
чистый сдл. я только начинаю снова изучать sdl   -  person calccrypto    schedule 17.07.2011


Ответы (4)


Получите поверхность из вашего окна, используя surf = SDL_SetVideoMode(...), а затем выполните

SDL_FillRect(surf, NULL, 0xFFFFFF); // 0xFFFFFF = white in RGB, NULL = full window
SDL_Flip(surf);
person marc    schedule 17.07.2011
comment
@calccrypto Тогда покажи нам код. В идеале минимальный пример, который мы могли бы скомпилировать. - person Bart; 17.07.2011

Вам нужно вызвать SDL_Flip, чтобы изменения отобразились.

person Benjamin Lindley    schedule 17.07.2011
comment
Для SDL 2.0 вам нужно использовать SDL_UpdateWindowSurface(Window);, так как SDL_Flip() больше не существует. - person Qix - MONICA WAS MISTREATED; 22.07.2012

Вы можете использовать SDL_FillRect, чтобы заполнить экран/поверхность желаемым цветом.

person Bart    schedule 17.07.2011

Вам нужно вызвать SDL_UpdateRect после SDL_FillRect.

person anon    schedule 17.07.2011