SDL2 FillRect与SDL_Window问题

时间:2014-03-26 19:20:59

标签: c++ sdl

我在尝试将SDL_FillRect与SDL 2.0一起使用时遇到问题

这是我的代码:

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 \ another的测试   用sdl \ main.cpp(16)测试:错误C2664:' int SDL_FillRect(SDL_Surface)   *,const SDL_Rect *,Uint32)' :无法从' SDL_Window *'转换参数1到' SDL_Surface *'

     

1>指向的类型是   无关;转换需要reinterpret_cast,C风格的转换或   功能式演员

2 个答案:

答案 0 :(得分:2)

在SDL2中,您应该创建SDL_Renderer并使用SDL_RenderClear

如果您真的想使用SDL_FillRect,那么您可以在单独的SDL_Surface上调用它,然后分两步将该表面渲染到您的窗口上。 SDL2迁移指南讨论了这些内容: https://wiki.libsdl.org/MigrationGuide

答案 1 :(得分:0)

为了让你的纹理出现在你的渲染

中,需要

SDL_RenderPresent