我正在尝试为正在构建的iOS应用程序设置openGL,但出现以下错误:
-[EAGLContext renderbufferStorage:fromDrawable:]: invalid drawable
这是我的代码的一部分,位于UIViewController类中:
@implementation MyViewController
{
CAEAGLayer *_eaglLayer;
EAGLContext *_context;
GLuint _colorRenderBuffer;
}
+(Class)layerClass
{
return [CAEAGLLayer class];
}
-(void)setup
{
_eaglLayer = (CAEAGLLayer *)self.view.layer;
_eaglLayer.opaque = YES;
EAGLRenderingAPI api = kEAGLRenderingAPIOpenGLES2;
_context = [[EAGLContext alloc] initWithAPI:api];
glGenRenderbuffers(1, &_colorRenderBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _colorRenderBuffer);
[_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:_eaglLayer];
}
如何解决此错误?
最佳答案
创建上下文后,尝试使其成为当前上下文。我相信,尽管其中一些辅助类为您带来了所有“魔力”,但这不会自动发生。
_context = [[EAGLContext alloc] initWithAPI:api];
[EAGLContext setCurrentContext: _context];
第一行是您已经拥有的内容,第二行是您添加的内容。