帧缓冲对象问题

Wes*_*sux 5 iphone opengl-es eaglview uiviewcontroller uiview

您好,我正在使用OpenGLES为iPhone编程,但我目前遇到了一个奇怪的帧缓冲对象错误.

起初我正在学习Simon Maurice的一些教程:http: //web.me.com/smaurice/AppleCoder/Welcome.html

但是在继续其他教程之前我继续做了一些我自己的实验,但是我的实验遇到了问题.我试图做的是让EAGLView成为ViewController的视图,当基本代码最初来自教程时,这非常有效.

由于EAGLView是UIView的子类,因此不难做到这一点,所以继续进行实验我想用干净的石板来做.我使用基于Windows的应用程序项目在Xcode中创建了一个新项目,并创建了一个新的EAGLView和一个ViewController来执行与上一个项目相同的任务.

但是,在编译和运行后,视图显示为白色,并且控制台在createFramebuffer过程中输出"未能完成帧缓冲对象%x"错误.(错误控制台输出:"GLController [2071:207]无法使完整的帧缓冲对象0").

我首先想到的是我的代码,所以我将前一个项目的工作代码翻录到新项目中,但仍然收到相同的错误.与此同时,我将新项目代码移动到旧项目中,并使用成功的输出进行编译.

我很困惑为什么相同的代码在新项目中无法正常工作,但新代码将在旧项目中正常工作.如果有人知道我错过了什么,将不胜感激.

谢谢.

(还使用Apple示例代码中的几个EAGLView进行了测试,并且在新项目中出现相同的错误,但在附加了ViewController的旧项目中不会发生此错误.)

Jos*_*der 7

在这里黑暗中拍摄,缺少关于你所做的事情的更多信息,但是......你是通过IB实现你的EAGLView(并因此经历-initWithCoder:),还是以编程方式(-initWithFrame:)实例化你的EAGLView ?

如果你看一下EAGLView.m,你会发现只-initWithCoder:需要实际的初始化.将初始化代码迁移到共享(或-initWithFrame:唯一)初始化程序非常容易.


Raj*_*yan 0

opengles 模板程序从上一版 Iphone SDK 到当前版本有所变化。有编写用于在 ES2.0 和 ES1.1 之间进行选择的支持代码

请注意。