我在尝试将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风格的转换或 功能式演员
答案 0 :(得分:2)
在SDL2中,您应该创建SDL_Renderer
并使用SDL_RenderClear
。
如果您真的想使用SDL_FillRect
,那么您可以在单独的SDL_Surface
上调用它,然后分两步将该表面渲染到您的窗口上。 SDL2迁移指南讨论了这些内容:
https://wiki.libsdl.org/MigrationGuide
答案 1 :(得分:0)
SDL_RenderPresent