我正在尝试为我正在构建的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];
}
如何解决此错误?
答案 0 :(得分:0)
尝试在创建背景后使上下文保持最新状态。我相信尽管所有的"魔法"都不会自动发生。其中一些辅助类为你做了。
_context = [[EAGLContext alloc] initWithAPI:api];
[EAGLContext setCurrentContext: _context];
第一行是您已经拥有的,第二行是您添加的行。