如何在Android GL10中获取GL_视口尺寸?

如何在Android GL10中获取GL_视口尺寸?,android,opengl-es,Android,Opengl Es,我想在Android中使用API级别7完成以下工作: glGet(GL_VIEWPORT, someBuffer) 将其显示为C API的一部分 我已尝试使用以下代码: int[] results = new int[4]; gl.glGetIntegerv(GL10.GL_MAX_VIEWPORT_DIMS, results, 0); for (int i = 0; i < results.length; i++) { Log.e(TAG, "r

我想在Android中使用API级别7完成以下工作:

glGet(GL_VIEWPORT, someBuffer)
将其显示为C API的一部分

我已尝试使用以下代码:

    int[] results = new int[4];
    gl.glGetIntegerv(GL10.GL_MAX_VIEWPORT_DIMS, results, 0);
    for (int i = 0; i < results.length; i++) {
        Log.e(TAG, "results[" + i + "]: " + results[i]);
    }

使用Android的kronos-GLES如何做到这一点?

常量
GL\u视口
不是界面的一部分,而是界面的一部分。尝试使用
GL11.GL\u视口
。如果您认为这不合适,您可以在之前将实例转换为
GL11
,但这没有任何区别。

我发现Android保护您免受自己的伤害<在任何
onDrawFrame
调用之前调用code>onSurfaceChanged。我们有责任捕获并保存这些数据。

您想获取视口的最大可能大小(GL\u MAX\u viewport\u DIMS)还是视口的当前大小(GL\u viewport)?
GL11
不起作用。它仍然返回全零。我也尝试了一个更大的缓冲区。您有没有收到任何错误(
glGetError
)?您是否在surfacechanged之后调用了该方法?是否存在有效的GL上下文?
onSurfaceCreated called
    results[0]: 4096
    results[1]: 4096
    results[2]: 0
    results[3]: 0
onSurfaceChanged called with height: 800 and width: 480
  //NOTE: gl.glViewport(0, 0, width, height); is called here
    results[0]: 4096
    results[1]: 4096
    results[2]: 0
    results[3]: 0
onDrawFrame called
    results[0]: 4096
    results[1]: 4096
    results[2]: 0
    results[3]: 0