我正在开发一个基于OpenGL的mac控件。目前,我正在使用NSOpenGLView和CVDisplayLink来协调后台线程上的渲染。这很好用,但我需要允许Cocoa控件在这个基于OpenGL的控件上显示。
我知道你可以通过在无边框窗口中放置你的Cocoa控件来做到这一点,然而,对于我的用户来说,这似乎不是一个很好的工作流程。
或者,我可以让视图分层,然后让它工作,但是我不喜欢在主线程上呈现我的OpenGL内容,有时当帧速率下降时,它会阻塞主线程。
有没有什么例子可以说明如何做到两全其美呢?
发布于 2018-01-11 05:28:55
渲染的后台线程完全无关紧要。您只需要为视图启用图层支持,然后子视图/控件将正确地组合到您的OpenGL内容之上。您还可以使用CAOpenGLLayer对CALayers进行更显式的分层。
https://stackoverflow.com/questions/14267147
复制相似问题