我知道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。
答案 0 :(得分:1)
BTW我这样做是基于OpenGL ES 2.0的cocos2d-x 3.5。
从cocos2d-x github page(我的重点):
- 基于OpenGL ES 2.0(移动)/ OpenGL 2.1(桌面)
您很可能根本不使用GLES2上下文,而是使用GL 2.1,它支持所有这些遗留功能,如固定功能管道和立即模式。
请注意,立即模式(glBegin
/ glEnd
)从不是GLES的一项功能,即使在实现固定功能管道的1.x中也是如此。它仅存在于传统桌面GL中。如果您在移动设备上运行它,您的代码将会失败。