【发布时间】:2018-05-30 08:48:04
【问题描述】:
我尝试使用 GLSurfaceView 进行渲染,并通过docs 设置格式:
getHolder().setFormat(PixelFormat.TRANSLUCENT);
我用的是GLSurfaceView.Renderer,它在onDrawFrame中绘制:
GLES20.glClearColor(0, 0, 1, .5f);
GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
但是,GLSurfaceView 中的 GL 渲染不是半透明的,而是全蓝色的。如果我省略 glClear 调用,那么它就是全黑的。
如何使 GL 渲染具有透明背景,以便与在其后面绘制的视图混合?
编辑:这是我的 GLSurfaceView:
class GLView extends GLSurfaceView{
MyRenderer r;
public GLView(Context ctx){
super(ctx);
setEGLContextClientVersion(2);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
setEGLConfigChooser(8, 8, 8, 8, 16, 0);
r = new MyRenderer(getContext());
setRenderer(r);
}
}
【问题讨论】:
标签: android background opengl-es-2.0 transparent