Я пытаюсь изменить свой проект OpenGL для OpenGL ES 1.x. Но есть вызов функции, я не могу найти никакого решения для его замены.
glPushAttrib(GL_CURRENT_BIT | GL_LIGHTING_BIT | GL_COLOR_BUFFER_BIT | GL_ENABLE_BIT );
Я не могу найти маску GL_CURRENT_BIT и функцию glPushAttrib в OpenGL ES 1.x.
Просто я просто удаляю маску GL_CURRENT_BIT из параметров glPushAttrib, и приложение показывает неправильный фон в окне (я тестировал его в среде OpenGL. Фон является текстовым). Есть ли какое-либо решение для меня, чтобы заменить glPushAttrib (GL_CURRENT_BIT) и позволить мне правильно запустить приложение на OpenGL или есть какое-либо решение для меня, чтобы реализовать glPushAttrib (GL_CURRENT_BIT), который я могу запускать как на OpenGL, так и на OpenGL ES? Спасибо!
glPushAttrib
не существует в OpenGL ES. Функция, которая предназначена для GL_CLIENT_PIXEL_STORE_BIT
в качестве входа на самом деле glPushClientAttrib
, который также не существует (и, следовательно, не существует и константа).
Функциональность этих функций заключается в хранении всех состояний, которые могут быть установлены с помощью glPixelStorei
функция. Это можно реализовать вручную, записав эти состояния по мере их установки и сделав эквивалентные вызовы glPixelStorei
восстановить их. Увидеть Вот (пункт № 8) для обсуждения (что касается OpenGL, применяется к OpenGL ES, в том, что он не имеет glPush/PopClientAttrib
).
Других решений пока нет …