如何在Android 1.6中将GLSurfaceView设为半透明?

时间:2011-08-18 10:56:36

标签: android opengl-es

我的目的是为渲染立方体放置一个背景图像。因为我需要让我的GLSurfaceView为半透明,我试过APIDemos的例子,它给了我如何将整个活动变成半透明的,这不是我的意图。 GLSurfaceViewObject.setZorderOnTop(true)语句工作正常,但此方法在Android 2.1之前不可用。在Android 1.6 SDK中有没有替代方法来设置setZOrderOnTop(true)?还是有其他方法可以使GLSurfaceView成为半透明的?

1 个答案:

答案 0 :(得分:1)

为什么不简单地将视口填充纹理四边形作为背景?如:

glViewport(0,0,w,h);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,1,0,1,-1,1);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

GLfloat verts[8] = {0,0, 1,0, 1,1, 0,1};
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, verts);
glTexCoordPointer(2, GL_FLOAT, 0, verts);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);

glClear(GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
YOUR_PROJECTION();

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
YOUR_MODELVIEW();

DRAW_YOUR_SCENE();