2016-06-23 19 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のSurfaceの代わりに追加しました。 –

+0

私はGLSurfaceViewのイベントキューにPushするUpdateTexImage呼び出しをディスパッチするイベントも取得します...この呼び出しも完了しました.. –

関連する問題