CAOpenGLLayer显示远程上下文

时间:2011-11-08 14:49:03

标签: cocoa opengl core-animation calayer openglcontext

我有一个子类CAOpenGLLayer class,它会覆盖drawInCGLContext,我会用OpenGL绘制一个矩形。 CAOpenGLLayer已添加到CALayer并显示。

因此,当我想要绘制一些内容时,我需要在drawInCGLContext中使用此架构进行绘制。

我想要的是其他class用于绘制,动画或渲染的一种上下文,但每次drawInCGLContext出现时都会显示。

所以基本上我的子类唯一应该做的就是显示一个远程(OpenGL)context,实现这个目标的最佳方法是什么?或者我应该考虑一种不同的方法吗?

*不使用CALayer不是一种选择。

1 个答案:

答案 0 :(得分:3)

您是否考虑过使用帧缓冲对象(FBO)?您可以创建一个由纹理支持的。您的“远程”绘图类可以绘制到FBO中,这将导致绘图转到支持它的纹理。然后,您可以在其他地方使用该纹理,例如将其blit到CAOpenGLLayer子类中的屏幕。有关如何使用FBO的详细信息,请参阅this link