Android andorid 2.2上两种不同应用的2D和3D表面成分

Android andorid 2.2上两种不同应用的2D和3D表面成分,android,opengl-es,3d,gpu,Android,Opengl Es,3d,Gpu,我有兴趣了解和理解2D绘图和3D曲面是如何在android froyo 2.2上合成的,或者是在2个不同应用程序中合成的,例如,Live Wall paper和Launcher surface的表面是如何合成和显示的。从某种意义上说,Launcher应用程序似乎是在画布上绘制一个表面,后者将绘制的画布缓冲区传递给surface flinger,surface flinger使用openGLES glTeximage将其作为纹理写入GPU,Live Wall paper似乎是这样的使用libRS渲

我有兴趣了解和理解2D绘图和3D曲面是如何在android froyo 2.2上合成的,或者是在2个不同应用程序中合成的,例如,Live Wall paper和Launcher surface的表面是如何合成和显示的。从某种意义上说,Launcher应用程序似乎是在画布上绘制一个表面,后者将绘制的画布缓冲区传递给surface flinger,surface flinger使用openGLES glTeximage将其作为纹理写入GPU,Live Wall paper似乎是这样的使用libRS渲染脚本进行openGLES调用

问题是这两个曲面是如何合成的,surface flinger是否将它们合成为两个独立的层,任何描述openGLES驱动程序将如何实现这一点都会有所帮助


非常感谢,但我要再次指出,活动是单一的&在这种情况下,顶部和底部曲面都将提交给surface flinger&它们将使用surface flinger中的openglES调用进行合成

GLenum src = mPremultipliedAlpha ? GL_ONE : GL_SRC_ALPHA;
glEnable(GL_BLEND);
glBlendFunc(src, GL_ONE_MINUS_SRC_ALPHA);
glColor4x(0x10000, 0x10000, 0x10000, 0x10000);

我试图理解两个不同活动的情况,一个活动使用renderscript/GL10(我会说是3D的),另一个活动使用画布上的曲面视图(我会说是2D或UI的)

您可以创建两个或多个曲面视图,并使用
addContentView()将其分配给一个活动
setContentView
。假设您需要两个曲面,即surface\u buttom和surface\u top。你可以做:

setContentView(surface_buttom);
addContentView(surface_top);
关于你的活动。确保将顶面背景创建为透明。否则,无法看到buttom层