我想学习如何使用OpenGL for Android。因此,我按照this指南设置了环境。
我做了他们所说的一切:
我得到了一个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" />
问题是背景不是黑色,是白色。 我错过了什么吗?
答案 0 :(得分:1)
您实际上并未显示您的OpenGL视图。在这里的代码中:
glSurfaceView = new MyGLSurfaceView(this);
setContentView(R.layout.activity_open_gl);
您正在将内容视图设置为布局中的视图,而您没有使用刚刚创建的GLSurfaceView
。它应该是:
glSurfaceView = new MyGLSurfaceView(this);
setContentView(glSurfaceView);