具有静态(固定功能)管道的 OpenGL ES 2.0 API?

OpenGL ES 2.0 with static (Fixed Function) pipeline API?

我知道OpenGL ES 2.0标准抛弃了所有可以达到相同结果的方法只保留一个。这就是为什么从规范中删除静态管道而只存在动态管道的结果。但奇怪的是我使用这段代码并且它有效:

glColor3f(0, 1, 1);//white
glBegin(GL_LINE_LOOP);
glVertex2f(lower.x, lower.y);
glVertex2f(upper.x, lower.y);
glVertex2f(upper.x, upper.y);
glVertex2f(lower.x, upper.y);
glEnd();

我使用的这个API函数属于静态管道,就像我在不使用着色器的情况下绘制的一样。顺便说一句,我这样做是基于 OpenGL ES 2.0 的 cocos2d-x 3.5。

BTW I do this is cocos2d-x 3.5 that is based on OpenGL ES 2.0.

来自cocos2d-x github page(我强调):

  • OpenGL ES 2.0 (mobile) / OpenGL 2.1 (desktop) based

您很可能根本不使用 GLES2 上下文,而是使用 GL 2.1 上下文,它确实支持所有这些遗留功能,如固定功能管道和即时模式。

请注意,即时模式 (glBegin/glEnd) 从来没有 GLES 的功能,甚至在 1.x 中也没有实施固定功能管道。它只存在于遗留桌面 GL 中。如果您在移动设备上 运行 您的代码将失败。