OpenGL学习1
程序员文章站
2022-07-05 08:14:09
...
1.创建一个Activity
import android.app.Activity; import android.opengl.GLSurfaceView; import android.os.Bundle; public class OpenGLActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GLSurfaceView glView = new GLSurfaceView(this); glView.setRenderer(new OpenGLRender()); setContentView(glView); } }
2.实现Renderer接口
import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.opengl.GLSurfaceView.Renderer public class OpenGLRender implements Renderer{ /** * 调用此方法绘制当前窗口 */ @Override public void onDrawFrame(GL10 gl) { gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); //清楚屏幕和深度缓存 } /** * 窗口被创建或者窗口大小改变时被调用 */ @Override public void onSurfaceChanged(GL10 gl, int width, int height) { gl.glViewport(0, 0, width, height); float ratio = (float) width / height; gl.glMatrixMode(GL10.GL_PROJECTION); //设置投影矩阵 gl.glLoadIdentity(); //重置投影矩阵 gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10); //设置视口大小 } /** * 窗口被创建或者被重新创建时调用,做初始化工作 */ @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { gl.glClearColor(0, 0, 1.0f, 0.5f); //设置背景色,蓝色 } }
3.效果如下所示