在我们的应用程序中,我们使用PNG精灵表,其中每个精灵仅用作遮罩。使用GLKTextureLoader
成功加载了这些内容。当iOS 7达到第5 /第6测试版时,GLKTextureLoader
的工作方式似乎发生了变化,因为突然我们所有的PNG都开始渲染错误,好像alpha预复制有问题。
在提交错误报告后,没有收到Apple的回复(问题是,令人担忧的是,仍然存在于iOS 7的实时版本中),我们决定将我们的PNG转换为PVR格式。
尝试使用GLKTextureLoader
NSDictionary *options = @{ GLKTextureLoaderOriginBottomLeft : @YES, GLKTextureLoaderApplyPremultiplication : @NO };
GLKTextureInfo *textureInfo = [GLKTextureLoader textureWithContentsOfURL:url options:options error:&error];
失败,错误12(GLKTextureLoaderErrorDataPreprocessingFailure
)。这个'预处理'步骤涉及什么,可能是什么问题?
以下是我检查的一些内容:
.pvr
textureWithContentsOfURL:options:error:
之后,但没有记录任何内容(大概GLKTextureLoader
正在消耗GL错误,或者错误与OpenGL无关)This answer表示这可能是由文件损坏引起的。这让我想知道我是否以某种方式错误地生成了PVR。我正在使用Imagination的PVRTexToolGUI来转换PNG:
答案 0 :(得分:4)
PVR文件有两个版本:新版本和旧版本。尝试以不同的文件格式保存您的PVR纹理(另存为遗留)。