I still haven't found a proper way to show an opengl overlay oon top of camera preview,
There's a hack, where you call
setContentView(GLSurfaceView)
addContentView(MyCameraSurfaceView)
but it doesn't work properly - i.e. when you switch to anouther activity and go back, the opengl layer isnt displayed over camera preview.
there are a lot of tutorials and samples which use the above method, but it simply doesn't work as expected
does anyone know how they do it in layar
It looks like I've found the solution to my problem - its setZOrderMediaOverlay
function, heres my code:
private void initViews()
{
mFrame = new FrameLayout(this);
initCameraView();
initGLView();
setContentView( mFrame );
}
private void initGLView()
{
mRenderer = new MyGLRenderer( this );
mGLView = new GLSurfaceView(this);
mGLView.setZOrderMediaOverlay(true);
mGLView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLView.setRenderer(mRenderer);
mGLView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mFrame.addView( mGLView );
}
private void initCameraView()
{
mCameraSurfaceView = new CameraSurfaceView(this);
mFrame.addView(mCameraSurfaceView);
}
Did you ever consider that when switching to another activity you are loosing the opengl context from the overlaying glsurface?