2011-07-17 139 views
4

有什麼方法可以將空的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); 
+0

您使用的是OpenGL還是純SDL? – Bart

+0

pure sdl。我剛剛開始學習sdl – calccrypto

回答

4

採集做

SDL_FillRect(surf, NULL, 0xFFFFFF); // 0xFFFFFF = white in RGB, NULL = full window 
SDL_Flip(surf); 
+0

我的屏幕仍然是黑色:( – calccrypto

+0

@calccrypto然後給我們看一些代碼理想情況下,我們可以編譯一個最小的例子 – Bart

3

你可以使用SDL_FillRect你想要填滿屏幕/表面顏色。使用surf = SDL_SetVideoMode(...),然後從窗口表面

3

您需要SDL_FillRect之後調用SDL_UpdateRect。

5

您需要致電SDL_Flip才能顯示您的更改。

+0

哦哇我失敗了lol – calccrypto

+1

對於SDL 2.0,你需要使用'SDL_UpdateWindowSurface (Window);',因爲'SDL_Flip()'不再存在。 – Qix