为什么Mac OS sdl2程序窗口没有响应?

时间:2019-03-25 14:54:31

标签: c++ sdl

我刚刚在Mac上设置了SDL2框架,但是编译和运行该程序成功,但窗口没有响应(我复制了创建矩形的代码)。

我使用xcode,我从这里开始遵循教程http://lazyfoo.net/tutorials/SDL/01_hello_SDL/mac/xcode/index.php 一步一步来。

<input id="myTextField"/>

为什么会发生此问题? 预先谢谢你

1 个答案:

答案 0 :(得分:0)

为了使编写SDL的程序“响应”操作系统,您应该将控制权交还给SDL,以便它处理系统消息并将它们作为SDL事件(鼠标事件,键盘事件等)提供给您。

为此,您必须添加一个使用SDL_PollEvent的循环,该循环应该看起来像

while(true)
{
    SDL_Event e;
    while (SDL_PollEvent(&e)) 
    {
        // Decide what to do with events here
    }

    // Put the code that is executed every "frame". 
    // Under "frame" I mean any logic that is run every time there is no app events to process       
}

您需要处理一些特殊事件,例如SDL_QuiEvent,才能关闭应用程序。如果要处理它,则应修改代码以使其看起来像这样:

while(true)
{
    SDL_Event e;
    while (SDL_PollEvent(&e)) 
    {
        if(e.type == SDL_QUIT)
        {
            break;
        }
        // Handle events
    }

    // "Frame" logic     
}