SDL_VIDEORESIZE不起作用

时间:2010-11-06 16:28:54

标签: 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;
    }
}

返回0 + 1表示成功退出(主要返回0); return 0用于重启app(执行另一个SetVideoMode)。

看起来当我调整窗口大小时,事件不会被发送。

我正在使用SDL版本1.2.14。

编辑:

我写了一个示例程序,它起作用了。但是我再一次看了代码并且......在while()-.-

之后看到了一个分号

1 个答案:

答案 0 :(得分:1)

  1. 我相信您可以调用SDL_SetVideoMode()而无需退出SDL来调整大小
  2. ;过了一会儿迭戈塞维利亚注意到了
  3. 如果您不知道
  4. ,可以选择创建自动重新调整大小的屏幕

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