繁体   English   中英

设置Android OpenGl ES环境失败

[英]Setting up Android OpenGl ES Environment fails

我想学习如何将OpenGL用于Android。 因此,我遵循指南来设置环境。 我已经按照他们说的做了所有事情:我有一个OpenGLActivity可以启动MyGLSurfaceView

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    glSurfaceView = new MyGLSurfaceView(this);
    setContentView(R.layout.activity_open_gl);
}

这是我的MyGLSurfaceView

class MyGLSurfaceView extends GLSurfaceView {

private final MyGLRenderer mRenderer;

public MyGLSurfaceView(Context context) {
    super(context);

    // Create an OpenGL ES 2.0 context
    setEGLContextClientVersion(2);

    mRenderer = new MyGLRenderer();

    // Set the Renderer for drawing on the GLSurfaceView
    setRenderer(mRenderer);
}
}

那就是我的MyGLRenderder类,应该将背景设置为黑色:

public class MyGLRenderer implements Renderer {

public void onSurfaceCreated(GL10 unused, EGLConfig config) {
    // Set the background frame color
    GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
}

public void onDrawFrame(GL10 unused) {
    // Redraw background color
    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}

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

并且我已经将此行添加到我的AndroidManifest.xml (就在开头,在<application>标记之前)

<uses-feature android:glEsVersion="0x00020000" android:required="true" />

问题在于背景不是黑色,而是白色。 我想念什么吗?

您实际上并没有显示OpenGL视图。 在此代码中:

glSurfaceView = new MyGLSurfaceView(this);
setContentView(R.layout.activity_open_gl);

您将内容视图设置为布局中的视图,而没有使用刚刚创建的GLSurfaceView 它应该是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM