Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

opengl overlay on camera view

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

like image 294
imbryk Avatar asked Jan 24 '12 11:01

imbryk


1 Answers

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);     
}
like image 186
imbryk Avatar answered Oct 26 '22 08:10

imbryk