渲染为颜色框的纹理

textures rendered as color boxes

我必须使用 Xcode7 将 32 位 iPhone/iPad 应用程序升级到 64 位。 这个应用程序是老式的 OpenGL(也许是 2009 年?)并且代码是意大利面条(是一个 win32 端口)所以我不知道它是如何工作的。 我所知道的是在 32 位中纹理看起来不错,但是当我更改为 64 位时所有纹理都呈现为颜色框。请看图片。 应用程序中的所有内容都是硬编码纹理,包括文本(某种 bmp 字体)。 你们知道可能导致此问题的原因吗?

终于找到祸根了。 该程序正在读取 bmp 的旧学校方式,所以一些 bmp 长数据类型在 32 位模式下是 4 个字节,但在 64 位模式下是 8 个字节!!!!!!!

所以我把 long 型改成了 int32_t Look at this debug screenshot