Skia Overview and API Reference

Skia简介和图形案例

Overview

Skia是一个开源的2D图形库,提供各种常用的API,并可在多种软硬件平台上运行。谷歌Chrome浏览器、Chrome OS、Android、火狐浏览器、火狐操作系统以及其它许多产品都使用它作为图形引擎。

Skia由谷歌出资管理,任何人都可基于BSD免费软件许可证使用Skia。Skia开发团队致力于开发其核心部分, 并广泛采纳各方对于Skia的开源贡献。

功能展示与图形案例

下图是一系列图形案例,用来展示Skia可以实现的功能。因为内容太多,浏览器无法渲染所有的图形示例,导致一部分Demo没有显示出来,变成了白色的方块。

skia api overview.png

这张图是Skia官方的示例图:


image.png
image.png

API Reference

关键的类

API Overview

SkCanvas 是Skia的核心,Skia的逻辑都是围绕着 SkCanvas 对象组织的。drawRect, drawPath, drawText等所有的draw calls (绘制命令)都由 SkCanvas 来管理。

draw calls 由两个部分构成:

  • primitive(图元)- SkRect, SkPath, etc.
  • color/style attributes (颜色/样式属性)- SkPaint

SkCanvas指明画在哪里(where),primitive声明要画什么(what),SkPaint说明怎么画(how)。

canvas->drawRect(rect, paint);

所以上面的代码的含义是:在给定的画布(canvas)上绘制一个矩形,paint参数用来描述如何绘制这个矩形,其中包含大量的状态用来描述:矩形是什么颜色,矩形是填充还是描边,应该如何与先前绘制的颜色混合。

相对于Paint,Canvas维护的状态较少,它的作用是:

  • 指向要绘制的实际像素
  • 维护matrices (矩阵)和 clips(裁剪)等操作的栈

因此,在上述调用中,canvas的矩阵操作可以转换矩形的坐标(平移,旋转,倾斜,透视),并且canvas的剪辑操作可以限制矩形在画布上绘制的位置,除此之外所有其他样式绘图的属性都由paint控制。

参考文档:
https://skia.org/user/api

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容