使用优化编译库会破坏图形

时间:2011-05-30 12:20:14

标签: android graphics opengl-es android-ndk corruption

我有一个本地库,用于我从iPhone移植到Android的游戏。我们的目标操作系统版本是1.6,游戏整体效果很好,没有优化。但是,当我启用任何类型的优化(无论是-O1,-O2还是-O3),一切(输入,图形,声音,游戏代码),但图形都能正常工作。

这是我应该得到的:

http://i56.tinypic.com/2yzn4o6.png

我得到了什么:

http://i51.tinypic.com/raqogl.png

我已经尝试过在NDK邮件列表上获得一些帮助,但我没有回复。我甚至试图将纹理发送为纯白色,它们表现得更奇怪,在加载屏幕中微小的白色三角形“下降”,直到整个屏幕变白,而我只画了几个三角形。

我正在使用vs-android进行编译,但即使使用NDK-build我也有同样的问题。我还验证了我从纹理获得的像素数据是100%有效的(我在调试时将其转储到SD卡上的PNG)。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

显然有些编译器可能会错误地优化您的文件并导致这些类型的图形错误。如果您遇到其他平台上没有发生的某种错误,例如在我的情况下,这个OpenGL错误,如果您首先禁用所有文件的优化然后按顺序重新启用它们,则可以在Android上解决它。您找到了导致您的错误的源文件。在我的例子中,它是一个OpenGL纹理文件,不知何故被错误编译。