用于处理字符串以在人/机界面上进行图形表示的技术的制作方法_3

文档序号:9376893阅读:来源:国知局
[0048](3)line_to(30,20)
[0049](4)line_to(30,80)
[0050](5) I ine_to (40,80)
[0051](6)line_to(40,20)
[0052](7)line_to(60,20)
[0053](8)line_to(60,10)
[0054](9) line_to (10,10)。
[0055]在这方面,指令“move_to (x, y) ”定义起始点(和因此整个外形)相对于二维坐标系统的初始位移(参见图2c,箭头I),由此传送的(transferred)坐标值(x、y)定义了在两个维度的移位程度。外形的具体形状然后经由指令序列(2)至(9)定义。指令“line_to (10,20)”将例如坐标点(10,10)和(10,20)之间的外形的路径段定义为直线。以同样的方式,下面的指令“line_to(x,y)”在每个实例中描述两个顺次坐标点之间的字符“T”的外形的直线段。该段在图2c由相应箭头示出,上面的阵列编号已被分配到箭头。在这方面,只有终点的坐标被传送到指令“line_to(x,y)”,这是因为在每个实例中,先前路径段的终点或外形的起始点(“move-to (移至)”指令)已经被定义为路径段的起始点。凭借上述指令的阵列,可连续生成描述字符“T”的外形的闭合路径。除了直线段的表示外,OpenVG还实现二次曲线段或三次曲线段的表示。这些是由指令“quad_to”或“CubiC_to”来描述的。总体而言,可注意,在OpenVG中,用于描述任意字符的外形的路径由路径指令的阵列描述。然后可使用在指令序列(I)至(9)中定义的路径信息(与其它属性信息项一起),以便描述字符“T”的图形表示。可以相同的方式来描述剩余的字符“E”、“X”和“T”。
[0056]借助于图3至图5,现在将描述用于通过OpenVG驱动器1012的辅助来处理字符串的方法。OpenVG能够处理位图数据和矢量数据。为了对字符串(诸如,例如,图2a中表示的字符串“TEXT”)进行图形表示,有两种已知的方法来表示字符,这将在图3和图4中简要地阐明。
[0057]首先转到图3。已经结合图1描述了 OpenVG驱动器1012的、GPU 1014的、文本渲染器1024的和字体库1022的一般功能。在这种情况下,参考图1的描述。图3不同于图1,不同之处主要在于已经以对应于在应用级别、操作系统级别(OS) 1000和硬件级别1005下的分配的方式表示了文本渲染器1024、字体库1022、OpenVG驱动器1012和GPU 1014。
[0058]图3中所示的方法是用于表示字符串的基于矢量的方法,其中从字体库中检索待表示的字符串的每个字形的外形(即,路径数据),且生成针对每个字符的路径对象以进行图形表示。
[0059]具体而言,文本渲染器1024可针对字符串“TEXT”的每个字符从字体库1022中调用出对应字形的外形。随后,针对待表示的每个字符,文本渲染器1024基于调用出的外形生成路径对象,并且将所述路径对象转移到图形界面1010以用于图形表示。图形对象的生成和转移由对OpenVG驱动器1012的数次调用来实现,由此首先进行调用,以便生成路径对象(VgCreatePath),进行另一调用以便用路径数据(VgAppendPathData)来填充路径对象,并进行调用以便绘制路径对象(VgDrawPath)。GPU 1014然后基于路径对象数据(这些包括如已经在上面结合图2a至图2c描述的外形和属性信息项)生成对应的图像数据,其然后被提供到可视输出单元1030。针对字符串的每个字符重复该过程。换言之,针对字符串“TEXT”的每个字符,生成单独的路径对象并将其传送到OpenVG驱动器1012的渲染管线。这已经在图3中由OpenVG驱动器1012和文本渲染器1024之间和OpenVG驱动器1012和GPU 1014之间的四个箭头图示,由此四个箭头中的每个分别表示字符串“TEXT”的字符。此夕卜,应注意,在图3中,为了简单起见,针对应用1020和OpenVG驱动器1012之间的每个字符,上面叙述的三次调用已经在图3中仅由一个箭头表示。
[0060]用于表示字符串的图4中所示的方法是基于位图的方法。它不同于图3中所示的方法,不同之处主要在于分配给各个字符的字形由位图而不是由外形表示。文本渲染器1024可为每个字形从字体库1022中调用对应的位图。基于所检索到的位图字形,借助于OpenVG驱动器1012,文本渲染器1024随后生成图像对象并将后者传送到图形界面1010以用于图形表示。每个图像对象的生成和描绘都再次由对OpenVG驱动器1012的数次调用来实现,由此进行首次调用以便生成图像对象,进行另一调用以便用位图数据来填充路径对象,并进行又一调用以用于绘制对象。同样通过该过程,针对字符串的每个字符,生成单独的图像对象并传送到图形界面1010。
[0061]参考图5和图6,现在将描述根据本发明的用于处理字符串以进行图形表示的方法。图5再次示出了用于图形表示的所涉及的硬件组件和软件组件的相互作用。至于OpenVG驱动器1012的、GPU 1014的和字体库1022的功能,再次参考对图1的描述。将结合以下过程描述文本渲染器1024a的操作模式,图6示出了该过程的对应流程图。
[0062]在第一步骤SlO中,从字体库1022中至少检索出待图形表示的字符串的每个字符的字形的外形。文本渲染器1024a已经知晓待表示的字符串并重复调用字体库1022,直到获得字符串的所有外形为止。除了外形,也可检索字符的其它信息项,它们针对每个字形早已被保存在字体库1022中且可能在字符串的图形表示中被用到。这种信息项涉及例如每个字形的尺寸、偏移和字距,如上面已经描述的。
[0063]在第二步骤(S20)中,生成待表示的字符串的路径对象。为此,文本渲染器1024a通过确定字符的每个外形的平移并通过借助于该平移重新计算外形的每个路径段来将已经获得的字符串的所有外形组合为单一路径。基于字符串“TEXT”在图7中以示例的方式描述外形合成(组合)为单一路径。至关重要的是,依据根据本发明的过程,文本渲染器1024a组装字符串的所有外形以形成一个路径并生成针对整个字符串的单个路径对象。
[0064]单个径对象的生成通过VgCreatePath调用而进行,以便生成空路径对象,并通过VgAppendPathData调用,以便用组合的路径数据来填充路径对象。
[0065]在第三步骤S30中,生成的针对字符串的路径对象被传送到图形界面1010。文本渲染器1024a通过VgDrawPath调用将路径对象转移到界面。以已知的方式,GPU 1014然后基于所获得的数据生成待表示的图像信息。
[0066]根据本方法,针对待表示的整个字符串生成仅仅一个路径对象并传送到图形界面1lO0这在图5中由文本渲染器1024a和OpenVG驱动器1012之间的和OpenVG驱动器1012和GPU 1014之间的一个单箭头进行符号表示。换言之,整个字符串被绘制为单一路径对象。因此不会针对每个字符生成单独的路径对象并将单独的路径对象传送到图形界面1010以进行表示,如例如在结合图3和图4所描述的方法中是这种情况。以这种方式,OpenVG驱动器1012和应用(或文本渲染器1024)之间的调用数量可大大减少。依据根据本发明的方法,为了表示具有η个字符的字符串,所需要的“绘制调用”相对于图3和图4所讨论的方法中“绘制调用”,少了(η-1)个,以便由η个字符表示字符串。用于生成和绘制路径对象的每个调用会占用资源(存储器资源和处理器资源)且因此对表示的性能产生影响。凭借本文所描述的方法,调用数量急剧减少,由此,图形字符表示的速度被明显优化。
[0067]在图7中,基于字符串“TEXT”将再次更详细地阐明表示字符串的单个路径对象的生成。文本渲染器1024a被配置为将从字体库1022中检索到的所有外形组合为单一路径。为此目的,根据字符序列并以各个连续字符之间的所需或预定间距来重新计算字符的外形。具体而言,计算表示字符的每个外形(即,每个路径段)的一维或二维平移,其规定了外形的点在路径对象中采取哪个坐标。外形平移的计算可基于所计算的前面外形的位置信息逐步进行。
[0068]在水平取向的字母串“TEXT”的实例中,首先计算第一个字符“T”的外形。由于“T”是待表示的第一个字符,所以外形或路径段的计算不依赖于任何其它字符。第一字符“T”的路径段因
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1