마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

OpenGL ES 사용 시 그래픽 깨짐 현상

0 추천
안녕하세요. 안드로이드 초보입니다.

제가 지금 만들고 있는 앱은 OPEN GL ES 2.0 와 서피스 텍스쳐를 사용하여

카메라 미리보기를 출력합니다.

카메라의 설정 변경에 따라 (해상도 변경, 전면/후면 카메라 변경 등)

카메라와 OPEN GL ES 및 서피스 텍스쳐 객체들을 파괴 및 재생성하게 될 일이 많은데요.

 

이 과정이 반복될수록 이미지 버튼이나 기타 다른 뷰들의 그래픽이 깨집니다.

자세히 말하자면 이미지 버튼이 검은색 빈칸으로 표시되거나

다른 버튼 이미지와 서로 뒤바뀌거나 격자무늬를 그려놓은 어떤 뷰는

뷰 전체가 선을 그릴 때 사용했던 색으로 가득찹니다.

그러다 화면 잠그거나 잠시 PAUSE 상태를 만들었다가 다시 앱으로 복귀하면

깨졌던 그래픽들은 다시 깔끔하게 원상복귀 됩니다.

 

메모리가 누수되는 것인지 의심되서 서피스나 카메라 객체 파괴 시 불필요한

인스턴스들이 NULL 처리 제대로 되었는지 체크하고,

안드로이드 스튜디오의 메모리 모니터링 하는 부분을 봐도

특별한 것은 모르겠습니다.

 

잘 아시는 분들께 어떤 부분이 의심된다 정도의 가이드라도 좋으니

도움 좀 요청드립니다.

더이상 어디를 어떻게 살펴봐야할지 멍하네요... ;;
THK (2,360 포인트) 님이 2016년 9월 5일 질문

1개의 답변

0 추천
 
채택된 답변
해결해서 자답 남깁니다. 일주일동안 고생한걸 질문 올린지 몇시간 만에 해결하네요. ^^;

OpenGL ES 로 만든 미리보기(렌더러, 텍스쳐)를 파괴할 때 GLES20.glDeleteTextures() 가

매번 호출되는 것이 지웠더니 그래픽 깨짐이 없어졌습니다.

OpenGL 초심자이다 보니 그냥 가이드 문서에서 해주는대로 코딩을 했고,

문제를 해결했어도 정확히 어떤 상황을 어떻게 푼 것인지 그 의미를 잘 모르겠네요.

잘 아시는 분이 이글을 보신다면 추가 설명좀 해주시면 감사하겠습니다.
THK (2,360 포인트) 님이 2016년 9월 5일 답변
...