Android中使用opengl es2.0基础(1)
来源:互联网 发布:淘宝的ip地址怎么看 编辑:程序博客网 时间:2024/06/05 08:29
Android中使用opengl es2.0基础(1)
OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。本文章主要是针对Android中使用Opengl进行图形的绘制简单总结整理,后续会不断更新相关的内容......
1、我们要使用Opengl ES 2.0必须先在Manifest下添加以下声明:
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
2、创建一个图形绘制类,并且此类实现GLSurfaceVIew.Renderer接口,并复写onSurfaceCreate、onSurfaceChanged、onDrawFrame 三个方法:
public class OpenglRender implements GLSurfaceView.Renderer{ /** * 仅调用一次,用于设置view的OpenGLES环境 */ @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { //设置清屏背景色RGBA GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f); } /** * 如果view的几何形状发生变化就调用,例如当竖屏变为横屏时 */ @Override public void onSurfaceChanged(GL10 gl, int width, int height) { //设置视窗大小及位置 GLES20.glViewport(0, 0, width, height); } /** * 每次View被重绘时被调用 */ @Override public void onDrawFrame(GL10 gl) { //清除深度缓冲与颜色缓冲 GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT|GLES20.GL_DEPTH_BUFFER_BIT); }}
3、创建一个GLSurfaceView的子类,用来承载Renderer中绘制的内容:
public class OpenglSurfaceView extends GLSurfaceView { public OpenglSurfaceView(Context context) { super(context); // 使用OpenGLES 2.0 setEGLContextClientVersion(2); // 设置Renderer到GLSurfaceView setRenderer(new OpenglRender()); // render模式为只在绘制数据发生改变时才绘制view,此设置会阻止绘制GLSurfaceView的帧,直到你调用了requestRender(). setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); //以下模式会不断绘制,我的手机上大概5--6 毫秒绘制一次 //setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY); }}
4、创建一个Activity窗口用于展示绘制的内容:
public class OpenglActivity extends Activity { private GLSurfaceView glSurfaceView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置GLSurfaceView为contentview glSurfaceView = new OpenglSurfaceView(this); setContentView(glSurfaceView); } @Override protected void onPause() { super.onPause(); glSurfaceView.onPause(); } @Override protected void onResume() { super.onResume(); glSurfaceView.onResume(); }}
完成上述的步骤后,编译安装app你可以看到一个红色的背景界面,这就是最简单的Opengl es的集成。红色的背景是我们再Renderer中使用了红色为清屏的颜色。
//设置清屏背景色RGBAGLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);下一节介绍简单的图形绘制
阅读全文
0 0
- Android中使用opengl es2.0基础(1)
- Android中使用opengl es2.0基础(2)- 三角形的绘制
- Android中使用opengl es2.0基础(3)-正方体绘制
- Android OpenGL ES2.0基础(二、画个三角形)
- Android OpenGL ES2.0基础(三、Shader相关介绍)
- Android OpenGL ES2.0学习(一)基础三角形案例
- Android OpenGL ES2.0基础(一、最简单的使用)
- OpenGL ES2.0基础
- Android OpenGL ES2.0
- 一步一步学android OpenGL ES2.0编程(1)
- 一步一步学android OpenGL ES2.0编程(1)
- 一步一步学android OpenGL ES2.0编程(1)
- 一步一步学android OpenGL ES2.0编程(1)
- 一步一步学android OpenGL ES2.0编程(1)
- 一步一步学android OpenGL ES2.0编程(1)
- 一步一步学android OpenGL ES2.0编程(1)
- OpenGL ES2.0之iOS基础<一>
- OpenGL ES2.0之iOS基础<一>
- AsyncTask原理
- 阿里——给一个整形数组,找出其中和等于给定值的组合
- artdialog弹出框子页面和父页面的值的传递
- C++ Floyd算法
- [李景山php] HTTP Flood防御
- Android中使用opengl es2.0基础(1)
- 算法导论程序12--优先队列(Python)
- Burnside引理与Polya定理
- andorid之一个标题栏
- TB-MTM策略
- [李景山php] DNS Flood防御
- hbase参数配置优化
- elasticsearch5.2局域网集群搭建
- 各大公司Windows下C++开发职位要求