多次渲染CALayer

时间:2018-12-18 16:54:57

标签: macos core-animation

我一直在尝试找出在辅助窗口中显示现有CALayer的最佳方法,以允许在辅助监视器上实时全屏输出。另外,我希望能够在原始CALayer的应用程序中显示实时缩略图,看来我应该能够找到可以满足这两个要求的设置。

到目前为止,我的研究产生了以下选择:

  1. CALayer.render(在CGContext中):使用原始图层并以此方式将其重绘到其他视图,并设置计时器或CVDisplayLink以每帧重绘。
  2. 每帧将CALayer渲染为NSBitmap。并在整个应用程序的NSImageView中使用该位图。
  3. 使用CAMetalLayer并使用MTKView多次渲染纹理。我对Metal并不是很熟悉,这似乎是一个非常优雅的解决方案,但是我不确定是否需要一路走到金属我自己。
  4. 将CARemoteLayerServer与CARemoteLayerServer一起使用。 对于CALayer的进程内共享来说,这似乎是一个过于复杂的设置,并且如果我需要共享层跨进程,则感觉这种方法更合适。
  5. 使用CAReplicatorLayer。我没有使用复制器层来创建副本网格,而是尝试使用它来创建一个副本,但是您似乎无法将CALayer添加到多个“父层”中“。

总而言之,我已经找到了一些可行的解决方案,但是由于我是使用Core Animation的新手,所以我不确定哪个方向占用的资源最少,而且我可能仍然缺少一个更简单的解决方案。 / p>

有人尝试过类似的东西吗?

0 个答案:

没有答案