首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MacOS OpenGL全屏->窗口问题

MacOS OpenGL全屏->窗口问题
EN

Stack Overflow用户
提问于 2018-04-16 07:00:38
回答 1查看 143关注 0票数 0

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

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

当is开关全屏->窗口时,它将全屏呈现为白色,而在焦点中则是白色,但当它不在焦点时则呈现得很好。

该游戏最初运行良好,无论是在全屏模式还是窗口模式。

这段代码很古老,这不是第一款使用这种代码的游戏,我不记得我在以前的MacOS版本中看到过这个问题。

这是我的代码:

代码语言:javascript
运行
复制
- (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];
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-19 14:19:20

这是mFullScreenWindow渲染的。

通过在[mFullScreenWindow orderOut: self]之前添加[mFullScreenWindow release]解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49851275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档