CN104765595B - 一种显示图形用户界面的方法及装置 - Google Patents
一种显示图形用户界面的方法及装置 Download PDFInfo
- Publication number
- CN104765595B CN104765595B CN201410008804.6A CN201410008804A CN104765595B CN 104765595 B CN104765595 B CN 104765595B CN 201410008804 A CN201410008804 A CN 201410008804A CN 104765595 B CN104765595 B CN 104765595B
- Authority
- CN
- China
- Prior art keywords
- picture
- window
- user interface
- hardware buffer
- graphic user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/12—Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- User Interface Of Digital Computer (AREA)
- Image Generation (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种显示图形用户界面的方法及装置。其中该图形用户界面基于多个窗口产生,该方法包括:在多个窗口中分别绘制用于形成图形用户界面的图片,将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器,最后对多个硬件缓冲器中的图片进行叠加,从而形成图形用户界面并显示在屏幕上。通过上述方式,本发明能够提高图形用户界面显示时的帧率,使人眼在屏幕上能看到连贯、流畅的画面。
Description
技术领域
本发明涉及显示技术领域,特别是涉及一种显示图形用户界面的方法及装置。
背景技术
图形用户界面(Graphical User Interface,GUI)是指采用图形方式显示的用户界面。其中,图形用户界面的产生给用户带来更好的视觉享受。
如何将图形用户界面显示在屏幕上,现有技术的做法是:首先创建多个窗口,然后由图形处理器在多个窗口中绘制图片,接着使用图形处理器的合成功能将绘制有图片的多个窗口合成至硬件缓冲器,最后通过屏幕显示(On Screen Display,OSD)将图形用户界面显示在屏幕上。
在现有技术中,图形处理器既要绘制图片又要合成图片,同时,使用一个硬件缓冲器实现绘制有图片的多个窗口的合成,图形处理器对图片的处理效率低,从而导致显示图形用户界面时的帧率急速下降,使人眼无法在显示屏上看到连贯、流畅的画面。
发明内容
有鉴于此,本发明提供以下技术方案。
根据本发明一实施例,本发明提供一种显示图形用户界面的方法,其中该图形用户界面基于多个窗口而产生,该方法包括:
在多个窗口中分别绘制用于形成图形用户界面的图片;
将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器;
对多个硬件缓冲器中的图片进行叠加,以形成图形用户界面并显示在屏幕上。
根据本发明另一实施例,本发明提供一种显示图形用户界面的装置,该装置包括:
多个硬件缓冲器;
第一图形处理器,耦接于多个硬件缓冲器,用于在多个窗口中分别绘制用于形成图形用户界面的图片,
以及将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器;
硬件叠加器,耦接于多个硬件缓冲器,对多个硬件缓冲器内的图片进行叠加,以形成图形用户界面并显示在屏幕上。
根据本发明再一实施例,本发明提供一种显示图形用户界面的装置,该装置包括:
多个硬件缓冲器;
第一图形处理器,耦接于多个硬件缓冲器,用于在多个窗口中分别绘制用于形成图形用户界面的图片,
第二图形处理器,耦接与多个硬件缓冲器,用于将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器;
硬件叠加器,耦接于多个硬件缓冲器,对多个硬件缓冲器内的图片进行叠加,以形成图形用户界面并显示在屏幕上;
其中第一图形处理器与第二图形处理器不同。
本发明的有益效果是:区别于现有技术的情况,本发明的显示图形用户界面的方法及装置由于使用了多个硬件缓冲器分别存储对应的多个窗口中的图片,避免了在产生图形用户界面的过程中反复使用图形处理器从单一硬件缓冲器中读取图片、合成图片,从而提高了显示图形用户界面的装置的工作效率,从而提高了显示图形用户界面时的帧率,使人眼在屏幕上能看到连贯、流畅的画面。
附图说明
图1是本发明第一实施例的显示图形用户界面的装置的结构示意图;
图2是本发明第二实施例的显示图形用户界面的装置的结构示意图;
图3是本发明第三实施例的显示图形用户界面的装置的结构示意图;
图4是本发明第一实施例的显示图形用户界面的方法的流程图;
图5是本发明第二实施例的显示图形用户界面的方法的流程图;
图6是本发明第三实施例的显示图形用户界面的方法的流程图;
图7是本发明第四实施例的显示图形用户界面的方法的流程图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「耦接」一词在此包含任何直接及/或间接的电气耦接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气耦接于第二装置,或透过其它装置或耦接手段间接地电气耦接至第二装置。下面结合附图和实施例对本发明进行详细说明。
图1是本发明第一实施例的显示图形用户界面的装置的结构示意图。如图1所示,显示图形用户界面的装置100包括第一图形处理器11、多个硬件缓冲器12、硬件叠加器13和窗口管理模块14。另外,图1中使用虚线标识出可携带用于形成图形用户界面的图片的多个窗口10。
第一图形处理器11和硬件叠加器13分别耦接于多个硬件缓冲器12,其中,第一图形处理器为三维图形处理器(以下简称3D GPU)。
第一图形处理器11在多个窗口10中分别绘制用于形成图形用户界面的图片。多个窗口10是由运行于安卓(Andorid)系统的应用程序创建,每个窗口为虚拟窗口,其对应由虚拟地址访问的一段虚拟内存空间。具体来说,多个窗口10是由应用程序调用窗口管理模块的相对应的接口而生成,图形用户界面中图片的层数与窗口的数量相对应。第一图形处理器11在多个窗口10中分别绘制用于形成图形用户界面的图片具体为:由第一图形处理器将图形用户界面中每层图片的各个像素点的值写入对应窗口的虚拟内存空间。
接着根据窗口管理模块14建立的绘制有图片的多个窗口10与多个硬件缓冲器12的映射关系,将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器12,最后由硬件叠加器13对多个硬件缓冲器12内的图片进行叠加,从而形成图形用户界面并显示在屏幕上。其中,窗口管理模块14可以根据图片的属性或者图片的大小建立绘制有图片的多个窗口10与多个硬件缓冲器12的映射关系。其中硬件缓冲器为物理地址连续的物理存储器,其可通过地址和数据总线对其存储的内容直接进行读写。硬件缓冲器与绘制有图片的窗口的对应关系可以根据图片的属性或者图片的大小进行建立。
另外,硬件缓冲器与绘制有图片的窗口的对应关系具体可以为一个窗口与一个硬件缓冲器对应,也可以为多个窗口与一个硬件缓冲器对应。如果一个窗口与一个硬件缓冲器相对应,则将绘制有图片的窗口合成至对应的硬件缓冲器的步骤具体为:由第一图形处理器将该窗口对应的虚拟内存空间中保存的图片的各个像素点的值拷贝至对应的硬件缓冲器的物理内存空间。如果多个窗口与一个硬件缓冲器相对应,多个窗口分别命名为第一窗口、第二窗口……、第n窗口,则将绘制有图片的窗口合成至对应的硬件缓冲器的步骤具体为:由第一图形处理器将第一窗口对应的虚拟内存空间中保存的图片的各个像素点的值拷贝至对应的硬件缓冲器的物理内存空间,将第二窗口对应的虚拟内存空间中保存的图片的各个像素点的值与已保存在硬件缓冲器中的第一窗口的各个像素点的值进行合成,并将合成结果继续保存至硬件缓冲器,将第三窗口对应的虚拟内存空间中保存的图片的各个像素点的值与已保存在硬件缓冲器中第一窗口和第二窗口合成后的各个像素点的值进行合成并将合成结果继续保存至硬件缓冲器……依此类推,直至完成对第n窗口的合成操作。以多个窗口10包括第一窗口和第二窗口,图形用户界面包括静态背景图片和动态更新图片,多个硬件缓冲器12包括第一硬件缓冲器和第二硬件缓冲器为例,图形用户界面显示的具体过程为:
第一图形处理器11在第一窗口中绘制静态背景图片,在第二窗口绘制动态更新图片。
窗口管理模块14根据图片的属性建立绘制有图片的多个窗口与多个硬件缓冲器的映射关系。具体来说,窗口管理模块14建立绘制有静态背景图片的第一窗口和第一硬件缓冲器的映射关系,建立绘制有动态更新图片的第二窗口和第二硬件缓冲器的映射关系。其中,第一硬件缓冲器为普通的物理存储器,第二硬件缓冲器为基于Android系统的帧缓冲器(Frame Buffer)。
接着,窗口管理模块14判断图形用户界面是初次显示还是需要更新。当窗口管理模块14判断图形用户界面是初次显示时,第一图形处理器11将绘制有静态背景图片的第一窗口合成至第一硬件缓冲器,将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器。当窗口管理模块判断图形用户界面为需要更新时,第一图形处理器11将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器,第一硬件缓冲器中的内容保持不变。
最后,硬件叠加器13对第一硬件缓冲器和第二硬件缓冲器内的图片进行叠加,从而形成图形用户界面并显示在屏幕上。
以多个窗口包括第一窗口、第二窗口和第三窗口,图片包括第一层图片、第二层图片和第三层图片,其中第一层图片和第二层图片的尺寸相同,多个硬件缓冲器包括第一硬件缓冲器和第二硬件缓冲器为例,图形用户界面显示的具体过程为:
第一图形处理器11在第一窗口中绘制第一层图片,在第二窗口绘制第二层图片,在第三窗口绘制第三层图片。
窗口管理模块14根据图片的尺寸建立绘制有图片的多个窗口与多个硬件缓冲器的映射关系。具体来说,由于第一层图片和第二层图片的尺寸相同,窗口管理模块14建立绘制有第一层图片的第一窗口与第一硬件缓冲器的映射关系,建立绘制有第二层图片的第二窗口与第一硬件缓冲器的映射关系。也就是说,绘制有相同尺寸的图片的多个窗口与同一硬件缓冲器相对应。此外,窗口管理模块14建立绘制有第三层图片的第三窗口和第二硬件缓冲器的映射关系。
第一图形处理器11将绘制有第一层图片的第一窗口和绘制有第二层图片的第二窗口合成至第一硬件缓冲器,将绘制有第三层图片的第三窗口合成至第二硬件缓冲器。
最后,硬件叠加器13对第一硬件缓冲器和第二硬件缓冲器内的图片进行叠加,从而形成图形用户界面并显示在屏幕上。在这个例子中,由于具有相同尺寸的图片的多个窗口与同一个硬件缓冲器相对应,避免了将具有不同尺寸的图片的多个窗口合成到同一个硬件缓冲器时遇到的窗口大小不一致,需要反复调整的问题,从而提高了图形处理器的处理效率。
图2是本发明第二实施例的显示图形用户界面的装置的结构示意图。图2中具有与图1中相似名称的模块的结构以及功能相似,在此不再赘述。图2所示显示图形用户界面的装置200与图1中的装置100主要区别在于:
装置200进一步包括判断模块15和第二图形处理器16。
判断模块15耦接于第一图形处理器11,第二图形处理器16耦接于多个硬件缓冲器12、窗口管理模块14以及判断模块15,其中,第二图形处理器为二维图形处理器(以下简称2D GFX)。
当第一图形处理器11在多个窗口10中分别绘制用于形成图形用户界面的图片后,判断模块15判断第一图形处理器11的使用率是否超过预定阈值。当第一图形处理器11的使用率超过预定阈值,第二图形处理器16根据窗口管理模块14建立的绘制有图片的多个窗口10与多个硬件缓冲器12的映射关系将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器12,当第一图形处理器11的使用率未超过预定阈值时,第一图形处理器11根据窗口管理模块14建立的绘制有图片的多个窗口10与多个硬件缓冲器12的映射关系将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器12。
在另一实施例中,上述判断模块15所执行的判断操作也可由窗口管理模块14来完成,即可省略判断模块15。
图3是本发明第三实施例的显示图形用户界面的装置的结构示意图。如图3所示,显示图形用户界面的装置300包括第一图形处理器21、多个硬件缓冲器22、硬件叠加器23、窗口管理模块24和第二图形处理器25。另外,图3中使用虚线标识出可携带用于形成图形用户界面的图片的多个窗口20。其中第一图形处理器是3D GPU,第二图形处理器是2D GFX。此外,第二图形处理器也可使用其他具有合成图片功能的图形处理模块来实现,在此仅作为举例说明,而不作为本申请的限制。图3中具有与图1中相似名称的模块的结构以及功能相似,在此不再赘述。
第一图形处理器21在多个窗口20中分别绘制用于形成图形用户界面的图片。窗口管理模块24建立绘制有图片的多个窗口20与多个硬件缓冲器22的映射关系。第二图形处理器25根据映射关系将绘制有图片的多个窗口20分别合成至对应的多个硬件缓冲器22。硬件叠加器23对多个硬件缓冲器22内的图片进行叠加,从而形成图形用户界面并显示在屏幕上。
以多个窗口20包括第一窗口和第二窗口,图形用户界面包括静态背景图片和动态更新图片,多个硬件缓冲器22包括第一硬件缓冲器和第二硬件缓冲器为例,图形用户界面显示的具体过程为:
第一图形处理器21在第一窗口中绘制所述静态背景图片,在第二窗口绘制所述动态更新图片。
窗口管理模块24建立绘制有静态背景图片的第一窗口和第一硬件缓冲器的映射关系,建立绘制有动态更新图片的第二窗口和第二硬件缓冲器的映射关系。其中,第一硬件缓冲器为普通的物理存储器,第二硬件缓冲器为基于Android系统的帧缓冲器(FrameBuffer)。
第二图形处理器25根据窗口管理模块24建立的映射关系将绘制有静态背景图片的第一窗口合成至第一硬件缓冲器,将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器。
硬件叠加器23对第一硬件缓冲器和第二硬件缓冲器内的图片进行叠加,从而形成图形用户界面并显示在屏幕上。
在这个例子中,由于使用了第二图形处理器来替代第一图形处理器以完成将绘制有图片的窗口合成至硬件缓冲器的工作,从而减轻了第一图形处理器的工作负荷,提高了第一图形处理器的工作效率。
更进一步,窗口管理模块24可判断图形用户界面是初次显示还是需要更新。当窗口管理模块24判断图形用户界面是初次显示时,第二图形处理器25将绘制有静态背景图片的第一窗口合成至第一硬件缓冲器,将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器。当窗口管理模块24判断图形用户界面为需要更新时,第二图形处理器25将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器,第一硬件缓冲器中的内容保持不变。
本发明第三实施例的显示图形用户界面的系统,通过使用第二图形处理器来将绘制有图片的窗口合成至硬件缓冲器,提高了图片的处理效率。此外,窗口管理模块进一步判断图形用户界面是初次显示还是再次更新,从而使得显示图形用户界面的系统不需要多次合成绘制有静态背景图片的第一窗口至硬件缓冲器,将使得显示图形用户界面的系统整体性能提升接近一倍以上,进而提高了图形用户界面显示时的帧率,使人眼在屏幕上能看到连贯、流畅的画面。
图4是本发明第一实施例的显示图形用户界面的方法的流程图。举例来说,图4所示的方法可由图1、图3中的显示图形用户界面的装置100、300执行。需注意的是,若有实质上相同的结果,本发明的方法并不以图4所示的流程顺序为限。如图4所示,该方法包括如下步骤:
步骤S101:在多个窗口中分别绘制用于形成图形用户界面的图片;
步骤S102:将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器;
步骤S103:对多个硬件缓冲器中的图片进行叠加,以形成图形用户界面并显示在屏幕上。
其中,上述多个窗口为虚拟窗口,由运行于安卓(Andorid)系统的应用程序创建多个窗口,其对应由虚拟地址访问的一段虚拟内存空间。
图形用户界面一般由多层图片叠加形成,其中,图形用户界面中图片的层数与窗口的数量相对应。在多个窗口中分别绘制用于形成图形用户界面的图片的步骤具体为:由图形处理器将图形用户界面中每层图片的各个像素点的值写入对应窗口的虚拟内存空间。其中,图形处理器为3D GPU。
在步骤S102中,硬件缓冲器为物理地址连续的物理存储器,其可通过地址和数据总线对其存储的内容直接进行读写。硬件缓冲器与绘制有图片的窗口的对应关系可以根据图片的属性或者图片的大小进行建立。具体来说,例如,当图片的属性为静态背景图片和动态更新图片时,将静态背景图片和动态更新图片分别对应不同的硬件缓冲器。当图片具有多种尺寸时,将相同尺寸的图片对应同一硬件缓冲器。另外,硬件缓冲器与绘制有图片的窗口的对应关系具体可以为一个窗口与一个硬件缓冲器对应,也可以为多个窗口与一个硬件缓冲器对应。如果一个窗口与一个硬件缓冲器相对应,则将绘制有图片的窗口合成至对应的硬件缓冲器的步骤具体为:由图形处理器将该窗口对应的虚拟内存空间中保存的图片的各个像素点的值拷贝至对应的硬件缓冲器的物理内存空间。如果多个窗口与一个硬件缓冲器相对应,多个窗口分别命名为第一窗口、第二窗口……、第n窗口,则将绘制有图片的窗口合成至对应的硬件缓冲器的步骤具体为:由图形处理器将第一窗口对应的虚拟内存空间中保存的图片的各个像素点的值拷贝至对应的硬件缓冲器的物理内存空间,将第二窗口对应的虚拟内存空间中保存的图片的各个像素点的值与已保存在硬件缓冲器中的第一窗口的各个像素点的值进行合成,并将合成结果继续保存至硬件缓冲器,将第三窗口对应的虚拟内存空间中保存的图片的各个像素点的值与已保存在硬件缓冲器中第一窗口和第二窗口合成后的各个像素点的值进行合成并将合成结果继续保存至硬件缓冲器……依此类推,直至完成对第n窗口的合成操作。其中,图形处理器为3D GPU或2D GFX。
在步骤S103中,由硬件叠加器对存储在多个硬件缓冲器中的经过合成操作后的图片进行叠加,从而形成图形用户界面并显示在屏幕上。
本发明第一实施例的显示图形用户界面的方法通过在多个窗口中分别绘制用于形成图形用户界面的图片,将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器,最后对多个硬件缓冲器中的图片进行叠加,避免了使用图形处理器反复从硬件缓冲器中读取图片、合成图片,从而提供了图形处理器的工作效率,从而提高了图形用户界面显示时的帧率,使人眼在屏幕上能看到连贯、流畅的画面。
图5是本发明第二实施例的显示图形用户界面的方法的流程图。本发明基于包括静态背景图片和动态更新图片的图形用户界面。需注意的是,若有实质上相同的结果,本发明的方法并不以图5所示的流程顺序为限。举例来说,图5所示的方法可由图1、图3中的显示图形用户界面的装置100、300执行。如图5所示,该方法包括如下步骤:
步骤S201:在第一窗口中绘制静态背景图片,在第二窗口绘制动态更新图片;其中,上述第一窗口和第二窗口由运行于Andorid系统的应用程序创建,第一窗口和第二窗口分别与图形用户界面中静态背景图片和动态更新图片相对应。
在第一窗口中绘制静态背景图片,也即由图形处理器将静态背景图片中各个像素点的值写入第一窗口对应的虚拟内存空间。在第二窗口绘制动态更新图片,也即由图形处理器将动态更新图片中各个像素点的值写入第二窗口对应的虚拟内存空间。其中,图形处理器为3D GPU。
另外,由于图形用户界面中的动态更新图片需要实时更新,因此每隔预定时间由图形处理器在第二窗口中绘制待更新的动态更新图片,其中,预定时间可以按照实际情况进行设置。
步骤S202:建立绘制有静态背景图的第一窗口和第一硬件缓冲器的映射关系,建立绘制有动态更新图片的第二窗口和第二硬件缓冲器的映射关系;在步骤S202中,第一硬件缓冲器为普通的物理存储器,第二硬件缓冲器为基于Android系统的帧缓冲器(FrameBuffer)。其中,映射关系具体为:绘制有静态背景图片的第一窗口与第一硬件缓冲器对应,绘制有动态更新图片的第二窗口与第二硬件缓冲器对应。
步骤S203:判断图形用户界面是初次显示还是需要再次更新:若为初次显示,执行步骤S204,若为需要再次更新,执行步骤S205;
步骤S204:将绘制有静态背景图片的第一窗口合成至第一硬件缓冲器,将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器,继续执行步骤S206;在步骤S204中,当步骤S203判断出图形用户界面是初次显示时,由图形处理器将第一窗口对应的虚拟内存空间中保存的静态背景图片的各个像素点的值拷贝至第一硬件缓冲器的物理内存空间,第二窗口的虚拟内存空间中保存的动态背景图片的各个像素点的值拷贝至第二硬件缓冲器的物理内存空间。其中,图形处理器为3D GPU或2DGFX。
步骤S205:将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器,第一硬件缓冲器中的内容保持不变,继续执行步骤S206;在步骤S205中,当步骤S204判断出图形用户界面需要再次更新时,由图形处理器将第二窗口的虚拟内存空间中保存的待更新的动态背景图片的各个像素点的值拷贝至第二硬件缓冲器的物理内存空间,第一硬件缓冲器不需要进行任何操作。其中,图形处理器为3D GPU或2D GFX。
步骤S206:对第一硬件缓冲器和第二硬件缓冲器中的图片进行叠加,以形成图形用户界面并显示在屏幕上。在步骤S206中,由硬件叠加器对存储在第一硬件缓冲器中的静态背景图片和存储在第二硬件缓冲器中的动态更新图片进行叠加,从而形成图形用户界面并显示在屏幕上。
其中,在本实施例中,每隔预定时间由图形处理器在第二窗口中绘制待更新的动态更新图片的同时,循环执行步骤S203至步骤S206,即可实现图形用户界面的动态显示。
本领域的技术人员可以理解,虽然本实施方式以包括静态背景图片和动态更新图片的图形用户界面和两个硬件缓冲器为例进行说明,但这仅用于说明的目的。无论静态背景图片和动态更新图片的数量各为多少层、硬件缓冲器的数量为多少个,只要将静态背景图片和动态更新图片分别合成至不同的硬件缓冲器即符合本发明的发明精神。
本发明第二实施例的显示图形用户界面的方法通过判断图形用户界面需要再次更新时,仅仅将绘制有动态更新图片的第二窗口合成至第二硬件缓冲器,而绘制有静态背景图片的第一窗口不需要进行合成操作,提高了图片的处理效率,使得显示图形用户界面的系统整体性能提升接近一倍,进而提高了图形用户界面显示时的帧率,使人眼在屏幕上能看到连贯、流畅的画面。
图6是本发明第三实施例的显示图形用户界面的方法的流程图。本发明的图形用户界面包括第一、第二和第三层图片。需注意的是,若有实质上相同的结果,本发明的方法并不以图6所示的流程顺序为限。举例来说,图6所示的方法可由图1、图3中的显示图形用户界面的装置100、300执行。如图6所示,该方法包括如下步骤:
步骤S301:在第一窗口中绘制第一层图片,在第二窗口绘制第二层图片,在第三窗口绘制第三层图片;其中,上述第一窗口、第二窗口和第三窗口由运行于Andorid系统的应用程序创建,第一窗口、第二窗口和第三窗口分别与图形用户界面中的第一、第二和第三层图片相对应,其中,第一层图片和第二层图片的尺寸相同,第三层图片的尺寸可以与第一层图片/第二层图片的尺寸相同,也可以不相同。
由图形处理器将第一层图片的各个像素点的值写入第一窗口对应的虚拟内存空间,将第二层图片的各个像素点的值写入第二窗口对应的虚拟内存空间,将第三层图片的各个像素点的值写入第三窗口对应的虚拟内存空间。其中,图形处理器为3D GPU。
步骤S302:建立绘制有第一层图片的第一窗口与第一硬件缓冲器的映射关系,建立绘制有第二层图片的第二窗口与第一硬件缓冲器的映射关系,建立绘制有第三层图片的第三窗口和第二硬件缓冲器的映射关系;在步骤S302中,第一硬件缓冲器为基于Android系统的帧缓冲器(Frame Buffer),第二硬件缓冲器为普通的物理存储器。在另一举例说明中,第二硬件缓冲器为基于Android系统的帧缓冲器(Frame Buffer),第一硬件缓冲器为普通的物理存储器。其中,映射关系具体为:由于第一层图片与第二层图片的大小相同,绘制有第一层图片的第一窗口及绘制有第二层图片的第二窗口与第一硬件缓冲器对应。此外,绘制有第三层图片的第三窗口与第二硬件缓冲器相对应。
步骤S303:将绘制有第一层图片的第一窗口和绘制有第二层图片的第二窗口合成至第一硬件缓冲器,将绘制有第三层图片的第三窗口合成至第二硬件缓冲器;在步骤S303中,由图形处理器将第一窗口对应的虚拟内存空间中保存的第一层图片的各个像素点的值拷贝至第一硬件缓冲器的物理内存空间,将第二窗口对应的虚拟内存空间中保存的第二层图片的各个像素点的值与已保存在第一硬件缓冲器中的第一窗口的各个像素点的值进行合成后保存至第一硬件缓冲器中。由于第一层图片和第二层图片具有相同的尺寸,与不同尺寸的两层图片在硬件缓冲器中进行合成相比,不需要进行图片的放大或缩小操作,由此提高了图片处理的效率。由图形处理器将第三窗口对应的虚拟内存空间中保存的第三层图片的各个像素点的值拷贝至第二硬件缓冲器的物理内存空间。其中,图形处理器为3D GPU或2D GFX。
步骤S304:对第一硬件缓冲器和第二硬件缓冲器中的图片进行叠加,以形成图形用户界面并显示在屏幕上。在步骤S304中,由硬件叠加器对存储在第一硬件缓冲器中的第一窗口和第二窗口合成后的各个像素点的值和存储在第二硬件缓冲器中的第三窗口的各个像素点的值进行合成,从而形成图形用户界面并显示在屏幕上。
本领域的技术人员可以理解,虽然本实施方式以包括三层图片的图形用户界面和两个硬件缓冲器为例进行说明,但这仅用于说明的目的。无论图形用户界面有多少层图片、硬件缓冲器的数量为多少个,只要将相同尺寸的图片合成至同一硬件缓冲器即符合本发明的发明精神。
本发明第三实施例的显示图形用户界面的方法通过将尺寸相同的绘制有图片的第一窗口和第二窗口合成至第一硬件缓冲器,将绘制有图片的第三窗口合成至第二硬件缓冲器,提高了图片的处理效率,从而提高了显示图形用户界面时的帧率,使人眼在屏幕上能看到连贯、流畅的画面。
图7是本发明第四实施例的显示图形用户界面的方法的流程图。需注意的是,若有实质上相同的结果,本发明的方法并不以图7所示的流程顺序为限。举例来说,图7所示的方法可由图2中的显示图形用户界面的装置200执行。如图7所示,该方法包括如下步骤:
步骤S401:由第一图形处理器在多个窗口中分别绘制用于形成图形用户界面的图片;其中,多个窗口为虚拟窗口,由运行于安卓(Andorid)系统的应用程序创建多个窗口,其对应由虚拟地址访问的一段虚拟内存空间。第一图形处理器为3D GPU。
步骤S402:判断第一图形处理器的使用率是否超过预定阈值;若超过预定阈值,执行步骤S403,若未超过预定阈值,执行步骤S404;
步骤S403:由第二图形处理器将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器,继续执行步骤S405;在步骤S403中,当步骤S402中判断第一图形处理器的使用率超过预定阈值(举例来说,预定阈值设为95%),此时,如果仍使用第一图形处理器执行合成的功能,则会出现图片的处理效率降低,进而导致显示图形用户界面时的帧率急速下降的问题。为避免上述问题的发生,当步骤S402中判断第一图形处理器的使用率超过预定阈值时,转由第二图形处理器执行合成的功能,从而降低第一图形处理器的处理负荷,提高图片处理的效率。其中,第二图形处理器为2D GFX。
步骤S404:由第一图形处理器将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器,继续执行步骤S405;在步骤S404中,当步骤S402中判断第一图形处理器的使用率未超过预定阈值时,继续由第一图形处理器执行合成的操作。
步骤S405:对多个硬件缓冲器中的图片进行叠加,以形成所述图形用户界面并显示在屏幕上。在步骤S405中,由硬件叠加器对存储在多个硬件缓冲器中的经过合成后的图片进行叠加,从而形成图形用户界面并显示在屏幕上。
本发明第四实施例的显示图形用户界面的方法当第一图形处理器的使用率是否超过预定阈值,由第二图形处理器将绘制有图片的多个窗口分别合成至对应的多个硬件缓冲器,减少了第一图形处理器的处理负荷,提高了图片的处理效率,从而提高了显示图形用户界面时的帧率,使人眼在屏幕上能看到连贯、流畅的画面。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (18)
1.一种显示图形用户界面的方法,其中该图形用户界面基于多个窗口而产生,其特征在于,所述方法包括:
在所述多个窗口中分别绘制用于形成所述图形用户界面的图片;
将绘制有所述图片的所述多个窗口分别合成至对应的所述多个硬件缓冲器;
对所述多个硬件缓冲器中的图片进行叠加,以形成所述图形用户界面并显示在屏幕上;
其中所述多个窗口包括第一窗口和第二窗口,所述图片包括静态背景图片和动态更新图片,所述多个硬件缓冲器包括第一硬件缓冲器和第二硬件缓冲器;
所述在所述多个窗口中分别绘制用于形成所述图形用户界面的图片的步骤具体为:在所述第一窗口中绘制所述静态背景图片,在所述第二窗口绘制所述动态更新图片;
判断所述图形用户界面是初次显示还是需要再次更新;
若所述图形用户界面为初次显示,所述将绘制有所述图片的所述多个窗口分别合成至所述多个硬件缓冲器的步骤具体为:将绘制有所述静态背景图片的所述第一窗口合成至所述第一硬件缓冲器,将绘制有所述动态更新图片的所述第二窗口合成至所述第二硬件缓冲器;
若所述图形用户界面为需要再次更新,所述将绘制有所述图片的所述多个窗口分别合成至所述多个硬件缓冲器的步骤具体为:将绘制有所述动态更新图片的所述第二窗口合成至所述第二硬件缓冲器,所述第一硬件缓冲器中的内容保持不变。
2.根据权利要求1所述的显示图形用户界面的方法,其特征在于,所述将绘制有所述图片的所述多个窗口分别合成至对应的所述多个硬件缓冲器的步骤包括:
建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系;
根据所述映射关系,将绘制有所述图片的所述多个窗口分别合成至所述多个硬件缓冲器。
3.根据权利要求2所述的显示图形用户界面的方法,其特征在于,所述建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系的步骤包括:
根据所述图片的属性建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系。
4.根据权利要求3所述的显示图形用户界面的方法,其特征在于,
所述根据所述图片的属性建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系的步骤包含:
建立绘制有所述静态背景图片的所述第一窗口和所述第一硬件缓冲器的映射关系,建立绘制有所述动态更新图片的所述第二窗口和所述第二硬件缓冲器的映射关系。
5.根据权利要求2所述的显示图形用户界面的方法,其特征在于,所述建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系的步骤包括:
根据所述图片的尺寸建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系。
6.根据权利要求5所述的显示图形用户界面的方法,其特征在于,所述多个窗口包括第一窗口、第二窗口和第三窗口,所述图片包括第一层图片、第二层图片和第三层图片,其中所述第一层图片和所述第二层图片尺寸相同,所述多个硬件缓冲器包括第一硬件缓冲器和第二硬件缓冲器;
所述在所述多个窗口中分别绘制用于形成所述图形用户界面的图片的步骤具体为:在所述第一窗口中绘制所述第一层图片,在所述第二窗口绘制所述第二层图片,在所述第三窗口绘制所述第三层图片;
所述根据所述图片的尺寸建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系的步骤具体为:建立绘制有所述第一层图片的所述第一窗口与所述第一硬件缓冲器的映射关系,建立绘制有所述第二层图片的所述第二窗口与所述第一硬件缓冲器的映射关系,建立绘制有所述第三层图片的所述第三窗口和所述第二硬件缓冲器的映射关系。
7.根据权利要求6所述的显示图形用户界面的方法,其特征在于,所述将绘制有所述图片的所述多个窗口分别合成至对应的所述多个硬件缓冲器的步骤具体为:
将绘制有所述第一层图片的所述第一窗口和绘制有所述第二层图片的所述第二窗口合成至所述第一硬件缓冲器,将绘制有所述第三层图片的所述第三窗口合成至所述第二硬件缓冲器。
8.根据权利要求1所述的显示图形用户界面的方法,其特征在于,所述在所述多个窗口中分别绘制用于形成所述图形用户界面的图片,以及将绘制有所述图片的所述多个窗口合成至对应的所述多个硬件缓冲器的步骤包括:
由第一图形处理器在所述多个窗口中分别绘制用于形成所述图形用户界面的图片;
判断所述第一图形处理器的使用率是否超过预定阈值;
若超过预定阈值,由第二图形处理器将绘制有所述图片的所述多个窗口合成至所述多个硬件缓冲器。
9.根据权利要求8所述的显示图形用户界面的方法,其特征在于,所述第一图形处理器为三维图形处理器,所述第二图形处理器为二维图形处理器。
10.一种显示图形用户界面的装置,其特征在于,所述装置包括:
多个硬件缓冲器;
第一图形处理器,耦接于所述多个硬件缓冲器,用于在多个窗口中分别绘制用于形成所述图形用户界面的图片,
以及将绘制有所述图片的所述多个窗口分别合成至对应的所述多个硬件缓冲器;
硬件叠加器,耦接于所述多个硬件缓冲器,对所述多个硬件缓冲器内的图片进行叠加,以形成所述图形用户界面并显示在屏幕上;
其中所述多个窗口包括第一窗口和第二窗口,所述图片包括静态背景图片和动态更新图片,所述多个硬件缓冲器包括第一硬件缓冲器和第二硬件缓冲器;所述第一图形处理器在所述第一窗口中绘制所述静态背景图片,在所述第二窗口绘制所述动态更新图片;
所述窗口管理模块用于判断所述图形用户界面是初次显示还是需要更新;若所述窗口管理模块判断所述图形用户界面为初次显示时,所述第一图形处理器将绘制有所述静态背景图片的第一窗口合成至所述第一硬件缓冲器,将绘制有所述动态更新图片的第二窗口合成至所述第二硬件缓冲器;若所述窗口管理模块判断所述图形用户界面为需要更新时,所述第一图形处理器将绘制有所述动态更新图片的第二窗口合成至所述第二硬件缓冲器,所述第一硬件缓冲器中的内容保持不变。
11.根据权利要求10所述的显示图形用户界面的装置,其特征在于,所述装置进一步包括:
窗口管理模块,用于建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系;
其中,所述第一图形处理器根据所述映射关系将绘制有所述图片的所述多个窗口分别合成至所述多个硬件缓冲器。
12.根据权利要求11所述的显示图形用户界面的装置,其特征在于,所述窗口管理模块根据所述图片的属性建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系。
13.根据权利要求12所述的显示图形用户界面的装置,其特征在于,所述窗口管理模块建立绘制有所述静态背景图片的所述第一窗口和所述第一硬件缓冲器的映射关系,建立绘制有所述动态更新图片的所述第二窗口和所述第二硬件缓冲器的映射关系。
14.根据权利要求11所述的显示图形用户界面的装置,其特征在于,所述窗口管理模块根据所述图片的尺寸建立绘制有所述图片的所述多个窗口与所述多个硬件缓冲器的映射关系。
15.根据权利要求14所述的显示图形用户界面的装置,其特征在于,所述多个窗口包括第一窗口、第二窗口和第三窗口,所述图片包括第一层图片、第二层图片和第三层图片,其中所述第一层图片和所述第二层图片尺寸相同,所述多个硬件缓冲器包括第一硬件缓冲器和第二硬件缓冲器;所述第一图形处理器在所述第一窗口中绘制所述第一层图片,在所述第二窗口绘制所述第二层图片,在所述第三窗口绘制所述第三层图片;所述窗口管理模块建立绘制有所述第一层图片的所述第一窗口与所述第一硬件缓冲器的映射关系,建立绘制有所述第二层图片的所述第二窗口与所述第一硬件缓冲器的映射关系,建立绘制有所述第三层图片的所述第三窗口和所述第二硬件缓冲器的映射关系。
16.根据权利要求15所述的显示图形用户界面的装置,其特征在于,所述第一图形处理器将绘制有所述第一层图片的所述第一窗口和绘制有所述第二层图片的所述第二窗口合成至所述第一硬件缓冲器,将绘制有所述第三层图片的所述第三窗口合成至所述第二硬件缓冲器。
17.根据权利要求11所述的显示图形用户界面的装置,其特征在于,进一步包含判断模块,用于判断所述第一图形处理器的使用率是否超过预定阈值;若所述判断模块判断所述第一图形处理器的使用率超过预定阈值,第二图形处理器将绘制有所述图片的所述多个窗口合成至所述多个硬件缓冲器。
18.根据权利要求10-17任一项所述的显示图形用户界面的装置,其特征在于,所述第一图形处理器为三维图形处理器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410008804.6A CN104765595B (zh) | 2014-01-08 | 2014-01-08 | 一种显示图形用户界面的方法及装置 |
US14/592,160 US9899004B2 (en) | 2014-01-08 | 2015-01-08 | Method and device for generating graphical user interface (GUI) for displaying |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410008804.6A CN104765595B (zh) | 2014-01-08 | 2014-01-08 | 一种显示图形用户界面的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104765595A CN104765595A (zh) | 2015-07-08 |
CN104765595B true CN104765595B (zh) | 2018-05-22 |
Family
ID=53495161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410008804.6A Active CN104765595B (zh) | 2014-01-08 | 2014-01-08 | 一种显示图形用户界面的方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9899004B2 (zh) |
CN (1) | CN104765595B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708495B (zh) * | 2015-11-18 | 2021-05-07 | 优信拍(北京)信息科技有限公司 | 一种基于移动终端的页面显示方法及装置 |
CN105955687B (zh) * | 2016-04-29 | 2019-12-17 | 华为技术有限公司 | 图像处理的方法、装置和系统 |
CN107067453A (zh) * | 2017-03-10 | 2017-08-18 | 珠海研果科技有限公司 | 一种基于Linux系统的MiniGUI绘制与GPU绘制同时显示的方法 |
CN108965975B (zh) * | 2017-05-24 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 一种绘制方法及装置 |
CN108205459A (zh) * | 2018-02-07 | 2018-06-26 | 苏州本乔信息技术有限公司 | 一种可视化数据资源的合并显示方法及系统 |
CN110196716B (zh) * | 2018-02-26 | 2023-07-25 | 龙芯中科技术股份有限公司 | 图形显示方法、装置、电子设备及存储介质 |
CN109885271A (zh) * | 2019-03-18 | 2019-06-14 | 青岛海信电器股份有限公司 | 数据显示处理方法、装置及电子设备 |
CN113946304A (zh) * | 2021-09-29 | 2022-01-18 | 湖北亿咖通科技有限公司 | 可见窗口的合成方法、合成装置和多屏系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071380A (zh) * | 2007-06-27 | 2007-11-14 | 中兴通讯股份有限公司 | 一种图形用户界面的截取和重现方法 |
CN101228571A (zh) * | 2005-07-22 | 2008-07-23 | 微软公司 | 安全硬件桌面缓冲区合成 |
CN102576287A (zh) * | 2009-07-31 | 2012-07-11 | 三星电子株式会社 | 用于创建综合用户界面的方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8384738B2 (en) * | 2008-09-02 | 2013-02-26 | Hewlett-Packard Development Company, L.P. | Compositing windowing system |
US8994750B2 (en) * | 2012-06-11 | 2015-03-31 | 2236008 Ontario Inc. | Cell-based composited windowing system |
-
2014
- 2014-01-08 CN CN201410008804.6A patent/CN104765595B/zh active Active
-
2015
- 2015-01-08 US US14/592,160 patent/US9899004B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101228571A (zh) * | 2005-07-22 | 2008-07-23 | 微软公司 | 安全硬件桌面缓冲区合成 |
CN101071380A (zh) * | 2007-06-27 | 2007-11-14 | 中兴通讯股份有限公司 | 一种图形用户界面的截取和重现方法 |
CN102576287A (zh) * | 2009-07-31 | 2012-07-11 | 三星电子株式会社 | 用于创建综合用户界面的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US9899004B2 (en) | 2018-02-20 |
US20150193097A1 (en) | 2015-07-09 |
CN104765595A (zh) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104765595B (zh) | 一种显示图形用户界面的方法及装置 | |
CN104765594B (zh) | 一种显示图形用户界面的方法及装置 | |
KR102154456B1 (ko) | 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용 | |
US10242481B2 (en) | Visibility-based state updates in graphical processing units | |
JP6273380B2 (ja) | レイトレーシングアプリケーションにおけるツリー横断のための開始ノード決定 | |
TWI597685B (zh) | 渲染方法和裝置 | |
JP5166552B2 (ja) | グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート | |
US8823705B2 (en) | Image generating apparatus and image generating method for generating images by rendering a polygon | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
JP2011505633A (ja) | グラフィックスシステムにおいて2次プロセッサを使用するための方法及びシステム | |
EP4147192A1 (en) | Multi-layer reprojection techniques for augmented reality | |
WO2002061687A1 (fr) | Procede et dispositif de creation d'image | |
JP2015515662A (ja) | グラフィックス処理システムにおけるメモリアクセス帯域幅をデスティネーションアルファ値に基づいて減少させるための技法 | |
TW200933523A (en) | Graphics processing units and execution units | |
US20140125685A1 (en) | Method and Apparatus for Displaying Images | |
JP2014530403A (ja) | タイル単位レンダラーを用いてレイヤリングするシステムおよび方法 | |
TW201926239A (zh) | 以微磚為基礎之低解析度深度儲存 | |
US10789913B2 (en) | Arbitrary block rendering and display frame reconstruction | |
WO2018006869A1 (en) | Apparatus and method for mapping frame buffers to logical displays | |
EP3098807A1 (en) | Tiled viewport composition | |
US6888550B2 (en) | Selecting between double buffered stereo and single buffered stereo in a windowing system | |
CN108255551B (zh) | 一种gui内存优化方法及系统 | |
WO2023241210A1 (zh) | 虚拟场景的渲染方法、装置、设备及存储介质 | |
CN106296564A (zh) | 嵌入式soc片上系统 | |
CN113971070A (zh) | 适用于多虚拟机同屏显示的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |