2011-11-15 7 views
1

& 2次元図面&の3Dサーフェスは、アンドロイドフロイで2.2と2種類のアプリケーションからどのように合成されているのかを理解することに興味があります。ライブ壁紙の表面です&ランチャーの表面が合成されました&ランチャーのアプリケーションがcrateaの表面にあるように見えるのは、&キャンバスに描画します&後者は描画されたキャンバスバッファをサーフェイスフリンジャーに渡します。 OpenGLES glTeximage to GPU &ライブ壁紙は、openGLES呼び出しを行うためのlibRSレンダスクリプトを使用しているようです。andoridの2つの異なるアプリケーションからの2Dと3D Surface Composition 2.2

2つのサーフェスはどのように合成されますか?サーフェスフリンジャーは2つのレイヤーで構成されますか?OpenGLESドライバーがどのようにそれを行うかについての説明も役に立ちます。


おかげでたくさん、私は活動は、両方のトップ&底面は、彼らが表面フリンガでopenglES呼び出しを使用して合成される表面フリンガ&に提出されます。この場合、&シングルで再びそれを言うだろう。

私はどの私は(2様々な活動がある場合、一つの活性が&(私は3Dであると言うだろう)のrenderScript/GL10を使用している他のアクティビティがキャンバス上の表面ビューを使用して描画された場合を理解しようとしています
GLenum src = mPremultipliedAlpha ? GL_ONE : GL_SRC_ALPHA; 
glEnable(GL_BLEND); 
glBlendFunc(src, GL_ONE_MINUS_SRC_ALPHA); 
glColor4x(0x10000, 0x10000, 0x10000, 0x10000); 

答えて

0

addContentView()setContentViewを使用して、2つ以上のサーフェスビューを作成して1つのアクティビティに割り当てることができます。 surface_buttomとsurface_topの2つのサーフェスが必要な場合を考えてみましょう。次の操作を実行できます。

setContentView(surface_buttom); 
addContentView(surface_top); 

アクティビティ上面の背景が透明であることを確認してください。そうでなければ、バトム層は見えません。

関連する問題