MonoMac应用程序& OpenGL - 奇怪的帧时间

时间:2014-11-26 17:05:50

标签: macos opengl monomac

我正在尝试使用MonoMac创建一个带有OpenGL视图的应用程序。设置应用程序和NSOpenGLView非常简单......

...但由于某种原因,我无法获得一致的帧速率渲染OpenGL。我遇到的问题是10帧中有9帧具有完美的性能,而且每十帧左右都会产生大量的帧时间峰值(单帧约为60ms-80ms)。慢帧的时间与控件的大小相关(使用视网膜后备缓冲区更是如此)。

我一直在挖掘并且没有提出任何适用于我的情况。

  • 我尝试将NSOpenGLView与CVDisplayLink一起使用,并在主线程上使用计时器和DrawRect进行渲染。
  • 我也尝试过两个版本的MonoMacGameView。实际上MonoMacGameView具有一致的性能,但只在我的窗口没有背景颜色时才会绘制。
  • 我重新实现了运行循环以执行我自己的NextEvent轮询,以发现这不是问题...

所以,我目前的预感是它与Cocoa视图中的图层支持渲染有关,但我真的无法弄清楚导致这种情况的原因。

有关导致此延迟的原因的任何提示?

1 个答案:

答案 0 :(得分:0)

我找到了一个产生相当好结果的解决方案:

总之,使用核心动画层是唯一可行的解​​决方案。