嵌入式图形界面系统中多层窗口的生成方法技术方案

技术编号:6606055 阅读:185 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种嵌入式图形界面系统中多层窗口的生成方法,包括确定每一窗口的透明属性,设置至少一个第一主表面及至少一个第二主表面,将每一透明窗口绘制在一个第一主表面上,在第二主表面上绘制非透明窗口;根据每一窗口的Z序,计算生成每一窗口的剪切区域及透明区域,根据每一窗口的透明区域依次叠加Z序在该窗口之上的其他窗口;在任一窗口的显示状态发生变化时,计算生成每一窗口的新剪切区域,根据每一窗口的新剪切区域计算生成新透明区域,并计算生成每一窗口的无效区域,根据每一所述窗口的新透明区域依次叠加Z序在该窗口之上的其他窗口与该无效区域相交的区域。本发明专利技术能减少图形界面系统占用的资源,并且能满足人们个性化的需求。

【技术实现步骤摘要】

本专利技术涉及电子设备的图像显示领域,尤其涉及一种。
技术介绍
现有的计算机以及手持设备,如手机、MP4等,大多设有用于处理图像显示的嵌入式图形界面系统。常用的图形界面系统都支持多图层、多窗口的显示功能,以提高图像的显示效率,也节省软件合成图像的时间。现有的嵌入式图形界面系统普遍使用传统的窗口重叠方式实现多窗口的生成显示,如图1所示,在屏幕10内有三个非透明窗口 11、12、13显示,三个窗口 11、12、13均绘制在一个帧缓冲(framebuffer)上,并且,每一个窗口 11、12、13在逻辑上属于同一个区域。图形界面系统维护每个窗口的Z序,根据每一个窗口的Z序来维护每一个窗口的前后关系。窗口的Z序用于表示窗口在屏幕上显示的前后顺序,窗口的Z序越大,表示窗口显示越靠后,窗口的Z序越小,表示窗口的显示越靠前。如图1中,窗口 11的Z序为3,窗口 12的Z序为2,窗口 11的Z序为1,则窗口 11在屏幕10上显示最靠后,窗口 13在屏幕10 上显示最靠前,窗口 12则显示在窗口 11与窗口 13之间。图形界面系统通过维护每一窗口 11、12、13的Z序来控制每一窗口 11、12、13在屏幕10上的显示。由于多个窗口的显示是通过重叠方式实现的,因此Z序靠前的窗口将遮挡Z序靠后的窗口至少一部分区域,因此,图形界面系统显示多个窗口时,需要计算每一窗口的剪切区域。窗口的剪切区域是指该窗口被Z序在其上的其他非透明窗口所遮挡后剩余的区域, 该剩余的区域能够显示在其他非透明窗口的外部且能够被观看到。因此,窗口的剪切区域是将窗口在屏幕内的区域减去该窗口与Z序在其上的非透明窗口相交的区域获得。例如,窗口 11显示最靠后,其被窗口 12、13所剪切,因此窗口 11的剪切区域是将窗口 11在屏幕10内的区域减去窗口 11与窗口 12、窗口 13相交的区域,窗口 11最终在屏幕10上所能显示的区域如图加所示,该区域也就是窗口 11的剪切区域。同理,窗口 12被窗口 13所剪切,窗口 12的剪切区域是将其在屏幕10内的区域减去其与窗口 13相交的区域,窗口 12的剪切区域如图2b所示。窗口 13的Z序最小,其没有被其他窗口所剪切,因此窗口 13的剪切区域就是窗口 13在屏幕10内的区域,如图2c所示。当某一窗口的显示状态发生改变时,图形界面系统根据各个窗口的新的显示状态重新生成剪切区域,并计算每一窗口的无效区域。例如,窗口 13从图1所示的位置移动至如图3所示的位置,其中图3中虚线框所示为窗口 13的原始位置。此时,图形界面系统重新计算每一窗口的新剪切区域,同时根据每一窗口的原剪切区域以及新剪切区域计算窗口的无效区域。窗口的无效区域是指在窗口的显示状态发生变化时需要重新绘制的区域,图3所示的窗口 11、12、13均为非透明窗口,且窗口 13显示最靠前,因此窗口 13的新剪切区域与原剪切区域相同,没有需要重新绘制的区域,因此窗口13的无效区域为空区域。由于窗口 11的新剪切区域与原剪切区域不完全相同,原先被窗口 13所遮挡的部分区域在窗口 13位置改变后需要显示在屏幕10上,这部分区域就是窗口 11的无效区域14。同理,窗口12的新剪切区域与原剪切区域不完全相同,从而形成窗口 12的无效区域15。在窗口13的显示位置发生变化时,图形界面系统需要重新绘制无效区域14、15,并根据每一窗口 11、12、13的Z序依次叠加形成图像,从而在帧缓冲上形成相应的图像并显示。由于该图形界面系统的窗口均为非透明窗口,显示较为死板,没有实现窗口的透明效果,导致图形界面显示效果单一,不能满足人们个性化的需求。因此,现有一些图形界面系统采用新的设计模式,使窗口可以透明状态显示,如图 4所示。该图形界面系统将每一窗口 21、22、23绘制在一个独立的主表面(surface)上,其中窗口 21、22为透明窗口,窗口 23为非透明窗口,窗口的透明属性可根据用户的选择设定。当每一窗口的透明属性确定并绘制在各自的主表面上后,图形界面系统根据每一窗口的Z序合成在帧缓冲20上,并将合成后的图像在屏幕25上显示。由于窗口 21、22为透明窗口,因此窗口 23虽然有部分区域被窗口 21、22所遮挡,但仍可在屏幕25上显示。上述图形界面系统虽然能实现多层窗口的透明显示,但不管窗口是否透明,均将每一窗口绘制在一个独立的主表面上,因此需要创建多个主表面,并且将多个主表面进行合成显示,占用大量的内存资源,使计算机或手持设备等主设备需要配置较高的内存以满足图形界面系统的运行,增加主设备的生产成本,不能满足嵌入式系统对低成本的要求。
技术实现思路
本专利技术的目的是提供一种内存占用较小且可显示透明窗口的。为此,本专利技术提供的包括确定每一窗口的透明属性,设置至少一个第一主表面以及至少一个第二主表面,将每一透明窗口绘制在一个第一主表面上,在第二主表面上绘制至少一个非透明窗口 ;根据每一窗口的Z序, 计算生成每一窗口的剪切区域及透明区域,根据每一窗口的透明区域依次叠加Z序在该窗口之上的其他窗口 ;在任一窗口的显示状态发生变化时,计算生成每一窗口的新剪切区域, 根据每一窗口的新剪切区域计算生成新透明区域,并计算生成每一窗口的无效区域,根据每一所述窗口的新透明区域依次叠加Z序在该窗口之上的其他窗口与该无效区域相交的区域。由上述方案可见,将多个非透明窗口绘制在同一个第二主表面上,能减少生成的第二主表面的数量,图形界面系统所占用的内存资源也相应地减少。并且,图形界面系统还可以根据窗口的透明属性生成显示透明窗口,满足人们个性化的需求。一个优选的方案是,计算窗口的透明区域的步骤是计算窗口的剪切区域内Z序在该窗口之上的其他透明窗口与该窗口相交的区域。由此可见,通过上述方法计算每一窗口的透明区域,可方便每一窗口与覆盖于该窗口之上的其他透明窗口进行叠加显示,有利于透明窗口的实现。进一步的方案是,计算窗口的新透明区域的步骤是计算窗口的新剪切区域内Z 序在该窗口之上的其他透明窗口与该窗口相交的区域。可见,在任一窗口的显示状态发生变化后,计算生成每一窗口的新透明区域,有利于透明窗口与非透明窗口的叠加及显示,也便于用户更改每一窗口的透明属性,满足人们个性化的需求。再进一步的方案是,计算窗口的无效区域的步骤是将窗口的新剪切区域减去窗口的原剪切区域获得第一区域,将窗口的原透明区域与新透明区域相加后获得扩大透明区域,并计算扩大透明区域与新剪切区域相交的区域获得第二区域,将第一区域与第二区域相加。由此可见,通过上述方法计算每一窗口的无效区域,确保每一窗口在显示状态发生改变前后显示发生变化的区域得到重新绘制,从而确保每一窗口显示的完整性与精确性。附图说明图1是现有嵌入式图形界面系统中多层非透明窗口的显示示意图。图加是图1中窗口 11的剪切区域示意图。图2b是图1中窗口 12的剪切区域示意图。图2c是图1中窗口 13的剪切区域示意图。图3是现有嵌入式图形界面系统中多层非透明窗口显示状态改变时的显示示意图。图4是现有另一种嵌入式图形界面系统中多层透明窗口的生成示意图。 图5是本专利技术实施例的流程图。图6是应用本专利技术实施例生成的多层窗口的示意图。图7是标识图6中各个窗口透明区域的示意图。图8是应用本专利技术实施例在窗口显示状态改本文档来自技高网
...

【技术保护点】
1.嵌入式图形界面系统中多层窗口的生成方法,其特征在于:包括确定每一窗口的透明属性,设置至少一个第一主表面以及至少一个第二主表面,将每一透明窗口绘制在一个所述第一主表面上,在所述第二主表面上绘制至少一个非透明窗口;根据每一所述窗口的Z序,计算生成每一所述窗口的剪切区域及透明区域,根据每一所述窗口的透明区域依次叠加Z序在该窗口之上的其他所述窗口;在任一所述窗口的显示状态发生变化时,计算生成每一所述窗口的新剪切区域,根据每一所述窗口的新剪切区域计算生成该窗口的新透明区域,并计算生成每一所述窗口的无效区域,根据每一所述窗口的新透明区域依次叠加Z序在该窗口之上的其他所述窗口与所述无效区域相交的区域。

【技术特征摘要】

【专利技术属性】
技术研发人员:王振宇
申请(专利权)人:珠海全志科技有限公司
类型:发明
国别省市:44

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

1