您好,我正在使用iPhone的OpenGLES进行编程,但目前遇到了奇怪的帧缓冲区对象错误。

最初,我关注着西蒙·莫里斯(Simon Maurice)的一些教程:
http://web.me.com/smaurice/AppleCoder/Welcome.html

但是后来我继续做自己的一些实验,然后继续其他教程,但是我的实验遇到了问题。我试图做的是使EAGLView成为ViewController的 View ,当基本代码最初来自于教程时,这可以很好地工作。

由于EAGLView是UIView的子类,因此做到这一点并不难,因此继续进行实验,我希望使用干净的外观。我使用基于Windows的Application项目在Xcode中创建了一个新项目,并创建了一个新的EAGLView和一个ViewController来完成与上一个项目相同的任务。

但是,编译并运行 View 后, View 变成白色,并且在createFramebuffer进程中控制台输出“无法制作完整的帧缓冲区对象%x”错误。
(错误控制台输出:“GLController [2071:207]无法创建完整的帧缓冲区对象0”)。

我最初以为是我的代码,所以我将先前项目中的工作代码撕到了新项目中,但仍然收到相同的错误。同时,我将新项目代码移到旧项目中,并以成功的输出进行了编译。

我对为什么相同的代码在新项目中无法正常工作而新代码在旧项目中仍可以正常工作感到困惑。如果有人知道我想念的东西,将不胜感激。

谢谢。

(还使用Apple示例代码中的多个EAGLViews进行了测试,并且在新项目上发生了相同的错误,但在附加了ViewController的旧项目上没有发生相同的错误。)

最佳答案

在这里黑暗中拍摄,缺少有关您完成的操作的更多信息,但是...您是通过IB(然后通过-initWithCoder:)还是以编程方式(-initWithFrame:)实例化EAGLView?

如果查看EAGLView.m,将会看到只有-initWithCoder:才进行实际的初始化。将初始化代码迁移到共享的(或仅-initWithFrame:)初始化器非常容易。

关于iphone - 帧缓冲对象问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1606459/

10-10 04:54