第一步:
继承GLSurfaceView
第二步:
实现接口GLSurfaceView.Renderer{
void onSurfaceCreated(GL10 gl, EGLConfig config);
void onSurfaceChanged(GL10 gl, int width, int height);
void onDrawFrame(GL10 gl);}
第三步:
编写glsl脚本(render)
新建 WlGLSurfaceView extends GLSurfaceView
package com.example.opengldemo;
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.util.AttributeSet;
public class WlGLSurfaceView extends GLSurfaceView {
public WlGLSurfaceView(Context context) {
this(context, null);
}
public WlGLSurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
//初始化
//设置OpenGL版本
setEGLContextClientVersion(2);
//设置Renderer
setRenderer(new WlRender());
}
}
新建 WlRender implements GLSurfaceView.Renderer
package com.example.opengldemo;
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
public class WlRender implements GLSurfaceView.Renderer {
@Override
public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) {
}
@Override
public void onSurfaceChanged(GL10 gl10, int i, int i1) {
//设置长宽高
GLES20.glViewport(0, 0, i, i1);
}
@Override
public void onDrawFrame(GL10 gl10) {
//清屏
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
//使用颜色清屏
GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
}
}
xml中调用
<com.example.opengldemo.WlGLSurfaceView
android:layout_width="match_parent"
android:layout_height="match_parent" />