首页 文章

SDL2 FillRect与SDL_Window问题

提问于
浏览
1

我在尝试将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 \另一个测试用sdl \ main.cpp(16):错误C2664:'int SDL_FillRect(SDL_Surface *,const SDL_Rect *,Uint32)':不能将参数1从'SDL_Window *'转换为'SDL_Surface *'1>指向的类型不相关;转换需要reinterpret_cast,C风格的转换或函数式转换

2 回答

  • 2

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

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

  • 0

    需要 SDL_RenderPresent 才能使纹理出现在渲染中

相关问题