栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

搭建OpenGL ES环境(一)

搭建OpenGL ES环境(一)

一、搭建OpenGL ES环境

1、在AndroidManifest.xml中申明OpenGL ES版本



    
    
      ...
    

2、创建一个GLSurfaceView和GLSurfaceView.Renderer

GLSurfaceView继承自SurfaceView,在它的基础上实现了一个GLThread,用来管理OpenGL ES的绘制,将绘制的结果显示在SurfaceView所提供的Surface上。

public class Cus1GLSurfaceView extends GLSurfaceView {

    public Cus1GLSurfaceView(Context context) {
        super(context);
        init();
    }

    public Cus1GLSurfaceView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    private void init() {
    	//设置版本
    	setEGLContextClientVersion(2);
    	//设置渲染器
        setRenderer(new Cus1Renderer());
        //设置渲染模式
        setRenderMode(RENDERMODE_WHEN_DIRTY);
    }
}

渲染模式有两种:

RENDERMODE_WHEN_DIRTY:这种渲染模式只会在surface被创建或者我们手动调用了requestRender的时候才会去渲染,按需渲染,性能更高。RENDERMODE_CONTINUOUSLY:默认的渲染方式,每隔一定时间会去刷新当前界面

Renderer是一个渲染器,用来真正的处理绘制逻辑

public class Cus1Renderer implements GLSurfaceView.Renderer {

    //当surface创建时调用,可以做一些OpenGLES上下文的初始化
    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        GLES20.glClearColor(1,0,0,0);
    }

    //surface发生变化的时候调用
    @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( float red, float green, float blue, float alpha):设置清屏时候的颜色

GLES20.glViewport( int x, int y, int width, int height):设置绘制显示的窗口大小

GLES20.glClear:清屏

最后显示在页面上:显示效果为红色

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new Cus1GLSurfaceView(this));
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/734721.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号