Android OpenGLES2.0开发(二):环境搭建

世界没有悲剧和喜剧之分,如果你能从悲剧中走出来,那就是喜剧,如果你沉缅于喜剧之中,那它就是悲剧。——科马克·麦卡锡《路》 ​​​

OpenGL ES环境搭建

Android 应用中使用 OpenGL ES 绘制图形,必须创建一个显示容器。我们需要同时实现 GLSurfaceViewGLSurfaceView.Renderer接口。 GLSurfaceView 是使用 OpenGL 绘制图形的视图容器, GLSurfaceView.Renderer 用于控制该视图中绘制的内容。

1. 在清单中声明 OpenGL ES 的使用

在清单文件中声明使用OpenGL ES 2.0 API

<uses-feature android:glEsVersion="0x00020000" android:required="true" />

2. 创建GLSurfaceView

public class EnvGLSurfaceView extends GLSurfaceView {private Context mContext;private MyGLRenderer mRenderer;public EnvGLSurfaceView(Context context) {super(context);init(context);}public EnvGLSurfaceView(Context context, AttributeSet attrs) {super(context, attrs);init(context);}private void init(Context context) {mContext = context;// 创建OpenGL ES 2.0 contextsetEGLContextClientVersion(2);mRenderer = new MyGLRenderer();// 设置渲染器setRenderer(mRenderer);// 设置渲染模式:仅当图形数据发生更改时渲染视图setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);}
}

3. 创建渲染类Renderer

GLSurfaceView.Renderer 类(即渲染程序)的实现,他包含了三个接口

  • onSurfaceCreated:该方法中可以用来初始化数据等操作
  • onDrawFrame:该方法中编写我们要绘制的内容
  • onSurfaceChanged:当视图大小发生变化时,我们需要重新设置窗口大小
static class MyGLRenderer implements GLSurfaceView.Renderer {public void onSurfaceCreated(GL10 unused, EGLConfig config) {// 设置背景颜色为红色GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);}public void onDrawFrame(GL10 unused) {// 设置红色清屏GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);}public void onSurfaceChanged(GL10 unused, int width, int height) {// 修改OpenGL ES窗口大小GLES20.glViewport(0, 0, width, height);}
}

4. 添加布局显示

将我们定义的MyGLSurfaceView加入到布局中

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".GLEnvActivity"><com.android.xz.opengldemo.view.EnvGLSurfaceViewandroid:layout_width="match_parent"android:layout_height="match_parent" /></androidx.constraintlayout.widget.ConstraintLayout>

启动Activity显示界面如下:
Alt
恭喜你^_^你已经成功搭建好了OpenGL ES的开发环境,是不是很简单呢?我们将在接下来的章节中会详细介绍onDrawFrame中绘制各种图形图像

最后

本章节我们搭建了OpenGL ES的开发环境,GLSurfaceView实际上已经帮我们把OpenGL核心环境搭建完成,我们只需要实现渲染接口即可。如果你想更加自由的使用OpenGL ES,可以使用SurfaceView或者TextureView,但是需要您自行搭建EGL环境,请参考该篇文章,自行完整的搭建OpenGL ES环境:Android OpenGLES开发:EGL环境搭建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148718.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Rust - 字符串:str 与 String

在其他语言中&#xff0c;字符串通常都会比较简单&#xff0c;例如 “hello, world” 就是字符串章节的几乎全部内容了。 但是Rust中的字符串与其他语言有所不同&#xff0c;若带着其他语言的习惯来学习Rust字符串&#xff0c;将会波折不断。 所以最好先忘记脑中已有的关于字…

【一起学NLP】Chapter2-学习神经网络

目录 学习神经网络损失函数Tip:One-hot向量导数与梯度Tip:严格地说链式法则计算图反向传播其他典型的运算结点乘法结点分支节点Repeat节点Sum节点MatMul节点 Tip:浅拷贝和深拷贝的差异梯度的推导和反向传播的实现Sigmoid层Affine层Softmax with Loss层 权重的更新——随机梯度下…

机械手末端快换技术:工业自动化的强大新动力

在飞速发展的工业自动化领域&#xff0c;机械手无疑是生产线上的关键成员&#xff0c;其性能与效率对整个生产流程的顺畅性与高效性起着至关重要的作用。而机械手末端快换技术&#xff0c;作为这一领域的创新性突破&#xff0c;正以其卓越的优势引领着工业生产的巨大变革。 机…

迷雾大陆免费辅助:强流派推荐攻略!VMOS云手机自动辅助挂机教程!

使用VMOS云手机辅助《迷雾大陆》游戏&#xff0c;让你的游戏体验更轻松高效。VMOS云手机专为《迷雾大陆》提供了定制版的云手机&#xff0c;内置游戏安装包&#xff0c;无需再次下载安装。同时&#xff0c;VMOS云手机支持免费的辅助工具&#xff0c;可以24小时不间断地辅助游戏…

多肽合成的一般步骤 -- 固相合成篇

1.1 溶剂的处理 DMF、甲醇在使用前用G3孔的分子筛浸泡过夜除杂质和水。 1.2 树脂的充分溶胀 称取2.0 g 空白Wang树脂于洁净干燥的反应管中&#xff0c;加入15 mL DMF&#xff0c;室温活化30 min左右。 1.3 接第一个氨基酸 室温下&#xff0c;通过沙芯抽滤掉上步溶剂&#xf…

中电金信 :基于开放架构的私有云建设实践

01开放架构私有云诞生背景 随着国产化创新建设的深化&#xff0c;产业侧行业软件持续进行云原生改造&#xff0c;金融机构拥抱云和容器技术&#xff0c;实现数智化转型已是大势所趋。近年&#xff0c;云原生技术以及架构发展速度更是惊人&#xff0c;私有云开始有了新架构、有了…

<刷题笔记> 力扣105/106题 使用中序+前(后)序构造二叉树

在曾经的博客中&#xff0c;曾经记录过这样一题&#xff1a; 二叉树遍历_牛客题霸_牛客网 (nowcoder.com) 这是一个只需要前序就能构造二叉树的题&#xff0c;因为一旦遇到空&#xff0c;就有"#"作为返回的标志&#xff0c;能够立刻返回。 1. 中序前序 完全可以借鉴…

select查询表单

select查询语法&#xff1a; select 【1】from 【2】where 【3】 1若为*表示显示全部数据列&#xff0c;若为某一列列名则只显示本列内容&#xff08;也可为多列列名&#xff09;。若在1后面加as ‘c’&#xff0c;则表示把查询的列名换成c。 2为要查询的表表名。 3为查询的…

众数信科 AI智能体智慧文旅解决方案——智能旅行助手

智慧文旅解决方案 智能旅行助手方案 利用先进的AI算法 提供个性化旅游体验的智能服务 众数信科AI智能体 产品亮点 旅游路线智能规划 旅游景点智能问答 旅行游记智能生成等 构建旅行实用指南 让旅游更加便捷、高效、智能化 关于我们 众数信科成立于2021年&#xff0c;由…

CentOS Linux教程(6)--CentOS目录

文章目录 1. 根目录2. cd目录切换命令3. CentOS目录介绍4. pwd命令介绍5. ls命令介绍5.1 ls5.2 ls -a5.3 ls -l 1. 根目录 Windows电脑的根目录是计算机(我的电脑)&#xff0c;然后C盘、D盘。 Linux系统的根目录是/&#xff0c;我们可以使用cd /进入根目录&#xff0c;然后使…

【mysql】case...when...、group...by、sum() 聚合函数... 企业组合使用实际场景示例

文章目录 查询需求场景预设查询结果SQL实现查询 查询需求场景 -- 统计当月不同流程类型的审批通过流程数、审批终止流程数、审批驳回流程数、新增流程数&#xff08;归档终止退回&#xff09;、申请总条目数&#xff08;关联任务单申请条目数总数&#xff09;-- 查询思路&…

蘑菇成熟待收检测系统源码分享

蘑菇成熟待收检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

最适配达梦、人大金仓的sql工具是什么?

SQLynx是一款功能强大的数据库管理工具&#xff0c;它不仅支持Oracle、MySQL等国际主流数据库&#xff0c;还很好地支持了武汉达梦、人大金仓等国产数据库。这款工具具有以下几个特点&#xff1a; 1.广泛支持&#xff1a;SQLynx支持多种数据库系统&#xff0c;包括PostgreSQL、…

ADC 位的作用

示波器的横轴表示时间基准&#xff08;秒/格或 s/p&#xff09;&#xff0c;而纵轴表示电压&#xff08;伏/格或 V/p&#xff09;。垂直精度是指示波器显示信号电压的准确程度&#xff0c;这对于视觉呈现和测量至关重要。示波器屏幕上的电压读数越接近实际信号电压&#xff0c;…

专为工程地质领域安全监测而设计,BWII型广播预警遥测系统助您实现全面监测!

专为工程地质领域安全监测而设计&#xff0c;BWII型广播预警遥测系统助您实现全面监测&#xff01; BWII型广播预警遥测系统是一款新型的雨量预警监测仪&#xff0c;具备多通道和多类型传感器接入功能。该系统能够定时采集和发送电压、电流、数字和脉冲等信息&#xff0c;同时结…

Day4-C语言高级编程

1. gcc和gdb的用法 GNU工具&#xff1a;编译工具&#xff1a;把一个源程序编译为一个可执行程序调试工具&#xff1a;能对执行程序 进行源码或汇编调试软件工程工具&#xff1a;用于协助多人开发或大型软件项目的管理&#xff0c;如make、CVS、Subvision其他工具&#xff1a;用…

Informer模型复现项目实战

加入会员社群&#xff0c;免费获取本项目数据集和代码&#xff1a;点击进入>> 1. 项目简介 A034-Informer模型复现项目实战的目标是通过复现Informer模型&#xff0c;帮助理解其在时间序列预测中的实际应用和效果。该项目基于深度学习模型Informer&#xff0c;这是一种针…

科研绘图系列:R语言连线点图(linechart dotplot)

文章目录 介绍加载R包导入数据数据预处理画图组合图形导出数据系统信息介绍 不同物种的强度和微生物的组成情况 加载R包 library("here") library("tidyverse") library("reshape2") library("vegan")

如何获取一个返回Promise<T>的函数的“T“的类型

type ThenArg<T> T extends Promise<infer U> ? U : never export type GenByStaTypeAndHfRsType ThenArg<ReturnType<typeof genByStaTypeAndHf>> 这样一来&#xff0c;虽然返回了Promise<T>&#xff0c;我们没定义T的情况下&#xff0c;也可…

揭秘大模型背后的神秘力量:算力、数据与算法的“黄金三角”

目录 揭秘大模型背后的神秘力量:算力、数据与算法的“黄金三角” 一、算力:大模型的超级引擎 二、数据:大模型的智慧源泉 三、高性能算法:大模型的智慧大脑 结语:黄金三角的共鸣 揭秘大模型背后的神秘力量:算力、数据与算法的“黄金三角” 在人工智能的浩瀚星空中,…