我尝试使用GLSurfaceView进行渲染,根据文档,我设置了格式:
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渲染具有透明背景,以便与其后面绘制的视图混合?
EDIT: 这是我的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);
}
}