Adreno SDK Development(1)

一、Adreno SDK Framework简介

Adreno SDK可以充分利用Adreno GPU提供的图形和计算能力,该工具包包括工具、库、示例、文档和用于快速跟踪开发的教程。为了方便快捷的创建一个3D应用,Adreno SDK提供了一整套的Framework设计,基于此框架用户可以很轻松的开发出OpenGLES2/3的应用,同时在OpenGL文件夹中,此SDK提供的有大量基于此框架的示例代码,方便开发人员使用。
此Framework通过对硬件以及操作系统的抽象,为OpenGLES的开发提供一个平台无关的基础平台,包括对一些硬件的初始化、本地显示的连接等。另外,还提供访问资源的接口,比如纹理、图像、字体库、几何网格等。 同时它的代码结构设计非常合理,把平台相关的代码独立出来,放到特定的目录下,基础类也被设计成易于与其他框架集成的结构。

二、Framework基础用法

1、定义程序主体框架:
继承CFrmApplication的框架类,并按照文档介绍声明Initialize()、Resize()、Destroy()、Update()和Render()等函数。分别实现了事件监听,构建、更新、销毁、渲染场景等功能。此处文件名默认为Scene.h。在这里插入图片描述
2、创建实例:
在这里插入图片描述
使用此函数创建实例,并命名。此处文件名默认为Scene.cpp。

3、获取输入事件:
在这里插入图片描述
此处通过FrmGetInput函数来获取输入事件。接下来可以通过if语句设置事件触发所要做的事情。

4、资源包的加载生成:
在这里插入图片描述
此处m_pFont最终生成的.pak包实现的为文字渲染,m_pLogoTexture处为纹理实现。最终可以通过打包工具ResourcePacker将纹理的资源文件打包成.pak文件,自动将TGA、BMP、JPG等格式的文件转换为OpenGLES使用的纹理格式,在运行时可以通过CFrmPackedResource 类动态加载访问。

5、UI界面的实现及渲染:
通过UI.Initialize()函数进行初始化,随后可通过其UI操作函数对界面内容进行填充。最后通过Render()函数实现最终的渲染及实现过程。此处的实现细节文档中提到主要为以下几步:
(1)、拿到显示器
(2)、将EGL API设置为OpenGL ES
(3)、初始化EGL
(4)、拿到状态
(5)、验证应用程序是否在具有足够位深度的显示器上运行
(6)、创建“属性”列表
(7)、为配置列表创建空间
(8)、根据请求的属性选择配置
(9)、尝试每个配置,看看它是否与我们的属性列表匹配
(10)、Create a window surface  最终,我们希望能够同时使用gle和vg渲染上下文
(11)、创建OpenGL呈现上下文 <FrmApplication.h>FrmApplication.h 所有虚函数在此处实现

最终实现过程只需在Render()下调用UI.Render()函数即可,此处其余上面开始时提到的框架声明函数不需要相互间进行调用。因此很多初次接触的人会很困惑它的实现过程,此处详细细节已经在Freamework中实现,我们只需要对相对应的函数按照文档实例简介对齐进行填充即可。类似于上面的实例,各个函数模块只需负责各自部分即可,编译时会自动调用到框架中去进行实现。我们假若要对其进行较为深入的了解则需要对框架内容进行追查翻阅,此处实现相对来说比较复杂,涉及到的模块也相对来说比较庞大,不过深入的学习研究也更加的能够提高我们对其的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值