我有一个子类的CAOpenGLLayer
class
重写了drawInCGLContext
,在那里我用OpenGL
绘制了一个矩形。将CAOpenGLLayer
添加到CALayer
并显示。
因此,当我想绘制某种东西时,我需要使用这种体系结构在drawInCGLContext
中进行绘制。
我想要的是一种其他class
用于绘制,设置动画或渲染的上下文,但是每次drawInCGLContext
出现时都会显示该上下文。
因此,基本上我的子类唯一要做的就是显示一个远程(OpenGL)context
,实现此目的的最佳方法是什么?还是我应该考虑使用其他方法?
*不使用CALayer
是不可行的。
最佳答案
您是否考虑过使用帧缓冲对象(FBO)?您可以创建一个由纹理支持的对象。您的“远程”工程图类可以绘制到FBO中,这将导致工程图转到支持它的纹理。然后,您可以在其他地方使用该纹理,例如将其拖到CAOpenGLLayer子类的屏幕上。有关如何使用FBO的详细信息,请参见this link。