2012-01-24 11 views
5

ja nadal nie znalazłem właściwą drogę, aby pokazać OpenGL overlay oon szczyt podglądu kamery,OpenGL overlay na widoku kamery

Istnieje hack, gdzie zadzwonić

setContentView(GLSurfaceView) 
addContentView(MyCameraSurfaceView) 

ale nie robi” t działa poprawnie - tzn. po przejściu do działania anouthera i powrocie, warstwa OpenGL nie jest wyświetlana na podglądzie kamery.

istnieje wiele tutoriali i próbek, które używają powyższej metody, ale to po prostu nie działa zgodnie z oczekiwaniami

czy ktoś wie jak to zrobić w Layar

Odpowiedz

9

Wygląda Znalazłem rozwiązanie mojego problemu - jego setZOrderMediaOverlay funkcyjny, heres mojego kodu:

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

Czy kiedykolwiek uważają, że kiedy przechodząc do innej aktywności tracisz kontekst OpenGL z nakładającego się glsurface?

+0

To nie jest problem - I stworzył oba poglądy z marginesu 150 DP, jeden wyrównany do prawej, i drugi wyrównany do lewej, i oba w tym, gdzie ok, ale widok z kamery był nad GLSurvaceView. Na szczęście myślę, że znalazłem rozwiązanie - zobacz moją odpowiedź. – imbryk

Powiązane problemy