OpenGL наложение на камеру - PullRequest
       25

OpenGL наложение на камеру

5 голосов
/ 24 января 2012

Я до сих пор не нашел подходящего способа показать наложение OpenGL на верхней части предварительного просмотра камеры,

Есть взлом, где вы звоните

setContentView(GLSurfaceView)
addContentView(MyCameraSurfaceView)

, но он не работает должным образом - то есть, когда вы переключаетесь на другую активность и возвращаетесь назад, слой opengl не отображается поверх предварительного просмотра камеры.

Есть много учебных пособий и примеров, в которых используется вышеуказанный метод, но он просто не работает, как ожидалось

Кто-нибудь знает, как они делают это в Layar

Ответы [ 2 ]

9 голосов
/ 30 января 2012

Похоже, я нашел решение своей проблемы - его функция setZOrderMediaOverlay, вот мой код:

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);     
}
0 голосов
/ 26 января 2012

Рассматривали ли вы когда-нибудь, что при переключении на другое действие вы теряете контекст opengl с наложенной поверхности glsurface?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...