Android(安卓)Opengl
16lz
2021-01-26
基础框架
packagecom.example.opengl;importandroid.app.Activity;importandroid.os.Bundle;importjavax.microedition.khronos.egl.EGLConfig;importjavax.microedition.khronos.opengles.GL10;importandroid.opengl.GLSurfaceView;publicclassMainActivityextendsActivity{GLSurfaceViewmView;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main);mView=newGLSurfaceView(this);mView.setRenderer(newClearRenderer());setContentView(mView);}@OverrideprotectedvoidonPause(){super.onPause();mView.onPause();}@OverrideprotectedvoidonResume(){super.onResume();mView.onResume();}}classClearRendererimplementsGLSurfaceView.Renderer{publicvoidonSurfaceCreated(GL10gl,EGLConfigconfig){//Donothingspecial.}publicvoidonSurfaceChanged(GL10gl,intw,inth){gl.glViewport(0,0,w,h);}publicvoidonDrawFrame(GL10gl){gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);}}
扩展:获取输入事件
packagecom.example.opengl;importandroid.app.Activity;importandroid.os.Bundle;publicclassMainActivityextendsActivity{GL2JNIViewmView;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main);mView=newGL2JNIView(getApplication());setContentView(mView);}@OverrideprotectedvoidonPause(){super.onPause();mView.onPause();}@OverrideprotectedvoidonResume(){super.onResume();mView.onResume();}}
packagecom.example.opengl;importandroid.annotation.SuppressLint;importandroid.content.Context;importandroid.opengl.GLSurfaceView;importjavax.microedition.khronos.egl.EGLConfig;importjavax.microedition.khronos.opengles.GL10;importandroid.view.MotionEvent;classGL2JNIViewextendsGLSurfaceView{RenderermRenderer;publicGL2JNIView(Contextcontext){super(context);//setEGLContextFactory();//setEGLConfigChooser();mRenderer=newRenderer();setRenderer(mRenderer);}@SuppressLint("ClickableViewAccessibility")publicbooleanonTouchEvent(finalMotionEventevent){queueEvent(newRunnable(){publicvoidrun(){mRenderer.setColor(event.getX()/getWidth(),event.getY()/getHeight(),1.0f);}});returntrue;}privatestaticclassRendererimplementsGLSurfaceView.Renderer{publicvoidonDrawFrame(GL10gl){//GL2JNILib.step();gl.glClearColor(mRed,mGreen,mBlue,1.0f);gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);}publicvoidonSurfaceChanged(GL10gl,intwidth,intheight){//GL2JNILib.init(width,height);gl.glViewport(0,0,width,height);}publicvoidonSurfaceCreated(GL10gl,EGLConfigconfig){//Donothing.}publicvoidsetColor(floatr,floatg,floatb){mRed=r;mGreen=g;mBlue=b;}privatefloatmRed;privatefloatmGreen;privatefloatmBlue;}}
更多相关文章
- googlemap学习
- Android(安卓)获取当前连接的WiFi信息
- 运用IntentService类下载文件
- ImageAdapter和PopupWindow的使用
- 获取Bitmap和对Bitmap的操作工具类
- android 下获取apk的icon
- 【Content Provider】一个完整的ContentProvider框架
- Android(安卓)7.0之后无摄像头调用闪关灯
- android 获取rom名称和版本号