我有一个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];
}
答案 0 :(得分:0)
那是mFullScreenWindow
呈现的。
通过在[mFullScreenWindow orderOut: self]
之前添加[mFullScreenWindow release]
来解决该问题。