效果图
主要分三步走
- 继承GLSurfaceView
- 实现接口GLSurfaceView
GLSurfaceView.Renderer{
void onSurfaceCreated(GL10 gl, EGLConfig config);
void onSurfaceChanged(GL10 gl, int width, int height);
void onDrawFrame(GL10 gl);
}
3.编写glsl脚本(render)
@Override
public void onSurfaceChanged(GL10 gl, int width,int height) {
//绘制区域
GLES20.glViewport(0,0,width,height);
}
@Override
public void onDrawFrame(GL10 gl) {
//清屏缓冲区
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
//利用颜色清屏
GLES20.glClearColor(0.0f,1.0f,0.0f,1.0f);
}
具体代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
集成GLSurfaceView
public class XYGLSurfaceView extends GLSurfaceView {
public XYGLSurfaceView(Context context) {
this(context,null);
}
public XYGLSurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
//设置OpenGL版本
setEGLContextClientVersion(2);
setRenderer(new XYRender());
}
}
渲染
public class XYRender implements GLSurfaceView.Renderer {
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
}
@Override
public void onSurfaceChanged(GL10 gl, int width,int height) {
//绘制区域
GLES20.glViewport(0,0,width,height);
}
@Override
public void onDrawFrame(GL10 gl) {
//清屏缓冲区
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
//利用颜色清屏
GLES20.glClearColor(0.0f,1.0f,0.0f,1.0f);
}
}