我目前正在为我的客户编写一款Android应用程序,其中包含一个带有GLSurfaceView.Renderer的GLSurfaceView。
我的整个OpenGL都运行得很好(基本上是另一个开发人员最初在iOS上编写的端口)。除了一个问题。
当视图加载时,OpenGL内容正在加载时,我的背景会快速闪烁成黑色,然后OpenGL开始正确地呈现(与我的背景相同)。所以我做的是:
在onSurfaceCreated中,我从这里开始:
在我的onDrawFrame方法中,我这样做:
如果我除了onSurfaceCreated中的glClearColor(..)之外,删除了所有的代码行,我仍然会在我的实际背景色设置之前看到一个黑色的闪光。如果我只从我的代码中删除glClearColor(..)(因此保留所有其他的OpenGL内容),那么一切都会被渲染在黑色背景上。
我希望看到的是,我只想摆脱这个黑色的闪光,因此我的背景颜色可以在启动时正确初始化......
有任何想法如何实现这一点吗?
Dirk
我的整个OpenGL都运行得很好(基本上是另一个开发人员最初在iOS上编写的端口)。除了一个问题。
当视图加载时,OpenGL内容正在加载时,我的背景会快速闪烁成黑色,然后OpenGL开始正确地呈现(与我的背景相同)。所以我做的是:
在onSurfaceCreated中,我从这里开始:
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
GLES20.glClearColor(0.9f + 0.1f * (21.0f / 255),
0.9f + 0.1f * (36.0f / 255),
0.9f + 0.1f * (31.0f / 255), 1.0f);
// Here goes my other stuff, if I comment all my other stuff out I still get the flash at startup
}
在我的onDrawFrame方法中,我这样做:
@Override
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
// My stuff, again, if I comment all this stuff out I still get the flash...
}
如果我除了onSurfaceCreated中的glClearColor(..)之外,删除了所有的代码行,我仍然会在我的实际背景色设置之前看到一个黑色的闪光。如果我只从我的代码中删除glClearColor(..)(因此保留所有其他的OpenGL内容),那么一切都会被渲染在黑色背景上。
我希望看到的是,我只想摆脱这个黑色的闪光,因此我的背景颜色可以在启动时正确初始化......
有任何想法如何实现这一点吗?
Dirk