2014-03-26 63 views
1

我在嘗試使用SDL_FillRect與SDL 2.0SDL2 FillRect與SDL_Window發出

這裏的問題是我的代碼:

bool running = true; 

//Initialise SDL 
SDL_Init(SDL_INIT_EVERYTHING); 

SDL_Window *screen = SDL_CreateWindow("Test Game", 
    SDL_WINDOWPOS_UNDEFINED, 
    SDL_WINDOWPOS_UNDEFINED, 
    640, 480, 
    SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_OPENGL); 

while (running){ 
    SDL_FillRect(screen, NULL, 0); 
} 

//Quit SDL 
SDL_Quit(); 

return 0; 

我得到的錯誤是:

1 > c:\ users \ ethan \ desktop \ C++ projects \另一個用sdl \ test的測試 用sdl \ main.cpp(16)測試:error C2664:'int SDL_FillRect(SDL_Surface *,const SDL_Rect *,Uint32)':不能轉換參數1 f rom'SDL_Window *'to'SDL_Surface *'

1>指向的類型是 無關;轉換要求reinterpret_cast,C樣式轉換或 函數樣式轉換

回答

2

在SDL2,你應該創建一個SDL_Renderer和使用SDL_RenderClear

如果你真的想使用SDL_FillRect,那麼你可以在一個單獨的SDL_Surface上調用它,然後將這個表面分兩步渲染到你的窗口。這個東西的SDL2遷移指南講座: https://wiki.libsdl.org/MigrationGuide

0

SDL_RenderPresent是需要的,以便爲您的紋理存在於渲染

+0

這個帖子被自動標記爲低質量的,因爲它是如此之短。你介意擴大一點來解釋它是如何解決這個問題的? – gung