初次接触这个东西,理解肤浅,还请海涵。 OpenVG是用于嵌入式设备上的矢量图形开发接口,并且希望利用硬件加速技术来提高性能。国外有商业化的OpenVG软硬件实现,国内也有牛人作了OpenVG的软件实现,效率比官方实现高很多。而且提供了一些文档及例程方便OpenVG的学习,下面的学习即取材于此。可以在这里下载http://www.hygraphics.com/download/gingkoVG/OpenVG%20Release.zip 基本背景 计算机系统可以有多种显示引擎,用于支持界面的显示、GUI交互、绘图、视频等等。通常情况下,嵌入式系统的显示系统有以下几种模式: 1) 无加速 (帧缓冲 – framebuffer) 可以根据不同的硬件显示系统,选择合适的引擎。这么说来OpenVG属于其中的第3)种引擎了。 OpenVG的使用 OpenVG里的api函数命名与OpenGL类似,都包括vg开头的模块名,然后是函数功能名称,最后是参数类型。稍有些不同,例如不是根据函数参数中数组的长度的不同而命名不同的函数,而是统一成一个函数,参数包括数组名及数组长度。 api使用步骤 示例1:场景(context)参数的获取与设置 vgSetfv( VG_CLEAR_COLOR, 4, clear );//设置清除背景的颜色,参数为float的数组clear,长度为 4 vgClear( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT );//清除指定面积的背景 vgSeti( VG_SCISSORING, VG_TRUE );//设置允许裁剪 vgGetfv( VG_CLEAR_COLOR, 4, color );//获取清除背景的颜色,参数为float数组color,长度为4 示例2:基本几何体的绘制 path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);//创建路径 |