无法获得基本的OpenGL活动

时间:2014-05-21 09:39:46

标签: android opengl-es

我在Android开发者网站上关注openGL教程,但是当我打开活动时,它只是一个黑色的空背景,而不是预期的灰色GL表面。谁能告诉我我失踪了什么?

public class OpenGLES20Activity extends Activity {

    private GLSurfaceView mGLView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mGLView = new MyGLSurfaceView(this);
        setContentView(mGLView);

    }

    class MyGLSurfaceView extends GLSurfaceView implements GLSurfaceView.Renderer{
        public MyGLSurfaceView(Context context) {
            super(context);
            setRenderer(this);
            setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);         
        }

        @Override
        public void onSurfaceCreated(GL10 unused, javax.microedition.khronos.egl.EGLConfig config) 
        {
            GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
        }

        public void onDrawFrame(GL10 unused)
        {
            GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
        }

        @Override
        public void onSurfaceChanged(GL10 unused, int width, int height)
        {
            GLES20.glViewport(0, 0, width, height);
        }

    }

}

1 个答案:

答案 0 :(得分:1)

这是因为此活动配置为使用以下命令向您显示黑色背景。 OpenGL将颜色作为RGB值,每个通道的范围可以从0.0到1.0。

GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);

将其更改为颜色。例如红色。你会看到红色背景

GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);