一种图形设备接口资源管理方法和装置制造方法及图纸

技术编号:8489802 阅读:140 留言:0更新日期:2013-03-28 10:59
本发明专利技术公开了一种图形设备接口(GDI)资源管理方法:当访问方需要访问一GDI资源对象时,向资源池发送创建请求;所述资源池确定自身是否保存有所述GDI资源对象,如果否,则创建所述GDI资源对象及其句柄,进行保存,并返回所述GDI资源对象的句柄,如果是,则返回所述GDI资源对象的句柄;所述访问方利用所述资源池返回的句柄访问所述GDI资源对象。应用本发明专利技术所述的方法和装置,能够提高GDI资源的利用率,降低系统开销,并减少系统内存的占用等。

【技术实现步骤摘要】

本专利技术涉及资源管理技术,特别涉及一种图形设备接口(⑶I, Graphic DeviceInterface)资源管理方法和装置。
技术介绍
⑶I资源是由系统内核程序“Gdiexe”管理的资源,用于保存画刷、画笔、字体、调色板等图形对象信息。可以认为,GDI资源是由一系列的GDI资源对象组成。现有技术中,当一系统进程需要访问一 GDI资源对象时,会调用CreateFont、: :CreateSolidBrush或CreatePen等全局函数,由这些全局函数来创建GDI资源对象,并返回GDI句柄,后续可利用GDI句柄来对GDI资源对象进行访问;之后的某一时刻,如果要访问另一⑶I资源对象,重复上述过程。但是,上述方式在实际应用中会存在一定的问题,如如果前后两次要访问的GDI资源对象相同,所述相同是指种类和属性均相同,其中,种类是指画刷、画笔、字体等,属性是指画刷的颜色,画笔的风格、大小、颜色,字体的种类、大小、粗细、斜体属性以及是否有下划线等;那么按照现有方式,即使之前已经创建了相同的⑶I资源对象,下一次仍会重新创建,即相同的GDI资源对象被重复创建,从而导致GDI资源利用率降低、系统开销增大以及系统内存占用增大等问题。
技术实现思路
有鉴于此,本专利技术提供一种⑶I资源管理方法和装置,能够提高⑶I资源的利用率,降低系统开销,并减少系统内存的占用。为达到上述目的,本专利技术的技术方案是这样实现的一种⑶I资源管理方法,包括当访问方需要访问一⑶I资源对象时,向资源池发送创建请求;所述资源池确定自身是否保存有所述GDI资源对象,如果否,则创建所述GDI资源对象及其句柄,进行保存,并返回所述GDI资源对象的句柄,如果是,则返回所述GDI资源对象的句柄;所述访问方利用所述资源池返回的句柄访问所述GDI资源对象。一种⑶I资源管理装置,包括访问模块和资源池;所述访问模块,用于当需要访问一⑶I资源对象时,向所述资源池发送创建请求,并利用所述资源池返回的句柄访问所述GDI资源对象;所述资源池,用于在接收到所述创建请求后,确定自身是否保存有所述GDI资源对象,如果否,则创建所述GDI资源对象及其句柄,进行保存,并返回所述GDI资源对象的句柄,如果是,则返回所述GDI资源对象的句柄。可见,采用本专利技术所述方案,如果要访问的⑶I资源对象已经保存在了资源池中,即之前已经创建过了,则不再重新创建,从而尽可能地避免了出现相同的⑶I资源对象被重复创建的问题,进而提高了 GDI资源的利用率,降低了系统开销,并减少了系统内存的占用等;另外,本专利技术所述方案实现起来简单方便,便于普及和推广。附图说明图1为本专利技术⑶I资源管理方法实施例的流程图。图2为本专利技术⑶I资源管理方法较佳实施例的流程图。图3为对应图2所示过程的一个具体示例示意图。图4为本专利技术⑶I资源管理装置实施例的组成结构示意图。具体实施例方式针对现有技术中存在的问题,本专利技术中提出一种GDI资源管理方案,能够提高GDI资源的利用率,降低系统开销,并减少系统内存的占用等。图1为本专利技术⑶I资源管理方法实施例的流程图。如图1所示,包括以下步骤步骤11 :当访问方需要访问一⑶I资源对象时,向资源池发送创建请求。所述访问方可以是指一系统进程等。资源池是指资源的集合,可有效地保存和管理资源。步骤12 :资源池确定自身是否保存有该GDI资源对象,如果否,则创建该GDI资源对象及其句柄,进行保存,并返回该GDI资源对象的句柄,如果是,则返回该GDI资源对象的句柄。步骤11 12中,当访问方需要访问一⑶I资源对象,假设为GDI资源对象X时,可首先生成⑶I资源对象X的资源键,之后,将生成的资源键携带在创建请求中发送给资源池;资源池确定自身是否保存有接收到的资源键,如果否,则根据接收到的资源键创建该GDI资源对象及其句柄,进行保存,并对应保存该资源键,同时向访问方返回该GDI资源对象的句柄,如果是,则找到该资源键对应的该GDI资源对象的句柄,返回给访问方。其中,GDI资源对象X的资源键可以是利用GDI资源对象X的种类信息和属性信息按预定顺序拼接出的一个字符串。举例说明假设⑶I资源对象X的种类为画笔,属性包括风格、大小和颜色,在实际应用中,上述种类和属性均会以某种代码或符号进行表示,那么,将这些代码或符号按照预定顺序拼接起来即可得到一个字符串,该字符串即为GDI资源对象X的资源键,所述预定顺序可依次为种类、风格、大小和颜色。步骤13 :访问方利用资源池返回的句柄访问该⑶I资源对象。如何创建GDI资源对象以及如何利用句柄来访问GDI资源对象均为现有技术。另外,为了及时释放内存空间,可在创建并保存GDI资源对象之后,设置其引用计数为I ;后续,当针对该GDI资源对象每接收到一次创建请求时,则将其引用计数加I ;当针对该GDI资源对象每接收到一次释放请求(访问完毕)时,则将其引用计数减I ;当其引用计数为0时,将该GDI资源对象及其相关信息从资源池中移除。也就是说,针对资源池中保存的每个⑶I资源对象,分别跟踪其正被引用(访问)的次数,每个GDI资源对象均可被多个访问方共享,当访问方增加或减少时,相应地增大或减小其对应的引用计数,当没有任何访问方使用它时,则可移除。综上,对于资源池来说,针对其中保存的每个GDI资源对象,对应保存其句柄、资源键和引用计数。在实际应用中,可使用映射(MAP)表来维护上述信息。下面通过较佳实施例对图1所示方法进行进一步说明。图2为本专利技术⑶I资源管理方法较佳实施例的流程图。如图2所示,包括以下步骤步骤21 :当访问方需要访问一 GDI资源对象时,生成该GDI资源对象的资源键,携带在创建请求中发送给资源池。步骤22:资源池确定自身是否保存有接收到的资源键,如果是,则执行步骤23,否贝U,执行步骤24。步骤23 :资源池将接收到的资源键对应的引用计数加1,并向访问方返回接收到的资源键对应的GDI资源对象的句柄,然后执行步骤25。步骤24 :资源池根据接收到的资源键创建GDI资源对象及其句柄,并保存所创建的GDI资源对象及其句柄以及对应的资源键,同时设置所创建的GDI资源对象的引用计数为I ;之后,向访问方返回所创建的GDI资源对象的句柄,然后执行步骤25。步骤25 :访问方根据接收到的句柄访问⑶I资源对象。步骤26 :访问方需要释放一⑶I资源对象,向资源池发送释放请求,其中携带有该GDI资源对象的资源键。步骤27:资源池确定自身是否保存有接收到的资源键,如果是,则执行步骤28,否贝U,结束流程。如果资源池未保存接收到的资源键,后续如何处理不作限制。步骤28 :资源池将接收到的资源键对应的引用计数减I。步骤29 :资源池确定接收到的资源键对应的引用计数是否为0,如果是,则执行步骤210,否则,结束流程。步骤210 :资源池将接收到的资源键对应的GDI资源对象及其相关信息从自身移除,结束流程。图3为对应图2所示过程的一个具体示例示意图。如图3所示,假设某一时刻,资源池中共存在两个⑶I资源对象,分别为红色画刷和黑色画笔,对应的引用计数分别为4和1,之后的某一时刻,资源池接收到了一个创建红色画刷的请求,那么则将红色画刷对应的引用计数加1,变为5 ;再之后的某一时刻,资源池又接收到了一个释放黑色画笔的请求,那么则本文档来自技高网...

【技术保护点】
一种图形设备接口GDI资源管理方法,其特征在于,包括:当访问方需要访问一GDI资源对象时,向资源池发送创建请求;所述资源池确定自身是否保存有所述GDI资源对象,如果否,则创建所述GDI资源对象及其句柄,进行保存,并返回所述GDI资源对象的句柄,如果是,则返回所述GDI资源对象的句柄;所述访问方利用所述资源池返回的句柄访问所述GDI资源对象。

【技术特征摘要】

【专利技术属性】
技术研发人员:高峰潘昱存唐宗尧杨宝龙
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1