Opengl Tab栏应用程序中的上下文冲突

时间:2011-07-09 00:02:53

标签: iphone ios cocoa-touch opengl-es

我正在尝试在基于Xcode标签栏模板的应用程序的一个选项卡中显示OpenGL ES内容。但是,当我从OpenGL ES模板应用程序复制并粘贴代码时,程序崩溃并出现错误:

  

编程接收信号SIGBART   [(EAGLView *)self.view setContext:context];

此外,在输出窗口中,有两条消息:

  

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UIView setContext:]

     

在抛出'NSException'实例后终止调用

以下是我认为的相关代码:

- (void)awakeFromNib
{
    EAGLContext *aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];

    if (!aContext) {
        aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
    }

    if (!aContext)
        NSLog(@"Failed to create ES context");
    else if (![EAGLContext setCurrentContext:aContext])
        NSLog(@"Failed to set ES context current");

    self.context = aContext;
    [aContext release];

    [(EAGLView *)self.view setContext:context];
    [(EAGLView *)self.view setFramebuffer];

    if ([context API] == kEAGLRenderingAPIOpenGLES2)
        [self loadShaders];

    animating = FALSE;
    animationFrameInterval = 1;
    self.displayLink = nil;
}

如何摆脱这个错误?

0 个答案:

没有答案