Проблема объекта Framebuffer - PullRequest
       28

Проблема объекта Framebuffer

5 голосов
/ 22 октября 2009

Здравствуйте, я программирую на OpenGLES для iPhone, но в настоящее время я застрял со странной ошибкой объекта кадрового буфера.

Сначала я читал несколько уроков от Саймона Мориса: http://web.me.com/smaurice/AppleCoder/Welcome.html

Но затем я перешел к выполнению нескольких собственных экспериментов, прежде чем продолжить работу с другими учебными пособиями, однако мой эксперимент столкнулся с проблемой. Я пытался сделать EAGLView видом ViewController, и это прекрасно работало, когда базовый код изначально был взят из учебных пособий.

Поскольку EAGLView является подклассом UIView, это не так сложно сделать, поэтому, продолжая эксперимент, я хотел сделать это с чистого листа. Я создал новый проект в XCode с проектом Приложения для Windows и создал новый EAGLView и ViewController для выполнения той же задачи, что и предыдущий проект.

Однако после компиляции и запуска представление становится белым, и консоль выдает ошибку «не удалось выполнить полный объект кадра буфера% x» во время процесса createFramebuffer. (Ошибка вывода на консоль: «GLController [2071: 207] не удалось создать полный объект кадрового буфера 0»).

Сначала я подумал, что это мой код, поэтому я скопировал рабочий код из предыдущего проекта в новый проект и все еще получаю те же ошибки. В то же время я перенес новый код проекта в старый проект и скомпилировал с успешным выводом.

Я не понимаю, почему тот же код не будет работать правильно в новом проекте, но новый код будет работать правильно в старом проекте. Если кто-то знает, что мне не хватает, это будет очень ценно.

Спасибо.

(также протестировано с несколькими примерами EAGLViews от Apple, и такая же ошибка возникает в новом проекте, но не возникает в старом проекте с присоединенным ViewController.)

Ответы [ 3 ]

7 голосов
/ 12 августа 2010

Снимок сделан в темноте, вам не хватает дополнительной информации о том, что вы сделали, но ... вы создаете экземпляр EAGLView через IB (и таким образом проходите через -initWithCoder:) или программно (-initWithFrame:)?

Если вы посмотрите на EAGLView.m, вы увидите, что только -initWithCoder: выполняет фактическую инициализацию. Этот код инициализации очень легко перенести в общий (или только -initWithFrame:) инициализатор.

4 голосов
/ 30 октября 2009

Я столкнулся с подобной проблемой при попытке установить EAGLView в качестве представления viewController. Вместо этого присоедините свойство view viewController к стандартному UIView. Затем, позже, когда представление успешно загрузилось (возможно, в методе viewDontLoad viewController), создайте экземпляр EAGLView и добавьте его в качестве подпредставления для viewController.view.

0 голосов
/ 25 октября 2009

Произошло изменение в шаблонной программе opengles с последнего Iphone SDK на текущий. Для выбора между ES2.0 и ES1.1

написан код поддержки

обратите внимание, что.

...