如何在不同手机上查找最大纹理尺寸?

15

我正在尝试找出原始 Motorola Droid 的最大纹理大小。 我相信 G1 的最大纹理大小为 512,但如果有更正式的方法可以找出来,那将会很好,这样我就可以构建一个合适的瓦片系统。

2个回答

26

您可以使用glGetIntegerv请求最大纹理大小:

int[] maxTextureSize = new int[1];
gl.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxTextureSize, 0);
Log.i("glinfo", "Max texture size = " + maxTextureSize[0]);

5
GL是什么?GLES10又是什么?我尝试在我的活动的onResume方法中运行它,但它返回 0... - Yar
7
你应该参考安卓的OpenGL ES实现(android.opengl.GLES10);将第二行替换为:GLES10.glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE, glInt, 0); - Paul Lammertsma
那是一个动态变化的值吗? - Sergey Shustikov
4
请注意,如果不存在OpenGL上下文,则该方法返回0。在清单文件中的应用程序标签中添加android:hardwareAccelerated="true"可能有所帮助,但我注意到这并不是百分之百有效的解决方法。在此处1提供了一个详细的答案,该答案在调用此方法之前创建一个OpenGL上下文。 - Mathijs
3
我也一直返回0。 - jjxtra

8

同时也可以查看http://www.glbenchmark.com/ - 它拥有一个广泛的OpenGL环境和移动设备性能详细信息的数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接