//package safeluck.drive.evaluation.render;
|
//
|
//import android.opengl.GLSurfaceView;
|
//
|
//import java.nio.ByteBuffer;
|
//
|
//import javax.microedition.khronos.egl.EGLConfig;
|
//import javax.microedition.khronos.opengles.GL10;
|
//
|
///**
|
// * MyApplication2
|
// * Created by lzw on 2019/9/29. 13:31:28
|
// * 邮箱:632393724@qq.com
|
// * All Rights Saved! Chongqing AnYun Tech co. LTD
|
// */
|
//public class GLRender implements GLSurfaceView.Renderer {
|
// //控制旋转的角度
|
// private float rotate;
|
// @Override
|
// public void onSurfaceCreated(GL10 gl, EGLConfig config) {
|
// //关闭抗抖动
|
// gl.glDisable(GL10.GL_DITHER);
|
// //设置系统对透视进行修正
|
// gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
|
// gl.glClearColor(0, 0, 0, 0);
|
// //设置阴影平滑模式
|
// gl.glShadeModel(GL10.GL_SMOOTH);
|
// //启动深度测试
|
// gl.glEnable(GL10.GL_DEPTH_TEST);
|
// //设置深度测试的类型
|
// gl.glDepthFunc(GL10.GL_LEQUAL);
|
//
|
// }
|
//
|
// @Override
|
// public void onSurfaceChanged(GL10 gl, int width, int height) {
|
// //设置3D视窗的大小及位置
|
// gl.glViewport(0, 0, width, height);
|
// //将当前矩阵模式设为投影矩形
|
// gl.glMatrixMode(GL10.GL_PROJECTION);
|
// //初始化单位矩阵
|
// gl.glLoadIdentity();
|
// //计算透视窗口的宽度高度比
|
// float ratio = (float) width / height;
|
// //调用此方法设置透视窗口的空间大小
|
// gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
|
//
|
// }
|
//
|
// @Override
|
// public void onDrawFrame(GL10 gl) {
|
// //清除屏幕缓存和深度缓存
|
// gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
|
// //启用顶点坐标数据
|
// gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
|
// //启用顶点颜色数据
|
// gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
|
// //设置当前矩阵堆栈为模型堆栈
|
// gl.glMatrixMode(GL10.GL_MODELVIEW);
|
// //------绘制第一个图形-----
|
// //重置当前的模型视图矩阵
|
// gl.glLoadIdentity();
|
// gl.glTranslatef(0.95f, -0.8f, -1.5f); //1️⃣
|
// //设置顶点位置数据
|
// gl.glVertexPointer(3, GL10.GL_FLOAT, 0, PointData.floatBufferUtil(PointData.triangleData));
|
// //设置顶点颜色数据
|
// gl.glColorPointer(4, GL10.GL_FIXED, 0, PointData.intBufferUtil(PointData.triangleColor));
|
// //根据顶点数据绘制平面图形
|
// gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
|
//
|
// //-----绘制第二个图形-----
|
// //重置当前的模型视图矩阵
|
// gl.glLoadIdentity();
|
// gl.glTranslatef(0.95f, 0.8f, -1.5f);
|
// //设置顶点位置数据
|
// gl.glVertexPointer(3, GL10.GL_FLOAT, 0, PointData.floatBufferUtil(PointData.rectData));
|
// //设置顶点颜色数据
|
// gl.glColorPointer(4, GL10.GL_FIXED, 0, PointData.intBufferUtil(PointData.rectColor));
|
// //更具顶点数据绘制平面图形
|
// gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
|
//
|
// //-----绘制第三个图形----
|
// //重置当前的模型视图矩阵
|
// gl.glLoadIdentity();
|
// gl.glTranslatef(-0.95f, 0.8f, -1.5f);
|
// //设置顶点位置数据
|
// gl.glVertexPointer(3, GL10.GL_FLOAT, 0, PointData.floatBufferUtil(PointData.rectData2));
|
// //根据顶点数据绘制平面图形
|
// gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
|
//
|
// //-----绘制第四个图形-----
|
// //重置当前的模型视图矩阵
|
// gl.glLoadIdentity();
|
// gl.glTranslatef(-0.95f, -0.8f, -1.5f);
|
// //设置使用纯色填充 **需要注意: 使用纯色填充需要禁用顶点颜色数组
|
// gl.glColor4f(1.0f, 0.2f, 0.2f, 0.0f);
|
// gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
|
// //设置顶点位置数据
|
// gl.glVertexPointer(3, GL10.GL_FLOAT, 0, PointData.floatBufferUtil(PointData.pentacle));
|
// //根据顶点数据绘制图形
|
// gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 5);
|
//
|
// //----绘制第五个图形---
|
// //重置当前的模型视图矩阵
|
// gl.glLoadIdentity();
|
// gl.glTranslatef(0f, 0f, -1.5f);
|
// gl.glRotatef(rotate, 0f, 0.2f, 0f);
|
// //设置顶点位置数据
|
// gl.glVertexPointer(3, GL10.GL_FLOAT, 0, PointData.floatBufferUtil(TDPointData.taperVertices));
|
// //启用顶点颜色组
|
// gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
|
// //设置顶点颜色数据
|
// gl.glColorPointer(4, GL10.GL_FIXED, 0, PointData.intBufferUtil(TDPointData.taperColors));
|
// //按taperFacetsBuffer指定的面绘制三角形
|
// ByteBuffer byteBuffer = PointData.byteBufferUtil(TDPointData.taperFacets);
|
// gl.glDrawElements(GL10.GL_TRIANGLE_STRIP, byteBuffer.remaining(), GL10.GL_UNSIGNED_BYTE, byteBuffer);
|
//
|
//
|
// //绘制结束
|
// gl.glFinish();
|
// gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
|
// //旋转角度+1
|
// rotate += 1;
|
// }
|
//}
|