理解 Android 2D/3D 图形架构
来源:互联网 发布:双系统linux安装教程 编辑:程序博客网 时间:2024/04/30 20:16
首先理解Android 的 egl 的函数调用,先要得到display (对应显示器),而后选择一个支持的config(这是显卡支持的),而后创建WindowSurface, 还要创建context (context 相当于 opengl 这个状态机), 而后就可以调用 gl 的绘图函数在Surface上画图, 工作完成后需要释放 Context, windowSurace这些资源
Android 3D 图形架构如下
当用户使用 GLSurfaceView 的时候,会调用egl 的函数,创建出GLSurfaceView依赖 windowSurace,Context这些对象, 而后把java 的gl调用转化为对libGL.so的native调用,libGL.so会调用到显卡驱动
如果没有硬件就是走软件模拟的的gl函数,值得注意的是Andoid对其中copybit作了优化
2D渲染
以前Android是使用skia生成2D图形的,后来(4.1 Jellybean )为了提高性能,改为使用 opengl (因为可以可以gpu),但以前的skia软架构依旧保留
当编译时打开 USE_OPENGL_RENDER:=true,才打开硬件加速(默认是打开),就是libhwui.so硬件加速的实现
跟3D一样创建Surface, 创建Context,调用gl函数绘制...
上面两个架构,渲染好了Surface(不管是GPU渲染出来的,还是cpu模拟渲染出来的), SurfaceFlinger在最后上屏的时候,又调用了 opengl 的函数。也分为gpu硬件上屏,还是cpu模拟
0 0
- 理解 Android 2D/3D 图形架构
- Android 绘制2D图形
- Android 绘制2D图形
- Android 2D图形绘制
- 安卓中绘制2D、3D图形
- Android OpenGL ES 3D图形绘制
- Android Skia和2D图形系统
- Android基础复习2D图形二
- Android 2D图形绘制 汇总
- Android Skia和2D图形系统
- Android中绘制2D图形基础
- Android Skia和2D图形系统
- 3D图形基本知识
- 3D图形接口
- 3D图形
- DirectX 3D图形
- 3D图形
- 2D图形加速
- Mac上Svn的使用
- hdu 2813 One fihgt one(trie树+KM算法)
- 原型模式 Prototype模式
- 【ST学习小组】STM32F103的CAN 通信之从控器部分
- adb server is out of date. killing... .
- 理解 Android 2D/3D 图形架构
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结(二)
- 将项目部署到tomcat上El表达式 namespace错误
- Android ListView 最基本的用法,使用SimpleCursorAdapter
- cocos2d-x游戏开发系列教程-坦克大战游戏之虚拟手柄的显示
- 移动硬盘进水丢失数据怎么恢复
- 关于微信新版运营规则的八大误区和解读
- “毕竟,你胜利了......敬胜利者一杯。”
- Erlang笔记(11) - 顺序式编程进阶