我正在尝试将我的 OpenGL 项目修改为 OpenGL ES 1.x。但是有一个函数调用我找不到任何解决方案来替换它。
glPushAttrib(GL_CURRENT_BIT | GL_LIGHTING_BIT | GL_COLOR_BUFFER_BIT | GL_ENABLE_BIT );
我在 OpenGL ES 1.x 中找不到 GL_CURRENT_BIT 掩码和 glPushAttrib 函数。
简单地说,我只是从 glPushAttrib 参数中删除了 GL_CURRENT_BIT 掩码,应用程序在窗口上显示了错误的背景(我在 OpenGL 环境中测试了它。背景是纹理。)。是否有任何解决方案可以替换 glPushAttrib(GL_CURRENT_BIT) 并让我在 OpenGL 上正确运行应用程序,或者是否有任何解决方案可以实现 glPushAttrib(GL_CURRENT_BIT) 我可以在 OpenGL 和 OpenGL ES 上正确运行?谢谢!
最佳答案
glPushAttrib
在 OpenGL ES 中不存在。旨在将 GL_CLIENT_PIXEL_STORE_BIT
作为输入的函数实际上是 glPushClientAttrib
,它也不存在(因此,常量也不存在)。
这些的功能本质上是存储可以使用 glPixelStorei
设置的所有状态功能。这可以手动实现,方法是在设置状态时记录这些状态,然后对 glPixelStorei
进行等效调用以恢复它们。参见 here (第 8 项)讨论(关于 OpenGL,适用于 OpenGL ES,因为它没有 glPush/PopClientAttrib
)。
关于c++ - 我如何在 OpenGL ES 1.x 中实现 glPushAttrib(GL_CURRENT_BIT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42263891/