MacOS OpenGL全屏 - >窗口问题

时间:2018-04-16 07:00:39

标签: macos opengl

我有一个OpenGL MacOS游戏,我的MacOS是10.13.4,包含所有最近的更新。

当游戏切换窗口时 - >全屏,一切都很好。

当切换全屏时 - >窗口时,它会在聚焦时呈现全屏白色,但在焦点不对焦时呈现正常。
并且游戏在全屏和窗口模式下最初运行良好。

代码已经很老了,这不是第一款使用此代码的游戏,我不记得曾在以前的MacOS版本上看过这个问题。

这是我的代码:

- (void)toggleFullscreen:(const bool)value
{
    if (value)
    {
        if (mFullScreenWindow)
            return;

        mFullScreenWindow = [[GameFullscreenWindow alloc] init];

        NSRect viewRect = [mFullScreenWindow frame];
        [mGameView stopDisplayLink:YES];
        [mGameView setFrameSize: viewRect.size];

        [mFullScreenWindow setContentView:mGameView];
        [mFullScreenWindow makeKeyAndOrderFront:self];

        RendererGLOSX::SaveDisplaySize(Vec2(viewRect.size.width, viewRect.size.height));
    }
    else
    {
        if (mFullScreenWindow == nil)
            return;

        NSRect viewRect = [mWindow contentRectForFrameRect:[mWindow frame]];
        [mGameView stopDisplayLink:YES];
        [mGameView setFrame:viewRect];

        [mWindow setContentView:mGameView];
        [mWindow makeKeyAndOrderFront:self];

        [mFullScreenWindow release];
        mFullScreenWindow = nil;

        RendererGLOSX::SaveDisplaySize(Vec2(viewRect.size.width, viewRect.size.height));
    }

    [mGameView stopDisplayLink:NO];
}

1 个答案:

答案 0 :(得分:0)

那是mFullScreenWindow呈现的。
通过在[mFullScreenWindow orderOut: self]之前添加[mFullScreenWindow release]来解决该问题。