2012-05-04 88 views
3

我正在为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 4.0.3上不显示OpenGL ES 2.0

现在引擎在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

检查*所有* GL调用错误。检查日志中是否有可疑条目。 –

+0

谢谢@stefan,我应该早些时候检查GL错误。问题出现在glDrawElements()中,我使用GL_UNSIGNED_INT(GL_UNSIGNED_BYTE和GL_UNSIGNED_SHORT只是允许的值)。 Android 2.3.3似乎并不关心这一点。我将其更改为GL_UNSIGNED_SHORT,现在它完美地工作:) – Devenec

回答

4

我应该早一点检查GL错误。问题发生在glDrawElements(),我用GL_UNSIGNED_INTGL_UNSIGNED_BYTEGL_UNSIGNED_SHORT是唯一允许的值)。 Android 2.3.3似乎并不关心这一点。我将其更改为GL_UNSIGNED_SHORT,现在它完美运行。