2012-11-12 1 views
2

나는 OpenGL을 그리기 위해 2 Activitiy을 가지고 있습니다. 하나의 활동에서 다음 활동으로 전환 할 때 나는 멍청한 빈 화면에 내 OpenGL 색으로 채워진다. (그래서 검은 색 화면만큼 나쁘지 않다.)2 개의 안드로이드 OpenGL GLSurfaceView 액티비티 사이에서 부드럽게 전환

효과적으로 Activity 사이에서 원활하게 전환하고 싶지만 GLSurfaceView을 만들 때 몇 가지 고부하 영역이 있습니다. 가장 느린 것은 텍스처로드입니다.

어쨌든 Activity 사이의 버퍼를 두 번 버퍼링하면 어쨌든 Activity보기가 고정되어 다음에 내 그림 Activity을 그릴 때까지 고정됩니다. 전이가 매끄럽게되기를 원합니까?

모든 것을 하나의 GLSurfaceView 인스턴스로 옮기는 것은 실제로 고려해야 할 옵션이 아닙니다.

+0

당신은 이것을위한 좋은 해결책을 찾았습니까? – Trevor

답변

0

GLSurfaceView에서 setRenderMode(RENDERMODE_WHEN_DIRTY)을 사용할 수 있으므로 requestRender()을 호출하면 표면 만 다시 그려집니다.
이 방법을 사용하면 다른 표면 뷰를 호출하기 전에 그리는 것은 새로운 그리기를 요청할 때만 지워집니다.
렌더 모드를 RENDERMODE_CONTINUOUSLY으로 설정하여 연속 도면으로 되돌아 갈 수 있습니다.

+0

나는 이것을 시도 할 것이다. 그러나 나의 직감은 내가 여전히 검은 변화를 얻을 것 인 것이다. 일단 테스트를 받으면 다시보고하겠습니다. 제안 해 주셔서 감사합니다. – fungus1487

+0

이 문제가 해결되지 못했습니다. 제안 해 주셔서 감사합니다. – fungus1487

0

OpenGL ES 때문에 Android 2.x에서 실행하기가 어렵습니다. 또한 연속적으로 렌더링하는 경우 하나의 응용 프로그램에서 두 개의 OpenGL을 사용하지 않는 것이 좋습니다. 그렇다면 쉽게 제어 할 수 있도록 RENDERMODE_WHEN_DIRTY가 필요합니다.

Android 4.x에서 사용하는 경우 TextureView는 선택 사항입니다.

TextureView는 GLSurfaceView와 같지만 View 호환이 가능하므로 TextureView에 ViewAnimation을 사용할 수 있습니다.