c++ - SDL_VIDEORESIZE 不起作用

标签 c++ resize sdl

我有一个 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() 之后看到了一个分号 -.-

最佳答案

  1. 我相信您可以直接调用 SDL_SetVideoMode() 而无需退出 SDL 来调整大小
  2. >;过了一会儿,迭戈塞维利亚注意到了
  3. 有一个选项可以创建一个自动调整大小的屏幕,以防你不知道

http://www.libsdl.org/cgi/docwiki.cgi/SDL_SetVideoMode 说明一切

关于c++ - SDL_VIDEORESIZE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113970/

相关文章:

c++ - 带有模板的类的构造方法

c++ - 如何从指针访问数组?

ios - 调整 Google map MapView iOS 的大小

iphone - UIView 内容剪辑不起作用/UIView 调整大小不起作用

c++ - 由于无法访问主函数之外的 SDL 函数而导致崩溃

c++ - 按地址返回时,这不超出范围吗? (SDL)

c++ - 如何在调整窗口大小时使文本显示在窗口中央,visual c++

html - 使用页面调整大小在 CSS 中拉伸(stretch)图像

c++ - 绕过SDL2中的 "int main(int argc, char** argv)"

c++ - 加载共享库 : libSDL2_mixer-2. 0.so.0 时出现“错误:无法打开共享对象文件:没有这样的文件或目录