OpenGL ES 2.0与静态(固定功能)管道API?

时间:2015-05-15 11:32:58

标签: opengl-es cocos2d-x

我知道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。

1 个答案:

答案 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中。如果您在移动设备上运行它,您的代码将会失败。