我有一个子类CAOpenGLLayer
class
,它会覆盖drawInCGLContext
,我会用OpenGL
绘制一个矩形。 CAOpenGLLayer
已添加到CALayer
并显示。
因此,当我想要绘制一些内容时,我需要在drawInCGLContext
中使用此架构进行绘制。
我想要的是其他class
用于绘制,动画或渲染的一种上下文,但每次drawInCGLContext
出现时都会显示。
所以基本上我的子类唯一应该做的就是显示一个远程(OpenGL)context
,实现这个目标的最佳方法是什么?或者我应该考虑一种不同的方法吗?
*不使用CALayer
不是一种选择。
答案 0 :(得分:3)
您是否考虑过使用帧缓冲对象(FBO)?您可以创建一个由纹理支持的。您的“远程”绘图类可以绘制到FBO中,这将导致绘图转到支持它的纹理。然后,您可以在其他地方使用该纹理,例如将其blit到CAOpenGLLayer子类中的屏幕。有关如何使用FBO的详细信息,请参阅this link。