我的Android应用程序已推出几个月,可以在任何数量的WVGA手机上使用,例如Droid,Droid 2,Galaxy等。
然而,在摩托罗拉Xoom上,一小部分纹理加载了白色框,图像应该在这里。
在线研究最常见的原因似乎是没有使用两种纹理的力量。这似乎不太可能解释,因为它们可以在很多其他设备上正常工作。此外,我 am 使用两种纹理的力量。需要注意的是,我正在动态地将一堆位图加载到1024 x 1024纹理中。我正在使用的代码来自一个名为Rokon的现已解散的库,相关的纹理图集代码在这里:http://code.google.com/p/rokon/source/browse/trunk/src/com/stickycoding/rokon/TextureAtlas.java?r=260 - 就像我说的那样,我怀疑这可能是因为它适用于其他许多其他因素设备和我以这种方式加载的许多纹理都可以正常工作。
但我不确定还有什么可能导致它。考虑到Xoom上可用的内存量与应用程序处理的其他设备相比,内存问题似乎不太可能。
现在我没有缩放,但我可以通过DeviceAnywhere(我看到白色背景)复制问题。
LogCat中没有任何感兴趣的内容。
我知道这不是很多,但我在这里不知所措,我应该在这里看到什么样的潜在原因?提前感谢任何想法。
答案 0 :(得分:1)
尝试使用glGetError()来查看OpenGL是否抛出任何错误
答案 1 :(得分:1)
您的应用程序是2D还是3D?当你在屏幕上画出精灵时;你在用哪种方法?
如果你的纹理在onDrawFrame
期间是白色的,可能取决于:
draw_texture
扩展程序 - 如果您使用的是2D 在运行时,使用此代码获取扩展并检查它们是否可用:
String extensions = gl.glGetString(GL10.GL_EXTENSIONS);
boolean supportsDrawTexture = extensions.contains("GL_OES_draw_texture");
// Continue here and sooner or later you should see where Xoom lacks support
// where other devices doesn't.
答案 2 :(得分:0)
您是否有可能违反Android的自动调整大小位图行为?在加载要检查的位图大小时打印出位图大小,或将它们移动到res/drawable-nodpi以完全避免这种行为。
答案 3 :(得分:0)
您的纹理是否有可能超过2048像素的宽度或高度?这是XOOM上允许的最大纹理大小。