我正在尝试为正在构建的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];

第一行是您已经拥有的内容,第二行是您添加的内容。

09-08 01:52