我有一个 SDL 应用程序并且想要使窗口可调整大小。所以我在 SDL_SetVideoMode() 中放置了适当的标志并制作了一个事件处理程序。但是当我调整窗口大小时,处理程序未激活。我不知道为什么。
我的事件循环代码:
while (SDL_PollEvent (&event));
{
if (event.type == SDL_QUIT)
return 0+1;
else if (event.type == SDL_VIDEORESIZE)
{
board.x = static_cast<int> ( static_cast<float> (event.resize.w - 2 * hMargin) / Field + 0.5f );
board.y = static_cast<int> ( static_cast<float> (event.resize.h - 2 * vMargin - Face - FaceSpace) / Field + 0.5f );
return 0;
}
}
return 0+1为成功退出(main返回0); return 0 用于重新启动应用程序(执行另一个 SetVideoMode)。
看起来当我调整窗口大小时,事件没有发送。
我使用的是 SDL 版本 1.2.14。
编辑:
我写了一个示例程序,它运行良好。但是我再次查看了代码并且...在 while() 之后看到了一个分号 -.-
最佳答案
- 我相信您可以直接调用 SDL_SetVideoMode() 而无需退出 SDL 来调整大小
- >;过了一会儿,迭戈塞维利亚注意到了
- 有一个选项可以创建一个自动调整大小的屏幕,以防你不知道
关于c++ - SDL_VIDEORESIZE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113970/