CAOpenGL图层到图像

时间:2019-05-22 11:46:03

标签: cocoa opengl calayer nsview nsimage

有什么方法可以将CAOpenGLLayer的内容捕获为图像?

使用CALayer的{​​{1}}路线在10.14中无效(空图片),并且按照Apple的评论:

  

此方法的OS X v10.5实现不支持   整个Core Animation合成模型。 QCCompositionLayer,   未渲​​染CAOpenGLLayer和QTMovieLayer层。

显然,这从来没有解决。

renderInContext:路线使用

NSView

也不起作用,导致图像同样空白。

在包含NSBitmapImageRep* rep = [self bitmapImageRepForCachingDisplayInRect:self.bounds]; [self cacheDisplayInRect:self.bounds toBitmapImageRep:rep]; 的视图上调用时,将导致图像完全为空,在视图窗口的CAOpenGLLayer上,窗口内容存在-
除了OpenGL视图所覆盖的区域外,该区域整齐地被“剪切”(空白)。

任何有关如何将OpenGL内容呈现到contentView的建议,都值得赞赏。

1 个答案:

答案 0 :(得分:0)

您无需获取层的内容,而需要获取层的绘图代码以显式渲染到缓冲区中并将该缓冲区还给您。