android - 获取 OpenGL 最大纹理大小

标签 android opengl-es

我正在开发一个将广泛使用位图的 Android 应用程序,我正在寻找一种可靠的方法来为不同设备上的 OpenGL 获取最大纹理大小。
我知道最小尺寸 = 2048x2048,但这还不够好,因为已经有分辨率更高的平板电脑(例如 2560x1600)
那么有没有靠谱的方式获取这些信息呢?

到目前为止,我已经尝试过:

  • Canvas.getMaximumBitmapWidth()(返回 32766,而不是 2048)
  • GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE ...)(返回 0)

我正在使用 minimum-sdk = 15 (ICS) 并在 Asus Transformer TF700t Infinity 上对其进行测试

有没有人知道另一种获取它的方法? 或者我是否必须编译一个已知 GPU 及其最大 Canvas 大小的列表?

最佳答案

尝试使用这段代码

int[] maxTextureSize = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxTextureSize, 0);

maxTextureSize 存储解码图像的大小限制,例如 4096x4096、8192x8192 。请记住在 MainThread 中运行这段代码,否则你将得到零。

关于android - 获取 OpenGL 最大纹理大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981125/

相关文章:

iphone - 如何提高 iPhone 上的 OpenCV 性能?

android - Google Play 服务 Unity 插件不显示排行榜

java - 使用 DataOutputStream 时换行,Android

java - 运行 android native 代码导致 java.lang.UnsatisfiedLinkError

ios - YUV420p 有很多绿色 --> iOS 上 OpenGL 2.0 着色器中的 RGB

iphone - 如何使用OpenGL ES 1.1实现海洋表面效果?

android - 使用 Path 从 Bitmap 中剪切区域

java - 空指针异常 : uriString

ios - 渲染到纹理 : always black texture

android - OpenGLRenderer 试图缩小位图 - 当到达 ViewPager 的末尾时