android - PowerVR SGX GPU 的 OpenGL ES 问题

标签 android opengl-es powervr-sgx

我有一个 OpenGL 动态壁纸,可以在除 PowerVR SGX 系列以外的所有手机上正常运行。这包括几乎所有三星手机和摩托罗拉 Droid 系列。壁纸只不过是 PowerVR GPU 手机上的黑屏。我已经绞尽脑汁一周试图解决这个问题,但没有成功。

不同 GPU 之间的一个区别是它们的纹理压缩。我在这方面所做的一些事情是将纹理图像更改为 256x256 的正方形。将其从 8 位更改为 16 位 rgba,甚至尝试建立索引。

我有 PowerVR 可用的所有扩展以及 Adreno 可用的扩展的列表。似乎可用的扩展有很多差异,但我不知道哪些功能与哪些扩展相匹配(尽管我可以猜测)。以下是我使用的函数列表:

  • glLightfv
  • glMaterialfv
  • glDepthFunc
  • glEnableClientState
  • glViewport
  • glMatrixMode
  • glLoadIdentity
  • glu透视
  • glclearcolor
  • glclear
  • gl翻译
  • glRotatef
  • glVertexPointer
  • glTexCoordPointer
  • glColor4f
  • glNormal3f
  • glDrawArrays
  • glTexParamterx

我正在使用 Robert Green 的 GlWallPaperService,并已在 Trying to draw textured triangles on device fails, but the emulator works. Why? 尝试过此解决方案。 。有谁知道为什么 PowerVR 芯片给我带来这么大的困难以及我能做些什么吗?

最佳答案

删除 EGL10.EGL_RED_SIZE、EGL10.EGL_GREEN_SIZE 和 EGL10.EGL_BLUE_SIZE 但在eglChooseConfig 中保留 EGL10.EGL_DEPTH_SIZE、EGL10.EGL_NONE 有效。我认为 PowerVR 芯片处理 RGB 的方式使得定义它们成为一个问题。

关于android - PowerVR SGX GPU 的 OpenGL ES 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341146/

相关文章:

ios - 如何在 OpenGL ES 1.1 中指定点 Sprite 纹理坐标?

c - 嵌套模板 - OpenGL ES

android - PowerVR Android 示例 : makefile not working

ios - 如何为 cpp 类创建 objective-c 委托(delegate)?

Java Android 引用内部类中的非最终答案

opengl-es - 请向我解释一下 Android 中的 EGL 到底是什么?

android - 获取具有签名保护级别的安卓权限

java - PowerVR 的优点和缺点是什么?

android - 提高 ListView 从 SD 加载图片到 ListView 时的效率

android - 尝试UNINSTALL_SHORTCUT但快捷方式不会消失