openglandroid中的背景设置

openglandroid中的背景设置,android,opengl-es,Android,Opengl Es,我是OpenGL编程新手。我制作了一个旋转立方体,立方体的不同面上有不同的图像。我想为屏幕设置背景。任何帮助都将不胜感激。绘制一个覆盖整个视口的纹理四边形。为此,请将投影和模型视图切换到identity并禁用深度测试。当投影和模型视图为标识时,顶点坐标[-1…1]将覆盖整个视口。代码: glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW)

我是OpenGL编程新手。我制作了一个旋转立方体,立方体的不同面上有不同的图像。我想为屏幕设置背景。任何帮助都将不胜感激。

绘制一个覆盖整个视口的纹理四边形。为此,请将投影和模型视图切换到identity并禁用深度测试。当投影和模型视图为标识时,顶点坐标[-1…1]将覆盖整个视口。代码:

glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

GLfloat tex_quad[16] = {
/* x, y, s, t */
-1, -1, 0, 0,
 1, -1, 1, 0,
 1,  1, 1, 1,
-1,  1, 0, 1
};    

glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*4, &tex_quad[0]);
glTexCoordPointer(2, GL_FLOAT, sizeof(GLfloat)*4, &tex_quad[2]);

glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, background_image_texture_ID);

glDrawArrays(GL_TRIANGLE_FAN, 0, 4);

glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDisable(GL_TEXTURE_2D);

我认为OP想把他的代码变成android live墙纸

@苏米特:如果我是对的,你应该尽你应有的努力:


如果我错了,那么请更准确地回答您的问题。

在我的项目中,所有创建代码GLSurfaceView如下所示:

glSurfaceView = ...

glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
glSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
glSurfaceView.setBackgroundResource(R.drawable.my_background);
glSurfaceView.setZOrderOnTop(true);

glSurfaceView.setRenderer(...);
glSurfaceView.setRenderMode(...);
注意:请勿使用

_glSurfaceView.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.my_background));
我在这上面浪费了几天时间

不要打电话

gl.glClearColor(...)


错误:E/libEGL:called unimplemented OpenGL ES API请注意,如果在SurfaceView上有某些内容,则使用glSurfaceView.setZOrderOnTop(true)会导致UI中出现重叠状态
Renderer.onDrawFrame