Android OpenGL ES 2.0入门学习 1
2017-02-16 14:08
330 查看
从今天我开始学习Android OpenGL ES 2.0,写下博客作为记录。
首先创建一个空白的项目;
主界面MainActivity.java代码:
import android.opengl.GLSurfaceView;
import static android.opengl.GLES20.GL_COLOR_BUFFER_BIT;
import static android.opengl.GLES20.glClear;
import static android.opengl.GLES20.glClearColor;
import static android.opengl.GLES20.glViewport;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
/**
* Created by Administrator on 2017/2/16.
*/
public class FirstOpenRenderer implements GLSurfaceView.Renderer{
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
glClearColor(1.0f,0.0f,0.0f,0.0f);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
glViewport(0,0,width,height);
}
@Override
public void onDrawFrame(GL10 gl) {
glClear(GL_COLOR_BUFFER_BIT);
}
}
代码运行结果:会看到空白的红色屏幕。
写博客主要是为了自己学习记录,书籍《OpenGL ES 应用开发实践指南》中有详细介绍。
首先创建一个空白的项目;
主界面MainActivity.java代码:
import android.app.Activity; import android.app.ActivityManager; import android.content.pm.ConfigurationInfo; import android.opengl.GLSurfaceView; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends Activity { private GLSurfaceView glSurfaceView;//初始化 private boolean rendererSet=false;//是否处在有效状态 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); glSurfaceView=new GLSurfaceView(this); //检查系统是否支持OpenGL ES 2.0 ActivityManager activityManager= (ActivityManager) getSystemService(ACTIVITY_SERVICE); ConfigurationInfo configurationInfo=activityManager.getDeviceConfigurationInfo(); boolean supportses2=configurationInfo.reqGlEsVersion>=20000; if(supportses2){ glSurfaceView.setEGLContextClientVersion(2); glSurfaceView.setRenderer(new FirstOpenRenderer()); rendererSet=true; }else { Toast.makeText(this,"This device does not support OpenGL ES 2.0",Toast.LENGTH_LONG).show(); return; } setContentView(glSurfaceView); } @Override protected void onPause() { super.onPause(); if(rendererSet){ glSurfaceView.onPause(); } } @Override protected void onResume() { super.onResume(); if(rendererSet){ glSurfaceView.onResume(); } } }类 FirstOpenRendererd.java代码:
import android.opengl.GLSurfaceView;
import static android.opengl.GLES20.GL_COLOR_BUFFER_BIT;
import static android.opengl.GLES20.glClear;
import static android.opengl.GLES20.glClearColor;
import static android.opengl.GLES20.glViewport;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
/**
* Created by Administrator on 2017/2/16.
*/
public class FirstOpenRenderer implements GLSurfaceView.Renderer{
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
glClearColor(1.0f,0.0f,0.0f,0.0f);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
glViewport(0,0,width,height);
}
@Override
public void onDrawFrame(GL10 gl) {
glClear(GL_COLOR_BUFFER_BIT);
}
}
代码运行结果:会看到空白的红色屏幕。
写博客主要是为了自己学习记录,书籍《OpenGL ES 应用开发实践指南》中有详细介绍。
相关文章推荐
- Android OpenGL(二) 学习《Android 3D 游戏开发技术宝典 -openGL ES 2.0》
- OpenGL ES2.0入门之Android篇(二)——添加动作及触摸事件
- Android OpenGL ES2.0之光照的学习总结
- Android openGL ES 2.0入门--画三角形、正方形
- Android OpenGL ES 2.0学习研究 (一)
- Android opengl es 2.0怎么学习
- OpenGL ES2.0入门之Android篇(一)——绘制三角形
- OpenGL ES2.0入门之Android篇(一)——绘制三角形
- Android OpenGL ES 2.0之混合与雾的学习
- Android opengl es 2.0怎么学习
- 【Android开发学习37】android opengl es 2.0里surfaceview背景透明
- Android OpenGL ES 2.0-学习笔记(一)
- C#2.0 泛型学习(入门)
- Google.Android开发入门与实践-学习笔记2
- 我认为的android入门学习策略
- Google.Android开发入门与实践-学习笔记4
- Google.Android开发入门与实践-学习笔记3
- Android 简单例子以及入门学习资料链接
- Android学习路程-------新手入门(一)
- Android学习 - (1) 入门例子