OpenGL ES 2.0无效的可绘制错误

时间:2014-05-08 19:58:07

标签: ios objective-c graphics opengl-es opengl-es-2.0

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

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

尝试在创建背景后使上下文保持最新状态。我相信尽管所有的"魔法"都不会自动发生。其中一些辅助类为你做了。

_context = [[EAGLContext alloc] initWithAPI:api];
[EAGLContext setCurrentContext: _context];

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