我正在使用Cardboard SDK开发Android应用程序。
我的MainActivity
扩展CardboardActivity
并实施CardboardView.StereoRenderer
,几乎遵循Google教程。
但是,我注意到,我的onSurfaceCreated
覆盖中的OpenGL调用没有任何效果,例如,如果我在GLES20.glClearColor(...)
内调用onSurfaceCreated
,则清晰颜色仍为黑色。但是,如果我在glClearColor
或onNewFrame
内拨打onDrawEye
,则清晰的颜色会更改为我所说的内容。
我发现了两件事:
1)IDE建议的签名是public void onSurfaceCreated(EGLConfig eglConfig)
,而我在Google上搜索时发现有onSurfaceCreated(GL10, EGLConfig)
...签名是否有变化?
2)我在日志窗口上连续六次报告
在我的E / libEGL:调用没有当前上下文的OpenGL ES API(记录一次 每个帖子)
onSurfaceCreated
被调用之前(我在调用每个函数时都记录了)。我不认为这是错误的原因,因为当我将glClearColor
调用移动到onNewFrame
时它可以工作,但也许有人可以指出我做错其他的事情。
所以我的问题是,为什么我不能在我的onSurfaceCreated
函数中获得OpenGL调用以产生任何影响?
答案 0 :(得分:0)
观察相同。它似乎是一个很老的错误(https://github.com/googlesamples/cardboard-java/issues/9)。它看起来还没有修好,但它可能是唯一没有功能的函数调用。你检查过了吗?
好的,我已经检查了它,似乎只有glClearColor函数受到影响。试图在onSurfaceCreated中创建一个着色器,一切顺利。