glRenderbufferStorage GL_INVALID_ENUM

Следуя Руководству по программированию OpenGL ES IOS Я использую glRenderbufferStorage при настройке FBO. В руководстве написано использовать:

glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, width, height);

В моем коде (поскольку GL_RGBA8 не определено) я использую

glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8_OES, width, height);

и выдает исключение GL_INVALID_ENUM. Это правильный способ настроить FBO? Это проект OpenGL ES 2.0.


person Mr. Smith    schedule 18.11.2012    source источник


Ответы (1)


Документ немного странный, мне не удалось заставить его работать, следуя руководству, и у меня тоже нет этого перечисления GL_RGBA8. На самом деле очень раздражен.

Во всяком случае, для colorRenderBuffer способ, которым он показан на сайте Рэя Вендерлиха (также в этой документации Apple, если вы немного прокрутите вниз в «экранном буфере кадра»), выглядит так:

glGenRenderbuffers(1, &colorRenderBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, colorRenderBuffer);
[context renderbufferStorage:GL_RENDERBUFFER fromDrawable:eglLayer];

Эта документация Apple кажется устаревшей.

person Zhang    schedule 07.01.2013