如何找到不同手机的最大纹理尺寸?

jfi*_*isk 14 android textures opengl-es renderer

我试图找出原始摩托罗拉Droid的最大纹理大小.我相信G1的最大纹理大小为512,但如果有更正式的方式我会发现它会很好,所以我可以建立一个合适的瓷砖系统.

svd*_*ree 24

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

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

  • 你应该参考Android的OpenGL ES实现(`android.opengl.GLES10`); 用以下代码替换第二行:`GLES10.glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE,glInt,0);` (5认同)
  • 什么是gl?GLES10?我尝试在我的活动的onResume中运行它,它返回0 ... (3认同)
  • 请注意,如果不存在OpenGL上下文,则该方法返回0.将android:hardwareAccelerated ="true"添加到清单中的应用程序标签可能有所帮助,但我注意到这不是保证.这里[1]是一个广泛的答案,它在调用此方法之前创建OpenGL上下文.[1]:http://stackoverflow.com/questions/26985858/gles10-glgetintegerv-returns-0-in-lollipop-only (3认同)
  • 也总是为我返回 0。 (3认同)

rya*_*anm 8

另请查看http://www.glbenchmark.com/ - 它有一个广泛的OpenGL环境数据库和移动设备的性能详细信息