专利名称:XWindow系统下版图编辑中卡通的实现方法
技术领域:
本发明涉及在XWindow系统中实现二维卡通(Cartoon)绘制的实现方法,该绘制 主要用于集成电路辅助设计领域中的版图编辑工具,特别是交互式编辑过程中用户的可视 化部分。
背景技术:
在集成电路辅助设计版图交互式编辑过程中,版图设计工程师使用鼠标来完成版
形的创建与修改,例如,在完成一个多边形的移动过程中,工具需要随用户鼠标的移动
显示该多边形的轮廓,以指示移动的路径与当前位置。随鼠标移动的图形轮廓叫做卡通
(Cartoon),在移动的过程中,工具需要对卡通进行绘制,在原位置清除,在新位置绘制,再
清除,再绘制的一系列的处理过程。 在版图交互式编辑中,卡通的显示过程要求 1.卡通的绘制与清除必须具有实时性,即给用户以平滑的操作感受; 2.显示卡通的颜色在移动中要保持一致,以清晰地标明图形对象的位置与形状; 3.卡通的绘制与清除要良好地兼容现有XWindow的各种硬件平台。 在XWindow系统下,通过重画卡通所在区域的背景图形来清除卡通的任何方法都
是不行的,因为其速度不能达到实时性的要求,即不满足要求1。 XWindow系统下一种通用的卡通显示技术是使用X0R绘制方式设当前像素点颜 色是a(x,y),卡通颜色是b,有a(x,y)X0R b = c(x,y)及c(x,y)X0R b = a(x,y)X0R b X0R b = a(x, y),即奇数次绘制显示卡通,偶数次绘制清除卡通。这种方式满足实时性的要求, 但由于显示颜色c(x, y)依赖于背景像素点,所以整个卡通的显示颜色不统一,且随着移动 位置产生变化。另一个问题是当卡通图形本身存在重叠边时,重叠边将被消隐,造成缺边的 现象。X0R绘制方式不满足要求2。 在伪彩色颜色模型下,XWindow系统有一种很好的卡通显示技术将颜色表等分 为前后两个部分,前一部分索引的最高位是0,用于分配正常颜色,后一部分索引的最高位 是l,全部分配成卡通所用的颜色。在绘制卡通时,使用SET方式将背景像素值的最高位置 l,切换到颜色表的下部,显示卡通颜色;在清除卡通时,使用CLEAR方式将像素值的最高位 清0,切换回颜色表的上部,恢复原像素颜色。该方法确保卡通颜色的一致性,不存在重叠边 消失的问题,但由于现在的PC机基本上都已采用24位真彩色的颜色模型,伪彩色模型只在 SUN工作站上存在,所以不满足要求3。另外,该方法还存在两个问题,其一,由于独占颜色 表的内容可能与系统颜色表或其它应用程序的颜色表不相同,可能存在在不同应用程序间 切换后屏幕变花的现象,该现象技术上叫Colorm即Flashing ;其二,由于颜色表的一半被 固定分配给卡通颜色,加上为缓和Colorm即Flashing现象而保留的系统颜色,只能有少量 的颜色留给应用程序自由使用,造成工具缺色的现象。
发明内容
本发明使用后备缓存加TILE模式的方法实现卡通的绘制与清除,能够同时满足 上述提到的3个要求。 XWindow提供一种TILE模式的绘制方式,该方式下,绘制图形的像素点颜色并不使用 前景色,而是取自于一幅可设置的图象中相应坐标的像素点。本发明使用一块后备缓存来保存 已绘制的背景图形,在清除卡通的操作中,通过将该后备缓存设置为TILE图像,并使用TILE模 式在原位置重新绘制卡通图形,就恢复了原背景像素值,达到了快速清除卡通的目标。
后备缓存的生成与维护是在绘制背景图形时,将后备缓存设置为显示输出区域, 使图形直接绘制在后备缓存中。当绘制图形多、时间长时,需要定期将后备缓存中的绘制内 容拷贝到窗口,以刷新屏幕显示。实现中设定一个阈值,当绘制的图形超过该阈值后,就进 行一次屏幕刷新。 绘制卡通时直接使用卡通颜色按COPY方式绘制到窗口中,不影响后备缓存。
XWindow系统绘图中有3处不支持TILE模式绘制点,绘制文本,和绘制0线宽线 段。由于版图编辑中不会出现孤立点的图形,所以不会用到绘制点;另外,版图编辑中所有 文本都采用矢量字体,即所有文本在绘制时都将转化为折线段,所以也不会用到绘制文本; 最后,对于O宽度的线段,需要在实现中将线宽调整为1。 本发明在卡通的绘制与清除的操作中保证了绘图的实时性,满足要求1。绘制卡通 时使用COPY模式,保证了卡通颜色的一致性,避免了 X0R方法中的问题,满足要求2。清除 卡通时使用TILE模式,不依赖于XWindow的颜色模型,也不会分配多余的颜色元,避免了伪 彩色方法中的问题,满足要求3。
图1是图形绘制、卡通绘制、及卡通清除的处理流程
具体实施例方式
参见图l,在绘制普通图形时,设置后备缓存为绘制区域,采用COPY方式按照图形 要求的颜色和填充绘制图形,当绘制达到一定阈值时,将后备缓存的内容拷贝到窗口,刷新 屏幕显示,同时将绘制计数器归0。 参见图l,在绘制卡通时,采用COPY方式按卡通颜色直接在窗口中进行绘制。
参见图1,在清除卡通时,将绘图方式设置为TILE,并将后备缓存设置为TILE所用 的图象,在窗口中绘制卡通图形,XWindow系统将用后备缓存中的像素点恢复背景图形。
以下结合附图对本发明的具体实施方法进行说明 首先对所需的图形上下文进行初始化,包括设置当前窗口和剪裁区域等,判断线 宽是否为O,若为O,则将线宽调整为1,以保证在TILE模式下显示正确,接着判断当前显示 类型,有3种可能绘制普通图形、绘制卡通、和清除卡通。 当要求绘制普通图形时,先将绘图计数器中所记的绘图次数增l,判断绘图次数是 否大于阈值,若大于,则将后备缓存中的内容拷贝到当前窗口进行屏幕刷新,同时将绘图计 数器清O,初始化好下一轮的计数;若判断绘图次数不大于阈值,则将后备缓存设置为显示 区域,绘制的图形将输出到后备缓存而不是当前窗口。随后设置图形输出的颜色和填充样式,并且将绘图方式设置为COPY,最后完成普通图形的输出。 当要求绘制卡通时,先将当前颜色设置为卡通颜色,再设置显示区域为当前窗口,
设置绘图方式为COPY,最后绘制卡通,卡通将以设置的颜色绘制到当前窗口中。 当要求清除卡通时,先将后备缓存设置为TILE所用的图象,再设置显示区域为当
前窗口。然后将绘图方式设置为TITL,激活后备缓存所设置的TITL图像的使用,最后绘制
卡通,XWindow系统将用后备缓存中的像素点在当前窗口中恢复卡通所覆盖的背景图形。 本发明所公开的一种在XWindow系统下实现版图交互编辑中二维卡通绘制的实
现方法,实现了卡通的绘制与清除的实时性,给用户以平滑的操作感受;显示卡通的颜色在
移动中保持了一致,清晰地标明图形对象的位置与形状,卡通的绘制与清除良好地兼容现
有XWindow的各种硬件平台。 以上公开的仅为本发明的几个具体实施例,但本发明的保护范围并不局限于此, 任何本领域的技术人员能思之的变化都应落在本发明的保护范围内。
权利要求
一种在XWindow系统下实现版图交互编辑中二维卡通绘制的实现方法,其特征在于,在绘制图形时采用后备缓存记录绘制内容,在清除卡通时采用TILE模式根据后备缓存的像素值恢复背景图形。
2. 根据权利要求1所述的一种在XWindow系统下实现版图交互编辑中二维卡通绘制的 实现方法,其特征在于具体实现步骤如下1) 对所需的图形上下文进行初始化,设置当前窗口和剪裁区域等,判断线宽是否为0, 若为0,则将线宽调整为l,以保证在TILE模式下显示正确;2) 判断当前显示类型;3) 当绘制普通图形时,将绘图计数器中所记的绘图次数增l,判断绘图次数是否大于 阈值,若大于,则将后备缓存中的内容拷贝到当前窗口进行屏幕刷新,同时将绘图计数器清 0 ;若判断绘图次数不大于阈值,则将后备缓存设置为显示区域,绘制的图形将输出到后备 缓存而不是当前窗口 ,随后设置图形输出的颜色和填充样式,并且将绘图方式设置为COPY, 最后完成普通图形的输出;4) 当要求绘制卡通时,先将当前颜色设置为卡通颜色,再设置显示区域为当前窗口 ,设 置绘图方式为COPY,最后绘制卡通,卡通将以设置的颜色绘制到当前窗口中;5) 当要求清除卡通时,先将后备缓存设置为TILE所用的图象,再设置显示区域为当前 窗口 ,然后将绘图方式设置为TITL,激活后备缓存所设置的TITL图像的使用,最后绘制卡 通,XWindow系统将用后备缓存中的像素点在当前窗口中恢复卡通所覆盖的背景图形。
全文摘要
本发明涉及在XWindow系统中实现二维卡通(Cartoon)绘制的实现方法,该绘制主要用于集成电路辅助设计领域中的版图编辑工具,特别是交互式编辑过程中用户的可视化部分。本发明提供一种XWindow系统下版图交互编辑中卡通绘制的实现方法,具有实时性和硬件兼容性,且能在不占用颜色资源的情况下保证卡通移动过程中颜色的一致性。在绘制图形时采用后备缓存记录绘制内容,在清除卡通时采用TILE模式根据后备缓存恢复背景图形。
文档编号G06T13/00GK101770654SQ200810240848
公开日2010年7月7日 申请日期2008年12月26日 优先权日2008年12月26日
发明者李学峰, 王勇 申请人:北京华大九天软件有限公司