首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大多数手机上都可以使用OpenGL安卓应用程序,但Xoom上的纹理是白色的。

大多数手机上都可以使用OpenGL安卓应用程序,但Xoom上的纹理是白色的。
EN

Stack Overflow用户
提问于 2011-03-15 20:57:34
回答 4查看 1.1K关注 0票数 1

我的Android应用程序已经发布了几个月,并且可以在任意数量的WVGA手机上正常工作,比如Droid、Droid 2、Galaxy等等。

然而,在摩托罗拉Xoom上,有一小部分纹理加载白色框,图像应该在其中。

在线研究最常见的原因似乎是没有使用两种纹理的力量。这似乎是一个不太可能的解释,因为它们在许多其他设备上运行良好。另外,我正在使用两种纹理的力量。请注意,我正在动态地将一串位图加载到1024×1024纹理中。我使用的代码来自一个名为Rokon的已经失效的库,相关的纹理地图集代码就在这里:http://code.google.com/p/rokon/source/browse/trunk/src/com/stickycoding/rokon/TextureAtlas.java?r=260 --就像我说的,我怀疑这可能是原因,因为它能在很多其他设备上工作,而且我用这种方式加载的许多纹理都工作得很好。

但我不确定还会是什么引起的。考虑到Xoom上可用的内存与应用程序使用的其他设备相比,内存问题似乎不太可能出现。

现在我没有变焦,但是我可以通过DeviceAnywhere复制这个问题(在这里我可以看到白色背景)。

在LogCat中也没有什么值得注意的地方。

我知道这没什么可做的,但是我现在很困惑,我应该在这里找出哪些潜在的原因呢?提前谢谢你的任何想法。

EN

回答 4

Stack Overflow用户

发布于 2011-03-15 21:55:45

尝试使用glGetError()来查看OpenGL是否抛出任何错误

票数 1
EN

Stack Overflow用户

发布于 2011-03-15 22:18:53

您的应用程序是2D还是3D?当你在屏幕上画你的精灵时,你用的是哪种方法?

如果您的纹理在onDrawFrame期间是白色的,这可能取决于:

  • 非纹理四角体(使用VBO:s或标准顶点数组)--可能不会,因为它可以在其他设备上工作。
  • Xoom缺乏对draw_texture扩展的支持-如果您使用的是2D
  • Xoom缺乏对VBO:s (顶点缓冲对象)的支持--可能不是,几乎所有的Android设备都支持VBO:s。
  • 您是否实现了Xoom不支持的纹理压缩?

在运行时,使用以下代码获取扩展并检查它们是否可用:

代码语言:javascript
复制
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.
票数 1
EN

Stack Overflow用户

发布于 2011-03-16 08:53:24

你有可能对Android的自动调整位图行为产生抵触吗?在加载以检查位图大小时,打印出它们,或者将它们移动到res/可绘制-结核,以完全避免这种行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5317967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档