在android上使用cairo
16lz
2021-12-04
cairo是一个2D库,在浏览器领域主要是mozilla firfox在用。
webkit实际上也有用到cairo,主要是efl,gtk等,但是在android上,webkit用的是skia。
因此在android要想用cairo就需要自己编译移植了。
android上有Bitmap,这个直接对应于cairo的image surface就可以用,
这个移植比较简单,主要是Bitmap是java的,cairo image surface是c++的,
所以要用到jni进行相应的交互调用,速度上还可以,以现在的arm频率,完全能满足非特效web。
2013年开始cairo对gles2的支持开始增加了,而且越来越好,
因此cairo也可以像skia一样直接调用gles2了。
但是要想在android上使用gles2,还需要主要两点:
1.cairo-gl-dispatch.c 需要直接调用的gles2的函数,不能中转
2.cairo-gl-shader.c 需要注意gles2对shader语言的限制比较多
在cairo直接调用gles2后,速度上提高不到,但是cpu占有小了很多,因此可以做一些web特效了。
更多相关文章
- Android中几种图像特效处理
- Android高手应该精通哪些内容?
- Android的多媒体数据库
- afinal快速开发框架
- Android高手应该精通哪些内容
- Cortex-A8和Android应用开发视频教程
- Android(安卓)Studio快捷键以及使用技巧——诺诺"涂鸦"记忆
- Android高手应该精通哪些内容
- Android中的横竖屏