4분할 화면 렌더링을 뷰포트로 구현하고 있습니다.
각 화면 마다 비동기로 다른 영상이 나오는 형태입니다.
한번의 렌더링시 4분할을 다 렌더링하는 것이 아니라,
분할 화면 각각 렌더링 리퀘스트에 의해 각각 렌더링 되어야 하는 구조로
특정 영역 부분만 업데이트되어야 합니다. GLVIEW.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
아래처럼 여러 시도를 해봤으나 잘안되네요(갤럭시S만 되는듯). ㅠㅠ
(GLSurfaceView를 여러개 생성하는것도 생각해봤으나 추천하지는 않더군요.)
비동기 쿼드뷰 구현해보신분 조언 부탁드립니다.
1. 전체화면이 클리어 되어 다른 분할 영역도 초기화 되어 플리커 발생
glClear 를 사용 안하면 넥서스원같은 폰에서 쓰레기 영상들 발생.
(* 구글링 결과 HTC 폰들 버그인듯합니다.)
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
gl.glViewport(x, y, width/2, height/2);
// draw video frame
2. 위항처럼 진행해 봤으나 렌더링 초기 glClear가 반드시 사용되어야하는 제약이 있는 것을 발견하고,
아래처럼 시저를 응용하여 특정 부분만 업데이트하도록 하였습니다.
그러나 갤럭시S는 정상작동하는데 넥서스원이 말성이네요.
넥서스원은 다른 영역부분이 노이즈가 심하게 생기면서 쓰레기(랜덤 비트맵) 영상들이 나옵니다.
gl.glViewport(x, y, width/2, height/2);
gl.glEnable(GL10.GL_SCISSOR_TEST);
gl.glScissor(x, y, width/2, height/2);
gl.glClearColor(0, 0, 0, 0);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// draw video frame