【发布时间】:2011-05-30 12:20:14
【问题描述】:
我有一个用于从 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)。
感谢任何帮助。
【问题讨论】:
-
我认为您将不得不将其缩小到一个特定的代码块,该代码块会因优化而中断,然后其他人才能真正帮助您。如果您在最近的 NDK 中使用 GCC 4.4.x,您可以在源文件中改变优化以缩小范围:gcc.gnu.org/onlinedocs/gcc/…
-
根据同事给我的一些建议,我对所有文件启用了优化,同时对可能导致问题的任何可疑文件禁用了优化。所以我在我的纹理处理文件上这样做了,经过测试解决了这个问题。
标签: android graphics opengl-es android-ndk corruption