一种基于vxWorks系统的矢量字体显示优化方法技术方案

技术编号:18458667 阅读:42 留言:0更新日期:2018-07-18 12:39
本发明专利技术揭示了一种基于vxWorks系统的矢量字体显示优化方法,包括FreeType引擎库裁剪、矢量字库初始化、中文字符unicode转码设置、FreeType函数库字模获取、矢量字输出显示、矢量字与背景混合显示、矢量字显示优化。本发明专利技术以空间换时间的优化方法,解决矢量字显示时间的消耗,保留已被创建的字符字模、字形轮廓和纹理,通过内码直接查找判断字符是否已被创建过,增加显示效率。可以在vxWorks系统中广泛使用,只要采用vxWorks系统与OpenGL/ES库的图形显示领域,均可适用,可以对已经定型的硬件进行软件升级,改变其矢量字显示的方式,能实现多种字体、任意大小矢量字的显示功能,能够与背景完美相融,并优化矢量字正常显示流程,保证了显示效率也满足正常显示需求。

A vector font display optimization method based on vxWorks system

This invention reveals an optimization method of vector font display based on vxWorks system, including FreeType engine library clipping, vectorial library initialization, Chinese character Unicode transcoding, FreeType function library font acquisition, vector word output display, vector word and background mixed display, vector word display optimization. The invention uses the optimization method of space time changing to solve the time consumption of vector word display, keep the character font, shape outline and texture that have been created, find out whether the character has been created directly through the inner code, and increase the display efficiency. It can be widely used in the vxWorks system. It can be applied to the graphics display field of vxWorks system and OpenGL/ES library. It can be used to upgrade the software that has been set and change the way of displaying the vector words. It can realize the display function of a variety of fonts and arbitrary size vector words, and can blend perfectly with the background. It also optimizes the normal display process of vector characters, which ensures the display efficiency and meets the normal display requirements.

【技术实现步骤摘要】
一种基于vxWorks系统的矢量字体显示优化方法
本专利技术涉及一种矢量字体显示优化方法,尤其涉及一种基于vxWorks系统的矢量字体显示优化方法,属于设备终端画面显示的

技术介绍
航空、航天、陆地武器装备和列车等设备的显示终端出于安全性考虑多以vxWorks作为嵌入式实时操作系统,为满足中国市场的客观需求和便利性,显示内容多要求以中文界面为主,且为满足用户要求和客观需求,显示内容日趋繁杂化和多元化。就目前而言,vxWorks系统只支持西文,于广大用户而言,文件的传输和信息的交换受到很大局限。为满足客户使用需求,vxWorks系统实现中文图形界面显示势在必行。点阵字库或纹理贴图方式实现字体显示的方法应运而生,这种字库方式设计简洁,应用广泛,但变化单一,显示内容需预先知晓。vxWorks还支持WINDML图形系统,其包含FreeType源码引擎库,能够有效地实现矢量字显示功能,但需要BSP支持WINDML图形系统,会增加各硬件平台代码移植和复用的负荷,提升了FreeType库的裁剪的工作量和技术难度,而且显示效率相对低下,优化空间较窄,难以满足用户的实际使用需求。
技术实现思路
本专利技术的目的是解决上述现有技术的不足,,提供一种基于vxWorks系统的矢量字体显示优化方法。为了达到上述目的,本专利技术所采用的技术方案为:一种基于vxWorks系统的矢量字体显示优化方法,其特征在于包括如下步骤:步骤a,FreeType引擎库裁剪,选择支持TrueType字库输出矢量字的组件,裁剪FreeType技术引擎库,建立调用关系,更改源码中调用关系逻辑,剔除多余函数和冗余代码,根据硬件环境选择编译选项,编译成矢量字库;步骤b,矢量字库初始化,矢量字库的外观类创建;步骤c,中文字符unicode转码设置,转化程序中所有的中文为字符对应的内码,根据内码在汉字库中找相应字模的unicode码;步骤d,FreeType函数库字模获取,中英文字符由内码转化为unicode码,获取TrueType字库中对应字符的索引值,取得字符的字形轮廓,把其参数装入字形槽,把字形轮廓数据转换成位图形式;步骤e,矢量字输出显示,显示矢量字以转换后的位图为模板,采用纹理贴图的形式构建矢量字纹理显示;步骤f,矢量字与背景混合显示,采用alpha值混合,设定选择源因子为GL_ONE,目标因子为GL_ONE_MINUS_SRC_ALPHA;步骤g,矢量字显示优化,保留已被创建的字符字模、字形轮廓和纹理,通过内码直接查找判断字符是否已被创建过,已创建,则直接调用。优选地,所述步骤a包括:步骤201:FreeType引擎库矢量字显示采用TrueType库作为字库作为索引,选择支持TrueType字库输出矢量字的组件;步骤202:根据已选择的组件,剔除不需要的组件及其内容,对源码进行裁剪;步骤203:根据选择的编译器,建立生成库文件工程时更改源码调用逻辑;步骤204:根据硬件平台选择对应的CPU硬件环境设置,修改编译器设置选项;步骤205:生成以供调用的矢量字库,用于矢量字显示。优选地,所述步骤c包括:步骤401:获取字符的内码;步骤402:依据内码判断当前的字符是英文字符;步骤403:依据内码判断当前字符为汉字字符;步骤404:英文字符的ASCII码,即是所需的unicode码;步骤405:根据中文汉字库特性以及字符的内码,计算中文字符的区位码;步骤406:依据区位码查找字库中对应中文字符的unicode码。本专利技术的有益效果主要体现在:以空间换时间的优化方法,解决矢量字显示时间的消耗,保留已被创建的字符字模、字形轮廓和纹理,通过内码直接查找判断字符是否已被创建过,增加显示效率。可以在vxWorks系统中广泛使用,只要采用vxWorks系统与OpenGL/ES库的图形显示领域,均可适用,可以对已经定型的硬件进行软件升级,改变其矢量字显示的方式,能实现多种字体、任意大小矢量字的显示功能,能够与背景完美相融,并优化矢量字正常显示流程,保证了显示效率也满足正常显示需求。附图说明图1是本专利技术中FreeType引擎库裁剪的流程图。图2是本专利技术中矢量字输出显示的流程图。图3是本专利技术中中文字符unicode转码设置的流程图。图4是本专利技术中矢量字显示优化的流程图。具体实施方式本专利技术提供一种基于vxWorks系统的矢量字体显示优化方法。以下结合附图对本专利技术技术方案进行详细描述,以使其更易于理解和掌握。一种基于vxWorks系统下的矢量字体显示及优化方法,包含以下步骤:步骤a.,FreeType引擎库裁剪如果FreeType技术引擎库能够有效地输出显示TrueType字库,需支持tt_driver_class、ft_smooth_renderer_class和sfnt_module_class三组组件,裁剪FreeType技术引擎库,删除多余组件内容。根据WorkBench或Tornador建立工程的调用关系,更改源码中调用关系逻辑,剔除多余函数和冗余代码,实现源码有效地裁剪,根据硬件环境选择编译选项,编译成目标文件,供调用。步骤b,矢量字库初始化矢量字库的初始化主要是外观类的创建。一个外观对象对应单个字体外观,即一个特定风格的特定外观类型,例如Arial和ArialItalic是两个不同的外观。每个外观对象都有一个或多个尺寸对象,一个尺寸对象用来存放指定字符宽度和高度的特定数据,每个新创建的外观对象有一个尺寸对象的内容。步骤c,中文字符unicode转码设置国家标准的汉字字符集在汉字操作系统中是以汉字库的形式提供的,并对汉字库结构作了统一规定,将字库分成94个区,每个区有94个汉字,每个汉字就有唯一的识别码,称为区位码。通过汉字的区位码可以计算出该汉字在字库中的位置,从而找到该汉字的字模。vxWorks本身不支持中文,也不包含中文字库,要实现汉字显示必须首先将字库文件下载到目标机上。程序中所有的中文都转化为该字符对应的内码,程序执行中需要处理汉字时就根据其内码到字库中找相应的字模,而FreeType函数库字模是以unicode码进行排序的,所以根据汉字内码转化为unicode码。具体实现过程是解析与裁剪ICON库源码实现此功能。步骤d,FreeType函数库字模获取FreeType函数库获取字模,必须引入字形槽的概念,其提供一个地方可以很容易地容纳字形映象,且不管格式。TrueType中字形槽目的是显式地提供数据来计算一个槽的最大尺寸,且用来为指定字形保存格式特定的hint,以及装入字形的必要数据,控制矢量字显示的位置。每个外观对象有一个单一字形槽,可以直接访问。中英文字符由内码转化为unicode码,旨在获取TrueType字库中对应字符的索引值,通过TrueType字库中的字符索引值装载、获取等步骤取得字符的字形轮廓,把其必要参数装入字形槽,把字形轮廓数据转换成位图形式,依据字形槽数据和显示位置输出矢量字。步骤e,矢量字输出显示字形槽与位图已被成功获取,矢量字输出显示需要OpenGL图形显示驱动的支持。显示矢量字以转换后的位图为模板,采用纹理贴图的形式构建矢量字纹理显示。输出显示前把位图数据存储至对应的字符纹理数据中,每个字符位图都需构建一个独立的纹理矩阵,构本文档来自技高网...

【技术保护点】
1.一种基于vxWorks系统的矢量字体显示优化方法,其特征在于包括如下步骤:步骤a,FreeType引擎库裁剪,选择支持TrueType字库输出矢量字的组件,裁剪FreeType技术引擎库,建立调用关系,更改源码中调用关系逻辑,剔除多余函数和冗余代码,根据硬件环境选择编译选项,编译成矢量字库;步骤b,矢量字库初始化,矢量字库的外观类创建;步骤c,中文字符unicode转码设置,转化程序中所有的中文为字符对应的内码,根据内码在汉字库中找相应字模的unicode码;步骤d,FreeType函数库字模获取,中英文字符由内码转化为unicode码,获取TrueType字库中对应字符的索引值,取得字符的字形轮廓,把其参数装入字形槽,把字形轮廓数据转换成位图形式;步骤e,矢量字输出显示,显示矢量字以转换后的位图为模板,采用纹理贴图的形式构建矢量字纹理显示;步骤f,矢量字与背景混合显示,采用alpha值混合,设定选择源因子为GL_ONE,目标因子为GL_ONE_MINUS_SRC_ALPHA;步骤g,矢量字显示优化,保留已被创建的字符字模、字形轮廓和纹理,通过内码直接查找判断字符是否已被创建过,已创建,则直接调用。...

【技术特征摘要】
1.一种基于vxWorks系统的矢量字体显示优化方法,其特征在于包括如下步骤:步骤a,FreeType引擎库裁剪,选择支持TrueType字库输出矢量字的组件,裁剪FreeType技术引擎库,建立调用关系,更改源码中调用关系逻辑,剔除多余函数和冗余代码,根据硬件环境选择编译选项,编译成矢量字库;步骤b,矢量字库初始化,矢量字库的外观类创建;步骤c,中文字符unicode转码设置,转化程序中所有的中文为字符对应的内码,根据内码在汉字库中找相应字模的unicode码;步骤d,FreeType函数库字模获取,中英文字符由内码转化为unicode码,获取TrueType字库中对应字符的索引值,取得字符的字形轮廓,把其参数装入字形槽,把字形轮廓数据转换成位图形式;步骤e,矢量字输出显示,显示矢量字以转换后的位图为模板,采用纹理贴图的形式构建矢量字纹理显示;步骤f,矢量字与背景混合显示,采用alpha值混合,设定选择源因子为GL_ONE,目标因子为GL_ONE_MINUS_SRC_ALPHA;步骤g,矢量字显示优化,保留已被创建的字符字模、字形轮廓和纹理,通过内...

【专利技术属性】
技术研发人员:黄星周剑王伟王瑞球
申请(专利权)人:苏州长风航空电子有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1