onSurfaceCreated不适用于gl调用

时间:2016-02-22 15:21:03

标签: android opengl-es opengl-es-2.0 google-cardboard

我正在使用Cardboard SDK开发Android应用程序。

我的MainActivity扩展CardboardActivity并实施CardboardView.StereoRenderer,几乎遵循Google教程。

但是,我注意到,我的onSurfaceCreated覆盖中的OpenGL调用没有任何效果,例如,如果我在GLES20.glClearColor(...)内调用onSurfaceCreated,则清晰颜色仍为黑色。但是,如果我在glClearColoronNewFrame内拨打onDrawEye,则清晰的颜色会更改为我所说的内容。

我发现了两件事:

1)IDE建议的签名是public void onSurfaceCreated(EGLConfig eglConfig),而我在Google上搜索时发现有onSurfaceCreated(GL10, EGLConfig) ...签名是否有变化?

2)我在日志窗口上连续六次报告

  

E / libEGL:调用没有当前上下文的OpenGL ES API(记录一次   每个帖子)

在我的onSurfaceCreated被调用之前

(我在调用每个函数时都记录了)。我不认为这是错误的原因,因为当我将glClearColor调用移动到onNewFrame时它可以工作,但也许有人可以指出我做错其他的事情。

所以我的问题是,为什么我不能在我的onSurfaceCreated函数中获得OpenGL调用以产生任何影响?

1 个答案:

答案 0 :(得分:0)

观察相同。它似乎是一个很老的错误(https://github.com/googlesamples/cardboard-java/issues/9)。它看起来还没有修好,但它可能是唯一没有功能的函数调用。你检查过了吗?

好的,我已经检查了它,似乎只有glClearColor函数受到影响。试图在onSurfaceCreated中创建一个着色器,一切顺利。