开发2D游戏的时候,opengl的坐标系统的原点在窗口左下角,与其他的坐标系统不一致。我使用下面的方法来进行转换:
glViewport(0, 0, backingWidth, backingHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(0, (float)backingWidth, 0, (float)backingHeight, 0, 100);
/*
改变坐标系方向为windows的坐标系
(0,0)---x++
|
|
|
y++
*/
glTranslatef((float)0, (float)backingHeight, 0);
glRotatef(180.0f, 1.0f, 0.0f, 0.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
上面的方法对opengles 1.x是有效果的,2.0使用GLSL的话,貌似没有效果(我在一个未发布的手机的sdk上进行测试的,不过,也可能是sdk的问题,因为sdk还是beta版本,里面问题多多)。