我正在开发基于OpenGL的mac osx控件。目前我正在使用NSOpenGLView和CVDisplayLink来协调我在后台线程上的渲染。这很好用,但我需要允许Cocoa控件显示在这个基于OpenGL的控件上。
我意识到你可以通过将Cocoa控件放在无边界窗口中来实现这一点,但是,这对我的用户来说似乎不是一个非常好的工作流程。
或者我可以使视图层支持并且我得到了它,但是我不喜欢在主线程上渲染我的OpenGL内容,有时它会在帧速率下降时阻塞主线程。
是否有任何样本展示如何实现两全其美?
答案 0 :(得分:0)
渲染的后台线程完全无关紧要。您只需要为视图启用图层支持,然后在OpenGL内容的基础上正确合成子视图/控件。您还可以使用CAOpenGLLayer更快地使用CALayers进行分层。