`
yuanyao
  • 浏览: 150115 次
  • 性别: Icon_minigender_1
  • 来自: 就那小山沟
社区版块
存档分类
最新评论

OpenGL ES 画正方形

阅读更多

最近玩玩Android的openGL,做了点注释,有用看看,没有了无视

public class GL1 extends Activity {

	private GLSurfaceView mGLSurfaceView;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		mGLSurfaceView = new GLSurfaceView(this);
		mGLSurfaceView.setRenderer(new One());
		setContentView(mGLSurfaceView);
	}

	@Override
	protected void onResume() {
		super.onResume();
		mGLSurfaceView.onResume();
	}

	@Override
	protected void onPause() {
		super.onPause();
		mGLSurfaceView.onPause();
	}

}

/**
 * 渲染器
 * 
 * @author yaoyuan
 * 
 */
class One implements Renderer {

	private Square square;

	public One() {
		square = new Square();
	}

	/**
	 * 初始化视图
	 */
	public void onDrawFrame(GL10 gl) {
		/*
		 * 清空缓冲区预设值
		 * 
		 * GL_COLOR_BUFFER_BIT 颜色缓冲区
		 * 
		 * GL_DEPTH_BUFFER_BIT 深度缓冲区
		 * 
		 * GL_STENCIL_BUFFER_BIT 模板缓冲区
		 */
		gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
		gl.glLoadIdentity();
		//乘一个翻译矩阵代替当前的矩阵
		gl.glTranslatef(0.0f, 0.0f, -6.0f);
		//画图形
		square.draw(gl);
	}

	/**
	 * 视图改变时调用
	 */
	public void onSurfaceChanged(GL10 gl, int width, int height) {
		if (height == 0) {
			height = 1;
		}

		gl.glViewport(0, 0, width, height);
		/**
		 * 指定当前的矩阵模式
		 * 
		 * GL_MODELVIEW 模型视图 GL_PROJECTION 投影 GL_TEXTURE 纹理
		 */
		gl.glMatrixMode(GL10.GL_PROJECTION);
		// 替换当前矩阵矩阵的身份
		gl.glLoadIdentity();
		// 设置一个透视投影矩阵
		GLU.gluPerspective(gl, 45.0f, (float) width / (float) height, 0.1f,
				100.0f);

		gl.glMatrixMode(GL10.GL_MODELVIEW);
		gl.glLoadIdentity();
	}

	/**
	 * 视图创建时调用
	 */
	public void onSurfaceCreated(GL10 gl, EGLConfig config) {
		/*
		 * 设置阴影模式 1.GL_FLAT 扁平 2.GL_SMOOTH 平滑
		 */
		gl.glShadeModel(GL10.GL_SMOOTH);
		// 指定颜色缓冲区值
		gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
		// 指定深度缓冲区值
		gl.glClearDepthf(1.0f);
		// 可用GL服务端功能
		gl.glEnable(GL10.GL_DEPTH_TEST);
		/*
		 * 深度缓存比较
		 * 
		 * GL_NEVER 不通过
		 * 
		 * GL_LESS 如果传入的深度值小于存储深度的值,通过
		 * 
		 * GL_EQUAL 如果传入的传递深度值等于存储的深度值,通过
		 * 
		 * GL_LEQUAL 如果传入的深度值小于或等于存储的深度值,通过
		 * 
		 * GL_GREATER 如果传入的深度值大于存储深度值更大,通过
		 * 
		 * GL_NOTEQUAL 如果传入的深度值不等于存储深度值,通过
		 * 
		 * GL_GEQUAL 如果传入的深度值大于或等于存储深度值,通过
		 * 
		 * GL_ALWAYS 始终通过
		 */
		gl.glDepthFunc(GL10.GL_LEQUAL);
		// 指定特定于实现的提示
		gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
	}

}

/**
 * 图形
 * 
 * @author yaoyuan
 * 
 */
class Square {
	private FloatBuffer vertexBuffer;
	private float vertices[] = { 
			-1.0f, 1.0f, 0.0f,
			1.0f, 1.0f, 0.0f, 
			-1.0f, -1.0f, 0.0f, 
			1.0f, -1.0f, 0.0f 
	};

	public Square() {
		ByteBuffer byteBuf = ByteBuffer.allocateDirect(vertices.length * 4);
		byteBuf.order(ByteOrder.nativeOrder());
		vertexBuffer = byteBuf.asFloatBuffer();
		vertexBuffer.put(vertices);
		vertexBuffer.position(0);
	}

	public void draw(GL10 gl) {
		// 定义前、后面对(GL_CW顺时针、GL_CCW逆时针)
		gl.glFrontFace(GL10.GL_CW);
		// 定义一个定点坐标数组
		gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
		/*
		 * 启用客户端功能
		 * 
		 * GL_COLOR_ARRAY 当glDrawArrays、glDrawElements被调用时,颜色数组可以被读写
		 * 
		 * GL_NORMAL_ARRAY 当glDrawArrays、glDrawElements被调用时,普通数组可以被读写
		 * 
		 * GL_TEXTURE_COORD_ARRAY 当glDrawArrays、glDrawElements被调用时,紋理數組可以被读写
		 * 
		 * GL_VERTEX_ARRAY 当glDrawArrays、glDrawElements被调用时,矩阵数组可以被读写
		 */
		gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
		// 从数组数据中渲染图元
		gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length / 3);
		// 禁用客户端功能
		gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
	}
}
 
1
2
分享到:
评论

相关推荐

    DeepSeek行业应用实践报告-智灵动力PPT全

    DeepSeek行业应用实践报告-智灵动力【PPT全】

    基于SSH的线上医疗报销系统.zip-毕设&课设&实训&大作业&竞赛&项目

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    机器学习大作业-复现KAN网络.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于Android和TensorFlow Lite完成移动端机器学习相关应用的实现(毕设&课设&实训&大作业&竞赛&项目)

    基于Android和TensorFlow Lite完成移动端机器学习相关应用的实现,包括使用已训练模型的机器学习应用和自主模型训练两部分。.zip项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    同时识别多个手写数字(或印刷体)

    这是一个基于 PyQt5 和 TensorFlow 的多数字手写体识别程序,支持同时识别图片中的多个手写数字。以下是该文件的基本说明: 主窗口:包含加载图片、识别、清除按钮,以及图片显示区域和结果展示区域。 图片显示:支持显示原始图片和处理后的图片。 分割结果显示:显示分割出的每个数字图片。 结果展示:显示所有识别结果和置信度。

    基于机器学习的情感分析(2极).zip(课设&实训&大作业&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    在云服务器上搭建MQTT服务器(超详细,一步到位)

    在云服务器上搭建MQTT服务器(超详细,一步到位)

    《由一组学习机器学习的学生用 Python 开发计算机游戏》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、说明、论文、数据集一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 4、如有侵权请私信博主,感谢支持

    (参考项目)MATLABA交通标志识别.zip

    参考项目,评分9.8分

    基于Unity实现的语音识别人物面部表情改变-源码工程.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于FX3U PLC控制多种变频器的RTU通信系统:硬件配置、程序编写、接线及参数说明,基于FX3U PLC与RTU通信技术,实现对西门子V20、台达VFD-M和三菱E700变频器的独立控制:硬件配置

    基于FX3U PLC控制多种变频器的RTU通信系统:硬件配置、程序编写、接线及参数说明,基于FX3U PLC与RTU通信技术,实现对西门子V20、台达VFD-M和三菱E700变频器的独立控制:硬件配置与程序详解,fx3u和西门子v20 台达vfd-m 三菱E700 rtu所需硬件:FX3U PLC,FX3U-485BD通信板,变频器。 功能:使用fx3u-485bd板,rtu通信控制西门子v20 台达VFD-M 三菱E700三种变频器正反转,停止,频率设定,加减速,以及对频率,电压,电流的读取,有运行指示,效果可以看视频,反应及时,运行可靠,三种变频器程序是单个的,非三台一起控制。 的内容包括程序,接线,参数说明 ,核心关键词: fx3u-485bd; 西门子v20; 台达VFD-M; 三菱E700; 通信控制; 正反转; 停止; 频率设定; 加减速; 读取; 运行指示; 视频; 程序; 接线; 参数说明,FX3U PLC控制多种变频器程序:程序、接线与参数说明

    基于SSM框架的婚纱礼服定制网站(毕设&课设&实训&大作业&竞赛&项目)

    软件开发综合项目——辛德瑞拉婚纱礼服定制网站,使用SSM框架和Maven管理工具,开发环境为Eclipse Jee Photon,数据库使用MySQL.zip项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于PHP和HTML5的音乐网站.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    惠普436/437更换传输卷

    惠普436/437更换传输卷

    rabbmit相关安装包

    erlang安装包,rabbmit安装环境

    大创项目网页设计:心田农场.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于javaSSM的电影网页项目.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    IDC报告 -中小型企业如何利用技术实现关键业务目标 数字化转型的后续步骤.pdf

    IDC报告 -中小型企业如何利用技术实现关键业务目标 数字化转型的后续步骤

    仅需一个 HAL 库函数:轻松实现 STM32 的 SPI 编程(以 Flash W25Q128 为例)

    主要介绍如何用HAL_SPI_TransmitReceive()函数实现对W25Q128 Flash存储器ID的读取。先介绍SPI是一种高速且简单的同步串行接口技术,由四根线((MOSI、MISO、SCLK和SS/CS))组成。接着介绍Flash ,它是串行闪存芯片,能提供更大存储容量。还提到STM32 HAL库简化了SPI编程,以正点原子精英V2开发板为例,给出开发环境及函数原型和参数。最后展示读取ID的代码示例,通过发送命令、接收数据并判断状态来获取ID。 

    基于MATLAB的光伏并网仿真模型:研究电能质量分析与高品质并网运行策略 或 MATLAB光伏并网仿真研究:探讨高品质并网与电能质量分析,包括逆变器与输电线路模型 ,MATLAB光伏并网仿真模型:构建

    基于MATLAB的光伏并网仿真模型:研究电能质量分析与高品质并网运行策略 或 MATLAB光伏并网仿真研究:探讨高品质并网与电能质量分析,包括逆变器与输电线路模型。,MATLAB光伏并网仿真模型:构建高品质并网运行的太阳能电站接入系统模型并分析电能质量,MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行。 太阳能电池,MPPT,包括输电线路,接入三电平并网逆变器和电网。 ,MATLAB光伏并网仿真模型; 光伏电站接入系统模型; 逆变器; 负荷模型; 电能质量分析; 品质并网运行; 太阳能电池; MPPT; 输电线路; 三电平并网逆变器; 电网。,基于Matlab的光伏并网仿真模型:高品质运行与电能质量分析

Global site tag (gtag.js) - Google Analytics