我正在为Android编写完全原生的OpenGL ES 2.0游戏引擎。之前我开发的是三星Galaxy S(Android 2.3.3),现在是三星Galaxy S II(更新到Android 4.0.3)。我没有在Galaxy S II上尝试使用Android 2.3.3(硬件特定问题?)。
现在引擎在Android 2.3.3(在Galaxy S上测试)上运行并呈现正常,但它不能在Android 4.0.3上呈现(在Galaxy S II上测试)。问题与此类似:OpenGL Renderer not working on Ice Cream Sandwich
除了渲染之外,其他所有内容在4.0.3上都没有问题,屏幕上没有任何内容。我设法在4.0.3上渲染一个三角形,但从模型中提取的顶点不会渲染(使用glDrawElements())有或没有纹理。
我希望有一个简单的解决方案。
干杯
答案 0 :(得分:4)
我应该早点检查GL错误。问题发生在glDrawElements()
,我使用GL_UNSIGNED_INT
(GL_UNSIGNED_BYTE
和GL_UNSIGNED_SHORT
只允许使用值)。 Android 2.3.3似乎并不关心这一点。我将其更改为GL_UNSIGNED_SHORT
,现在效果非常好。