全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android Skia 和 2D 图形系统1 Skia 概述Skia 是 Google 一个底层的图形、图像、动画、 SVG 、文本等多方面的图形库,是 Android 中图形系统的引擎。Skia 作为第三方软件放在 external 目录下: external/skia/ 。Skia 的结构如下图所示: 主要包含三个库:libcorecg.so: 包含 /skia/src/core 的部分内容,比如其中的 Region , Rect 是在SurfaceFlinger 里面用来计算可视区域的;libsgl.so: 包含 /skia/src/core|effects|images|ports|utils 的部分和全部内容,这个实现了 skia 大部分的图形效果,以及图形格式的编解码; libskiagl.so: 包含 /skia/src/gl 里面的内容,主要用来调用 opengl 实现部分效果。 2 Skia 对上层的接口( API )skia 的源文件及部分头文件都在 external/skia/src 目录下,导出的头文件在external/skia/include 目录下。最主要的是 SKCanvas 类,几乎整个 Android GUI 系统的底层绘制都是由这个类来完成的。其头文件和源代码文件的路径分别为:external/skia/include/core/SKCanvas.hexternal/skia/include/core/SKCanvas.cppSKCanvas 类主要有三种绘制功能:a 基本图形绘制 ( 如 drawARGB,drawLine 函数 )b 图像文件绘制( drawBitmap 函数)c 文本绘制( drawText 函数) 3 Skia 的图像编解码部分这部分的接口主要是:external/include/image/SKImageDecoder.h / 把图像文件或者流解码到 skia 的内部内存SKBitmap 中 ;external/include/image/SKImageEncoder.h / 把 skia 内部内存 SKBitmap 编码成文件或流的形式;这些接口需要具体的类实现,主要代码在 src/image 文件中。 4 Android 图形系统的 JNI 接口主要提供了从 Skia 底层库到 Java 上层的支持,代码路径为:frameworks/base/core/jni/android/graphic/主要为 Canvas.cpp 文件。 5 Android 的图形包( graphics )Android 图形类的包是 android.graphics, 它通过调用图形系统的 JNI 提供了对 Java 框架中图形系统的支持,在 Android 的 Java 框架中和 Java 应用程序中, 2D 绘制的功能(基本图形、图片文件,文字)也是通过调用它来实现的。代码路径为:frameworks/base/graphics/java/android/graphics/其中 Canvas.cpp 文件实现了 Android 图形系统中最重要的一个类 android.graphic.canvas 。 6 Android 2D 图形硬件加速目前 Android 2D 图形硬件加速主要是通过 copybit 模块来实现, Copybit 是封装在 Android系统 opengl 软件实现库( libagl )的一部分,仅对 openGL ES 2D API 进行封装,实现openGL ES 2D API 到硬件的加速功能。copybit 模块以 HAL 的形式实现,代码 hardware/msm7k/libcopybit/copybit.c 另外,在 /p/skia/wiki/FAQ 看到关于 Skia 硬件加速和字体支持的相关信息:Does Skia support HW acceleration?There are two ways Skia can take advantage of HW.1. Subclass SkCanvasSince all drawing calls go through SkCanvas , those calls can be redirected to a different graphics API. SkGLCanvas has been written to direct its drawing calls to OpenGL. See src/gl/2. Custom bottleneck routinesThere are sets of bottleneck routines inside the blits of Skia that can be replace on a platform in order to take advantage of specific CPU features. One such example is the NEON SIMD instructions on ARM v7 devices. See src/opts/Does Skia support Font hinting?Skia has a built-in font cache, but it does not know how to actual render font files like TrueType into its cache. For that it relies on the platform to supply an instance of SkScalerContext. This is Skias abstract interface for communicating with a font scaler engine. In src/ports you can
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解读消防授旗训词精神
- 托管经营协议书范本
- 扣押补偿安置协议书
- 2025年中职经济贸易(国际贸易实务)试题及答案
- 2025年中职建筑工程施工(建筑测量技术)试题及答案
- 2025年中职急救基础(常见急症处理)试题及答案
- 2025年中职机电一体化技术(机械加工工艺)试题及答案
- 2025-2026学年福建省漳州市八年级(上)第一次月考历史试卷(含答案)
- 2024统编版七年级语文上册第四单元素养评价测试卷(含答案)
- 钙钛矿建设提质项目阶段性完成情况汇报
- 2025年广西华盛集团盛龙农工商有限责任公司招聘笔试参考题库附带答案详解
- 医学形态学理论知识考核试题及答案
- 深圳农村商业银行综合积分系统-操作手册30
- 呼叫中心情绪管理与抗压能力测试考核试卷
- 广东省佛山市顺德区2020-2021学年七年级上学期期末质量检测英语试卷
- 2024年12月英语四级真题及参考答案
- 北京四合院的课件
- 继电保护现场巡视检查作业指导书
- 建筑材料行业绿色建筑材料与方案
- 人教新课标四年级上册数学1.1《亿以内数的大小比较》说课稿
- Unit-6-Animal-Intelligence市公开课一等奖省赛课微课金奖课件
评论
0/150
提交评论