2016-06-23 2 views
0

"새로운 카메라 프레임 워크"Camera2의 카메라 스트림을 OpenGL 텍스처로 가져 오려고하지만 이미지가 검은 색으로 유지됩니다.OpenGL 텍스처로 Xamarin Android Camera2-Preview

저는 Xamarin (하지만 Java는 매우 비슷해야합니다)과 함께 작업 중이며 기본 렌더링에 NDK를 사용하고 있습니다. 그래서 OpenGL-ES 컨텍스트를 만든 GLSurfaceView를 얻었고 C++에서.

다음 샘플을 체크 아웃하지 않았습니다. https://github.com/googlesamples/android-Camera2Basic 그리고 거기에서 계속하고 싶습니다.

대신 TextureView의 SurfaceTexture를 CaptureRequestBuilder에 추가합니다. 새 텍스처 핸들로 새 SurfaceTexture를 만들었습니다.

// C++ 
glActiveTexture(GL_TEXTURE0); 
glGenTextures(1, &m_TextureHandle);  
glBindTexture(GL_TEXTURE_EXTERNAL_OES, m_TextureHandle); 
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 
glBindTexture(GL_TEXTURE_EXTERNAL_OES, 0); 

// C# (or Java) 
_SurfaceTexture = new SurfaceTexture(m_TextureHandle); 
_SurfaceTexture.FrameAvailable += SurfaceTextureOnFrameAvailable; 

수신 프레임의 마지막 라인을 등록합니다. 여기 난 그냥 내 렌더링 스레드에 파견 전화 :

_SurfaceTexture.UpdateTexImage(); 

내가 중요한 단계를 실종? 나는 또한 같은 결과로 비추천 된 카메라 API를 사용하려고 시도했다.

감사 카이

답변

0

문제가 발견되었습니다. 잘못된 OpenGL 매개 변수로 인해 발생했습니다 :/ 문제를 검색하는 동안 작은 샘플을 만들었습니다. 누군가 관심이있는 경우에 업로드했습니다 : SampleCode (OneDrive)

0

당신은 또한 대신 TextureView의 표면에, 대상 표면의 카메라 2 캡처 세션 생성 목록에 새 SurfaceTexture을 포함나요?

+0

예, 결국 TextureView의 표면 대신 추가했기 때문에 결국 컨트롤이 필요하지 않습니다. –

+0

GLSurfaceView의 이벤트 대기열에 UpdateTexImage 호출을 푸시하는 이벤트도 발생합니다.이 호출도 완료됩니다. –

관련 문제