掌桥专利:专业的专利平台
掌桥专利
首页

一种窗口效果的生成方法及计算设备

文献发布时间:2023-06-19 11:52:33


一种窗口效果的生成方法及计算设备

技术领域

本发明涉及计算机技术领域,特别涉及一种窗口效果的生成方法及计算设备。

背景技术

Unix或者类Unix的操作系统中,最通用的视窗显示系统是X window,X window通过为用户提供窗口来进行交互。由于显卡GPU的快速发展,3D渲染技术已经被广泛地用于Xwindow系统的窗口呈现上。例如,打开窗口的时候,会呈现窗口由小到大的动画效果。目前,窗口动画效果的呈现是通过操作系统的窗口合成管理器完成的,一般是在系统内基于一些算法来实现窗口动画效果。不同类型的操作系统,会封装一些相应的窗口特色动画效果,形成操作系统的独特风格,以供用户选择使用。

随着操作系统的发展,个性化的界面越来越受用户的欢迎。目前,很多操作系统提供了静态主题的接口,用于标题栏、桌面等窗口的装饰。但是,窗口动态的呈现效果仍然是固定的,如果用户想尝试不同的窗口动态效果,就只能通过换不同的操作系统来实现。

为此,需要一种窗口效果的生成方法,来解决上述技术方案中存在的问题。

发明内容

为此,本发明提供一种窗口效果的生成方法,以力图解决或者至少缓解上面存在的问题。

根据本发明的一个方面,提供了一种窗口效果的生成方法,在操作系统中执行,包括步骤:获取一个或多个效果文本文件;基于效果容器对每个效果文本文件进行解析,以生成相应的可执行效果插件;以及获取窗口对应的窗口图像,基于相应的效果插件对所述窗口图像进行动画处理,以便生成动态效果的窗口呈现在屏幕上。

可选地,在根据本发明的窗口效果的生成方法中,基于相应的效果插件对所述窗口图像进行动画处理的步骤包括:基于效果容器中的一个或多个效果插件依次对窗口图像进行效果处理,以便生成动态效果的窗口。

可选地,在根据本发明的窗口效果的生成方法中,基于效果容器中的一个或多个效果插件依次对窗口图像进行效果处理的步骤包括:对于效果容器中的每个效果插件,判断所述效果插件是否适用于所述窗口;如果效果插件适用于所述窗口,则基于该效果插件对该窗口图像进行效果处理;如果效果插件不适用于所述窗口,则跳过该效果插件。

可选地,在根据本发明的窗口效果的生成方法中,获取窗口对应的窗口图像包括:定时从窗口队列中获取一个窗口对应的窗口图像。

可选地,在根据本发明的窗口效果的生成方法中,对每个效果文本文件进行解析的步骤包括:确定所述效果文本文件对应的效果的应用范围,所述应用范围包括一种或多种窗口,以便生成适用于所述一种或多种窗口的效果插件。

可选地,在根据本发明的窗口效果的生成方法中,获取一个或多个效果文本文件包括:接收用户从外部注入效果文本文件的请求,以获取用户从外部注入的一个或多个效果文本文件。

可选地,在根据本发明的窗口效果的生成方法中,在获取一个或多个效果文本文件之后,包括步骤:对每个效果文本文件进行校验,以判断效果文本文件中的文本是否符合语法规范;如果符合语法规范,则对该效果文本文件进行解析。

可选地,在根据本发明的窗口效果的生成方法中,所述效果文本文件适于基于OpenGL着色语言来对图像的效果处理进行描述;所述效果容器是OpenGL引擎。

根据本发明的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述的窗口效果的生成方法的指令。

根据本发明的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述方法。

根据本发明的技术方案,提供了一种窗口效果的生成方法,用户可以自行编写效果文本文件,从外部向操作系统注入效果文本文件,操作系统可以基于效果容器对从外部获取到的效果文本文件进行解析生成可执行的效果插件。这样,有利于扩展效果插件的种类,能够丰富当前操作系统可提供的效果插件的类型,在渲染窗口动画效果时,可以基于种类更丰富的效果插件对窗口图像进行效果处理,以便渲染更加丰富多样的动态效果的窗口呈现给用户,满足用户对窗口动画效果的展示需求。

并且,根据本发明的技术方案,用户可以根据自身对窗口动画效果的展示需求来创建相应的效果插件,并基于创建的效果插件来对窗口进行效果处理。这样,实现了用户自定义窗口动画效果的功能,使窗口呈现个性化的动画效果,提高了用户体验感。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的计算设备100的示意图;

图2示出了根据本发明一个实施例的窗口效果生成装置200的示意图;以及

图3示出了根据本发明一个实施例的窗口效果的生成方法300的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的计算设备100的示意图。

如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。

取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。

取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。

计算设备100还可以包括储存接口总线134。储存接口总线134实现了从储存设备132(例如,可移除储存器136和不可移除储存器138)经由总线/接口控制器130到基本配置102的通信。操作系统120、应用122以及数据124的至少一部分可以存储在可移除储存器136和/或不可移除储存器138上,并且在计算设备100上电或者要执行应用122时,经由储存接口总线134而加载到系统存储器106中,并由一个或者多个处理器104来执行。

计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

计算设备100可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备100也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、数码照相机、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。甚至可以被实现为服务器,如文件服务器、数据库服务器、应用程序服务器和WEB服务器等。本发明的实施例对此均不做限制。

在根据本发明的实施例中,计算设备100的操作系统120被配置为执行根据本发明的窗口效果的生成方法200。其中,计算设备100的操作系统120上包含执行根据本发明的窗口效果的生成方法300的多条程序指令,使得本发明的方法300可以在计算设备100的操作系统120中执行。应当指出,本发明的窗口效果的生成方法300在操作系统层面实现,适用于生成任何应用程序的窗口效果。

在一个实施例中,计算设备100的操作系统120上包括窗口效果生成装置200,窗口效果生成装置200中包含用于执行根据本发明的窗口效果的生成方法300的多条程序指令,以便窗口效果生成装置200执行根据本发明的窗口效果的生成方法300。

图2示出了根据本发明一个实施例的窗口效果生成装置200的示意图。如图2所示,窗口效果生成装置200包括效果容器210、窗口合成器250。

需要说明的是,计算设备100中驻留有多个应用程序,一个或多个应用程序可以运行在操作系统120之上,并且,计算设备100的屏幕上适于显示一个或多个应用程序对应的窗口,以便用户基于窗口与应用程序进行交互。

图3示出了根据本发明一个实施例的窗口效果的生成方法200的流程图。如图3所示,方法300始于步骤S310。

在步骤S310中,获取一个或多个效果文本文件。这里,一个或多个效果文本文件可以由用户或技术人员从外部随时注入至操作系统中。需要说明的是,效果文本文件是基于预定语言对输入的一帧图像的效果处理进行描述的文本数据。这里,本发明对效果处理的描述语言不做限制。另外,本发明也不限于每个效果文本文件中描述的对图像的效果处理方式,对图像的效果处理方式或样式可以由用户或技术人员根据需求自行设置。

需要说明的是,当用户希望体验的窗口动画效果在当前的操作系统上不能实现时,换言之,当前操作系统的窗口合成器提供的窗口效果的类型不能满足用户的使用需求时,用户可以自行编写效果文本文件,或者从其他渠道获得当前操作系统中不能提供的其他窗口效果类型的效果文本文件,并请求向操作系统注入效果文本文件。

在一个实施例中,如图2所示,操作系统上的窗口效果生成装置200可以接收到用户从外部注入效果文本文件的请求,并获取用户从外部注入的一个或多个效果文本文件,以便基于其他类型的效果文本文件来生成相应的其他类型的效果插件,以供用户使用。这里,效果插件可用于对窗口图像进行效果处理。

随后,在步骤S320中,基于效果容器210对每个效果文本文件进行解析,以生成相应的可执行效果插件。这里,对效果文本文件进行解析后生成的效果插件,是可以直接被窗口合成器调用并用于对窗口图像进行相应类型的效果处理的可执行插件。效果容器在对从外部注入的效果文本文件进行解析生成相应的可执行的效果插件后,将效果插件存放在效果容器210中。这样,基于新生成的效果插件不仅能满足当前用户对窗口展示效果的个性化需求,而且,扩展了当前操作系统可提供的效果插件类型,以便渲染更加丰富多样的动态效果的窗口呈现给用户。

应当理解,效果文本文件与基于效果文本文件生成的效果插件之间是一一对应的关系。例如,获取的效果文本文件包括第一效果文本文件、第二效果文本文件、第三效果文本文件,在基于效果容器对每个效果文本文件进行解析后生成的效果插件包括:与第一效果文本文件相对应的第一效果插件、与第二效果文本文件相对应的第二效果插件、与第三效果文本文件相对应的第三效果插件。

应当指出,窗口效果生成装置200包括用于解析效果文本文件的效果容器210,效果容器210是与效果文本文件采用的描述语言相匹配的解释器。效果容器210中可以包括一个或多个效果插件。并且,效果容器可以加载效果文本文件,并解释效果文本文件中的文本数据,从而生成新的效果插件,以丰富效果容器中的效果插件的类型。这里,本发明对效果容器的具体种类不做限制,只要与效果文本语言相匹配即可。另外,本发明对效果容器中的每个效果插件对图像的效果处理方式也不做限制。

随后,在步骤S330中,操作系统中的窗口合成器250获取窗口对应的窗口图像,进而,调用效果容器210中的效果插件,并基于相应的一个或多个效果插件对窗口图像进行动画处理,以便渲染生成动态效果的窗口呈现在屏幕上。

应当指出,由于操作系统可以获取用户从外部注入的其他类型的效果文本文件,并基于效果容器对效果文本文件进行解析生成相应的其他类型的效果插件。这样,用户可以根据自身对窗口动画效果的展示需求来创建相应的效果插件,进而可以基于其创建的效果插件来对窗口进行效果处理,从而实现了用户自定义窗口动画效果的功能,使窗口呈现个性化的动画效果,提高了用户体验感。

需要说明的是,在应用程序响应于用户的请求,请求在屏幕上显示该应用程序对应的窗口时,应用程序会渲染相应的窗口图像,并将窗口图像发送给操作系统中的显示服务模块,以请求显示该应用程序的窗口。显示服务模块可以接收一个或多个待显示窗口的应用程序发送的一帧或多帧窗口图像,并将每个应用程序的窗口对应的窗口图像添加到窗口队列中。

在一个实施例中,操作系统中的窗口合成器250会定时从窗口队列中获取一个待显示窗口对应的窗口图像,并调用效果容器210中的一个或多个效果插件,基于一个或多个效果插件依次对窗口图像进行效果处理,以便渲染生成动态效果的窗口。

在一个实施例中,效果容器210中的多个效果插件呈预定顺序排列。基于效果容器中的一个或多个效果插件对窗口图像进行效果处理的方法具体可以按照以下步骤执行:

基于效果容器中的多个效果插件的排列顺序依次获取每个效果插件。对于获取的效果容器中的每一个效果插件,窗口合成器250分别判断效果插件是否适用于当前的窗口。如果效果插件不适用于该窗口,则跳过该效果插件。在确定效果插件适用于该窗口的情况下,基于该效果插件对窗口图像进行效果处理。

另外,在对效果容器中的每个效果插件均执行了上述步骤之后,对该窗口图像的动画效果处理完成,也即是,基于相应的一个或多个效果插件渲染生成了动态效果的窗口。随后,窗口合成器250将生成的动态效果的窗口发送至计算设备的屏幕,以便在屏幕上呈现动态效果的窗口。

根据一个实施例,通过解析效果文本文件生成的效果插件,可以适用于一种或者多种窗口。具体地,效果文本文件中包括对效果适用的应用范围的描述,例如“windowclass:XXX”,这样,在基于效果容器210解析效果文本文件时,可以根据对应用范围的描述来确定效果文本文件对应的效果的应用范围。

这里,应用范围可以包括特定的一种或多种窗口,也可以包括所有窗口。也就是说,效果文本文件对应的效果可以适用于特定的一种或多种窗口,或者适用于全部窗口。这样,通过解析效果文本文件可以生成适用于一种或多种窗口或者适用于全部窗口的效果插件。例如,效果文本文件中的window class为空时,说明该效果适用于所有窗口;如果window class不为空,则说明该效果适用于特定的一种或多种窗口。

根据一个实施例,在获取一个或多个效果文本文件之后,在基于效果容器对效果文本文件进行解析之前,预先基于效果文本文件中的md5对效果文本文件进行安全性检查。另外,还对每个效果文本文件进行校验,判断效果文本文件中的文本是否全部符合语法规范。如果全部文本均符合语法规范,则基于效果容器210对该效果文本文件进行解析。

在一个实施例中,效果文本文件适于基于OpenGL着色语言来对图像的效果处理进行描述,换言之,效果文本语言是OpenGL着色语言。相应地,效果容器是OpenGL引擎。

在一个实施例中,效果本文文件中的文本可以实现为:

#!uos effect plugin

md5 xxxx

window class:xxxxx

============

GLSL Effect start

.....

GLSL Effect end

应当指出,本发明不限于上述效果文本文件中的文本格式和内容。效果文本文件的具体文本格式和内容可以由本领域技术人员根据实际需求自行设置。

根据本发明的窗口效果的生成方法300,用户可以自行编写效果文本文件,从外部向操作系统注入效果文本文件,操作系统可以基于效果容器对从外部获取到的效果文本文件进行解析生成可执行的效果插件。这样,有利于扩展效果插件的种类,能够丰富当前操作系统可提供的效果插件的类型,在渲染窗口动画效果时,可以基于种类更丰富的效果插件对窗口图像进行效果处理,以便渲染更加丰富多样的动态效果的窗口呈现给用户,满足用户对窗口动画效果的展示需求。并且,根据本发明的技术方案,用户可以根据自身对窗口动画效果的展示需求来创建相应的效果插件,并基于创建的效果插件来对窗口进行效果处理。这样,实现了用户自定义窗口动画效果的功能,使窗口呈现个性化的动画效果,提高了用户体验感。

这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。

在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的多语言垃圾文本的识别方法。

以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。

在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

相关技术
  • 一种窗口效果的生成方法及计算设备
  • 一种窗口展示效果的控制方法及计算设备
技术分类

06120113084378