[全屏显示标题栏时出现金属渲染错误

问题描述 投票:1回答:1

当我绘制任何形状(无论是否带有纹理)时,当我进入全屏模式时,它将闪烁,并在将鼠标移至顶部时显示标题栏。它将变轻,然后像瞬间一样返回。我不知道这种情况是否发生在纯色上,但是当我为顶点着色并绘制渐变或应用纹理时,就会发生这种情况。即使很微妙,也很烦人。我该如何解决?

[如何复制:在Metal中创建形状,或者对顶点进行不同的着色以创建渐变,或者在其上应用纹理,然后使窗口全屏显示。将光标移到窗口顶部。当标题栏显示时,形状/纹理将短暂闪烁。我该如何解决?

我正在使用macOS 1.15 Catalina。

即使使用Xcode的示例Metal游戏也可以证明这一点。只需进入全屏模式,显示标题栏,当您显示和取消显示标题栏时,它将不流畅。

更新:我已经意识到,如果我将绘图代码放在viewDidLoad()中而不是draw()中,则此行为将停止。我如何做到这一点,而不必只渲染一帧就不会出错?

这是一个非常困难的问题,因为我不知道该怎么做。此错误也很难修复,因为它有时仅会发生。

Example of the bug (Video)

macos rendering fullscreen metal
1个回答
0
投票

您最好的选择是将此错误报告给Apple。我试图进行研究,但似乎对该错误没有任何结果。

viewDidLoad中的绘图代码只运行一次,似乎没有发生。也许您可以将其保留在那里,然后每秒手动调用MetalView的draw方法60次。

© www.soinside.com 2019 - 2024. All rights reserved.