【问题标题】:SDL Resolution issueSDL 分辨率问题
【发布时间】:2012-02-20 06:00:10
【问题描述】:

使用 SDL 一段时间后,我发现了一个小问题。 设置全屏视频模式时:

screen = SDL_SetVideoMode(WIDTH,HEIGHT,BITDEPTH,FLAGS);

带着旗帜:

const Uint32 Graphics::FLAGS = SDL_HWSURFACE | SDL_DOUBLEBUF |SDL_FULLSCREEN;

屏幕按原样进入全屏状态。 但是当游戏结束时,显示器的分辨率会保持游戏的分辨率(在我的情况下为 800x600),而不是回到游戏前的分辨率。 无论如何我可以在代码方面解决这个问题吗?任何帮助将不胜感激。

【问题讨论】:

  • 你能发布一个重现问题的小例子吗?
  • 好的,给我一点时间(这个问题的项目有点大)。
  • 尝试小例子时发现问题。我忘记包含 SDL_Quit(),这意味着我的程序将“干净”退出而不运行 SDL 的清理内容(例如修复分辨率)。会把它写成我自己的答案,但它不会让我等待 7 个小时。复制/粘贴,一切都是你的。感谢您的帮助!

标签: c++ graphics sdl resolution


【解决方案1】:

您应该声明处理结束,使用块中的数据释放内存,例如 SDL_Quit() 或 SDL_FreeSurface(),如果您没有这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多