CN105930037A - 窗口边框阴影显示方法及装置 - Google Patents
窗口边框阴影显示方法及装置 Download PDFInfo
- Publication number
- CN105930037A CN105930037A CN201610417380.8A CN201610417380A CN105930037A CN 105930037 A CN105930037 A CN 105930037A CN 201610417380 A CN201610417380 A CN 201610417380A CN 105930037 A CN105930037 A CN 105930037A
- Authority
- CN
- China
- Prior art keywords
- window
- subordinate
- main
- transparency
- subordinate window
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 230000033228 biological regulation Effects 0.000 claims description 28
- 238000012544 monitoring process Methods 0.000 claims description 21
- 238000012856 packing Methods 0.000 claims description 19
- 230000007423 decrease Effects 0.000 claims description 12
- 230000000694 effects Effects 0.000 abstract description 29
- 230000002093 peripheral effect Effects 0.000 abstract 2
- 230000012447 hatching Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
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/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/37—Details of the operation on graphic patterns
- G09G5/377—Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- 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/10—Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明涉及一种窗口边框阴影显示方法及装置,其中方法包括步骤:创建拼接在主窗口四周边框处的各个从属窗口,所述主窗口为非Layered Window,所述从属窗口均为Layered Window;根据所述主窗口的尺寸调节所述从属窗口的尺寸,根据所述主窗口的屏幕坐标调节所述从属窗口的屏幕坐标;计算所述从属窗口的像素点透明度,并根据计算结果对所述从属窗口进行显示。本发明通过将用于正常呈现软件的显示界面的主窗口设置为非Layered Window、拼接在主窗口四周边框处的从属窗口设置为Layered Window,不仅利用从属窗口实现主窗口的边框阴影显示效果,而且整体上减小了系统的内存占用。
Description
技术领域
本发明涉及显示技术领域,特别是涉及一种窗口边框阴影显示方法及装置。
背景技术
目前,在操作系统中,窗口的边框阴影效果往往通过使窗口的边缘区域呈现出半透明的效果来实现,例如在Windows系统中,为了实现窗口的边框阴影显示效果,传统的方法是通过Microsoft 32位平台的应用程序编程接口(Win32API)将窗口设置为Layered Window(分层窗口),并在窗口的边缘区域绘制出半透明的阴影效果。但是,这种将窗口标记为Layered Window以实现窗口边框阴影显示的方法具有一定的弊端:Layered Window会占用大量的内存,并且内存占用量随窗口面积的增加而等比增加;Layered Window的晕染性能较差,在Layered Window中实现的动画效果,会比同等情况下非Layered Window中更难以达到理想的帧率。
发明内容
基于此,有必要针对现有技术中的上述问题,提供一种窗口边框阴影显示方法及装置。
一种窗口边框阴影显示方法,所述方法包括以下步骤:
创建拼接在主窗口边框处的从属窗口,所述主窗口为非Layered Window,所述从属窗口为Layered Window;
根据所述主窗口的尺寸调节所述从属窗口的尺寸,根据所述主窗口的屏幕坐标调节所述从属窗口的屏幕坐标;
计算所述从属窗口的像素点透明度,并根据计算结果对所述从属窗口进行显示。
相应地,本发明还提出一种窗口边框阴影显示装置,所述装置包括:
窗口创建单元,用于创建拼接在主窗口边框处的从属窗口,所述主窗口为非Layered Window,所述从属窗口为Layered Window;
调节单元,用于根据所述主窗口的尺寸调节所述从属窗口的尺寸,根据所述主窗口的屏幕坐标调节所述从属窗口的屏幕坐标;
计算显示单元,用于计算所述从属窗口的像素点透明度,并根据计算结果对所述从属窗口进行显示。
上述窗口边框阴影显示方法及装置利用主窗口正常呈现软件的显示界面,以拼接在主窗口边框处的、与主窗口相匹配的从属窗口实现主窗口的边框阴影显示,并将主窗口设置为非Layered Window,从属窗口设置为Layered Window,由于主窗口是非Layered Window,因此该区域的内存占用不会随主窗口面积的增大而等比增加,从而极大地节约了系统的内存占用,而从属窗口虽然是LayeredWindow,但是由于在实现主窗口边框阴影显示时,从属窗口的面积相对于主窗口面积往往较小,因此从属窗口的内存占用有限,相比于将主窗口标记为LayeredWindow以实现窗口边框阴影显示的方法而言,仍在整体上减小了系统的内存占用;此外,由于主窗口是非Layered Window,其不会受到Layered Window所带来的性能影响,因此本发明所提出的窗口边框阴影显示方法及装置具有更好的窗口渲染性能。
附图说明
图1为本发明其中一个实施例中窗口边框阴影显示方法的流程示意图;
图2为本发明其中一个实施例中主窗口和从属窗口的示意图;
图3为本发明其中一个实施例中窗口边框阴影显示装置的结构示意图。
具体实施方式
下面将结合附图及较佳实施例对本发明的技术方案进行详细描述。
在其中一个实施例中,参见图1所示,一种窗口边框阴影显示方法,该方法包括以下步骤:
S100创建拼接在主窗口边框处的从属窗口,所述主窗口为非LayeredWindow,所述从属窗口为Layered Window;
S200根据所述主窗口的尺寸调节所述从属窗口的尺寸,根据所述主窗口的屏幕坐标调节所述从属窗口的屏幕坐标;
S300计算所述从属窗口的像素点透明度,并根据计算结果对所述从属窗口进行显示。
具体地,主窗口是用于在操作系统中正常呈现软件的显示界面的窗口,在步骤S100中,在已创建的一个主窗口的基础之上,通过Window API创建从属窗口,且从属窗口拼接在主窗口的边框处,以便拼接出主窗口的边框阴影效果,其中主窗口的哪些边框与从属窗口拼接、与主窗口拼接的从属窗口的数量都可以视具体的主窗口边框阴影显示预期效果而定;本步骤进一步将主窗口设置为非Layered Window,从属窗口设置为Layered Window,其中Layered Window是Windows系统中定义的一种窗口实现方式,与非Layered Window相比,LayeredWindow可以呈现出半透明的效果,但是会占用更多的内存,且渲染性能不理想。作为一种具体的实施方式,在本步骤创建拼接在主窗口边框处的从属窗口时,主窗口的每一边框均与一个从属窗口相拼接,采用本实施方式所提出的从属窗口的创建方法,最大程度上减小了需创建的从属窗口的总数量,从而简化主窗口边框阴影显示的过程,提高边框阴影显示效率,而且通过在主窗口的每一边框处均拼接一个从属窗口,最终可使得主窗口的四周边框均有阴影显示效果,更符合人的视觉习惯。
在步骤S200中,根据主窗口的尺寸调节从属窗口的尺寸,根据主窗口的屏幕坐标调节从属窗口的屏幕坐标。下面以常见的具有4条边框的主窗口、假设创建4个拼接在主窗口不同边框处的从属窗口为例,对步骤S200加以说明:
一方面,根据主窗口的尺寸(包括长度和/或宽度)分别调节各个从属窗口的尺寸(包括长度和/或宽度),具体地,将各个从属窗口分别标记为上从属窗口、下从属窗口、左从属窗口和右从属窗口,如图2所示,主窗口的长度和宽度分别记为window.length和window.width,上从属窗口的宽度记为radius.top,下从属窗口的宽度记为radius.bottom,左从属窗口的宽度记为radius.left,右从属窗口的宽度记为radius.right,根据图2可知,拼接在主窗口上边框处的上从属窗口的长度与拼接在主窗口下边框处的下从属窗口的长度相同,均为radius.left+window.length+radius.right,拼接在主窗口左边框处的左从属窗口的长度与拼接在主窗口右边框处的右从属窗口的长度相同,均为radius.top+window.width+radius.bottom,其中各个从属窗口的宽度radius.top、radius.bottom、radius.left、radius.right可以根据主窗口的尺寸以及边框阴影显示效果进行灵活地设定,作为其中的一种具体的实施方式,当从属窗口的数量大于一个时,设定各个从属窗口的宽度均相同,以上述4个从属窗口为例,各个从属窗口的宽度均相同,即radius.top=radius.bottom=radius.left=radius.right,将各个从属窗口的宽度统一化,可以根据窗口的对称性来简化对从属窗口的像素点透明度计算,从而提高主窗口边框阴影显示的效率;
另一方面,根据主窗口的屏幕坐标调节从属窗口的屏幕坐标,具体地,在显示技术领域,以显示屏幕左上角为坐标原点,水平向右的方向为x轴正方向,与x轴垂直向下的方向为y轴正方向建立坐标系,主窗口的屏幕坐标指的是主窗口左上角在所建坐标系下的坐标位置,例如,将主窗口的屏幕坐标记为(window.left,window.top),根据主窗口的屏幕坐标可以计算出从属窗口的屏幕坐标,例如,以图2所示的上从属窗口为例,上从属窗口的左上角在所建坐标系下的坐标位置可以根据主窗口的屏幕坐标和从属窗口的尺寸计算得到,上从属窗口的左上角的坐标位置应该为(window.left-radius.left,window.top-radius.top),即上从属窗口的屏幕坐标为(window.left-radius.left,window.top-radius.top),其他从属窗口的屏幕坐标以此类推。
最后,在步骤S300中,计算从属窗口的像素点透明度,并根据计算结果对从属窗口进行显示。在步骤S200对从属窗口的尺寸和屏幕坐标进行调节后,需计算从属窗口包括的像素点的透明度,即对从属窗口进行像素点透明度计算,从而通过对从属窗口的像素点的透明度的计算和设置,实现主窗口边框阴影显示的效果。在对各个从属窗口分别进行像素点透明度计算的过程中,作为其中一种具体的算法,主窗口的每一边框均与一个从属窗口相拼接,将各个从属窗口分别标记为第一从属窗口、第二从属窗口、第三从属窗口和第四从属窗口,对于第一从属窗口和第三从属窗口,分别设定第一从属窗口和第三从属窗口的第一行像素点的透明度为1,其他行像素点由1开始依次递减计算,直至最后一行像素点的透明度为0;对于第二从属窗口和第四从属窗口,分别设定第二从属窗口和第四从属窗口的第一列像素点的透明度为1,其他列像素点由1开始依次递减计算,直至最后一列像素点的透明度为0。
计算从属窗口的像素点透明度的有多种方法,在其中一种可行的方法中,可以将各个从属窗口中与主窗口边框拼接的一侧的像素点(即第一行像素点或第一列像素点)的透明度设置为1,将各个从属窗口中与主窗口边框拼接的一侧的对侧的像素点(即最后一行像素点或最后一列像素点)的透明度设置为0,其他行像素点或者其他列像素点的透明度均从1至0依次递减获得,例如,以拼接于主窗口左侧的从属窗口(左从属窗口)为例,该从属窗口的宽度为radius.left,即有radius.left列像素点,设定该从属窗口与主窗口的边框拼接的一侧的第一列像素点的透明度都为1(即完全不透明),而在第一列像素点之后的每一列像素点的透明度依次递减,直至第radius.left列像素点的透明度为0(即完全透明),除第一列像素点和第radius.left列像素点外,其他列像素点的透明度均为半透明,同理,对其他从属窗口也分别进行像素点透明度计算;得到各个从属窗口中各个像素点的透明度后,根据计算得到的透明度对各个从属窗口进行显示,即将各个从属窗口中的像素点渲染成具有不同透明度的像素点,渲染后得到的全部从属窗口一起拼接在主窗口的四周边框处,最终得到主窗口的边框阴影显示结果。
在计算从属窗口的像素点透明度时,当各个从属窗口的宽度均相同时,根据对称原则,可减少部分从属窗口的像素点透明度的计算量,从而提高窗口边框阴影显示的处理速度,此外,由于窗口边框阴影显示效果可以多种多样,例如只显示窗口某一边框的阴影、各个边框的阴影程度不一样等,用户可根据自身需求或喜好进行设定,因此对于本领域技术人员而言,对各个从属窗口进行像素点透明度计算时所采用的具体计算方法可以根据对窗口边框阴影显示效果的预期而进行相应的调整。
本实施例所提出的窗口边框阴影显示方法利用主窗口正常呈现软件的显示界面,以拼接在主窗口边框处的、与主窗口相匹配的从属窗口实现主窗口的边框阴影显示,并将主窗口设置为非Layered Window,从属窗口设置为LayeredWindow,由于主窗口是非Layered Window,因此该区域的内存占用不会随主窗口面积的增大而等比增加,从而极大地节约了系统的内存占用,而从属窗口虽然是Layered Window,但是由于在实现主窗口边框阴影显示时,从属窗口的面积相对于主窗口面积往往较小,因此从属窗口的内存占用有限,相比于将主窗口标记为Layered Window以实现窗口边框阴影显示的方法而言,仍在整体上减小了系统的内存占用;此外,由于主窗口是非Layered Window,其不会受到Layered Window所带来的性能影响,因此本实施例所提出的窗口边框阴影显示方法具有更好的窗口渲染性能。
作为一种具体的实施方式,窗口边框阴影显示方法还包括以下步骤:监听主窗口的尺寸变化,根据监听到的尺寸变化量调节从属窗口的尺寸。在本实施方式中,可以利用Window API监听主窗口的尺寸(包括长度和宽度)的变化情况,当Window API监听到主窗口的长度或者宽度发生变化时,根据监听到的尺寸变化量重新调节从属窗口的尺寸(包括长度和宽度),使得从属窗口始终能够与主窗口拼接,从而始终能够与主窗口相匹配,例如,当Window API监听到主窗口的长度增加Δ时,则相应的部分从属窗口的长度也需增加Δ,以此保证得到与主窗口相匹配的从属窗口,从而保证从属窗口拼接在主窗口边框处并形成主窗口的边框阴影。通过实施本实施方式,当主窗口的长度和/或宽度发生改变时,从属窗口的长度和/或宽度随之改变,因此主窗口的边框阴影显示效果不会随主窗口的缩放而产生变化,进一步保证了窗口边框阴影的正常显示效果。
作为一种具体的实施方式,窗口边框阴影显示方法还包括以下步骤:监听主窗口的屏幕坐标变化,根据监听到的坐标变化量调节从属窗口的屏幕坐标。当用户改变主窗口在显示屏幕上的位置即改变主窗口的屏幕坐标时,本实施方式通过监听主窗口的屏幕坐标变化这一事件,根据监听到的主窗口的坐标变化量调节从属窗口的屏幕坐标,例如以显示屏幕左上角为坐标原点、水平向右的方向为x轴正方向、与x轴垂直向下的方向为y轴正方向建立坐标系,WindowAPI监听到主窗口的屏幕坐标由原来的(window.left,window.top)变化为(window.left+window.x,window.top+window.y),为了保证能够得到与主窗口实时匹配的从属窗口,从属窗口的屏幕坐标也需要进行调整,从属窗口的屏幕坐标的横坐标需增加window.x,纵坐标需增加window.y,以此保证从属窗口能够与主窗口相匹配,从而保证从属窗口拼接在主窗口边框处并形成主窗口的边框阴影。通过实施本实施方式,当主窗口的屏幕坐标发生改变时,从属窗口的屏幕坐标随之改变,因此主窗口的边框阴影显示效果不会随主窗口在显示屏幕上的位置的变化而产生变化,进一步保证了窗口边框阴影的正常显示效果。
作为一种具体的实施方式,窗口边框阴影显示方法还包括以下步骤:当监听到主窗口的窗口最大化指令或者窗口最小化指令时,隐藏已显示的从属窗口。在本实施方式中,对是否接收到主窗口的窗口最大化指令或者窗口最小化指令这一事件进行监听,当监听到主窗口的窗口最大化指令时,此时由于主窗口将在显示屏幕上进行全屏显示,主窗口的边框与显示屏幕的边界重合,不需要对主窗口的边框阴影进行显示,因此当监听到主窗口的窗口最大化指令时,隐藏已显示从属窗口,停止对从属窗口的渲染,从而释放系统内存资源;当监听到主窗口的窗口最小化指令时,此时由于主窗口将不再显示屏幕上进行显示,因此也不需要对主窗口的边框阴影进行显示,当监听到主窗口的窗口最小化指令时,隐藏已显示的从属窗口,停止对从属窗口的渲染,从而释放系统内存资源。本实施方式针对主窗口的不同显示状态,当主窗口被最大化或者最小化时,都将已显示的从属窗口进行隐藏,即不对主窗口的边框阴影进行显示,因而进一步节约了系统内存资源。
相应地,本发明还提出一种窗口边框阴影显示装置,该装置包括窗口创建单元100、调节单元200和计算显示单元300,下面对上述各个单元及其功能分别进行介绍:
窗口创建单元100用于创建拼接在主窗口边框处的从属窗口,其中主窗口为非Layered Window,从属窗口为Layered Window。主窗口是用于在操作系统中正常呈现软件的显示界面的窗口,在已创建的一个主窗口的基础之上,窗口创建单元100通过WindowAPI创建从属窗口,且从属窗口拼接在主窗口的边框处,以便拼接出主窗口的边框阴影效果,其中主窗口的哪些边框与从属窗口拼接、与主窗口拼接的从属窗口的数量都可以视具体的主窗口边框阴影显示预期效果而定,同时窗口创建单元100将主窗口设置为Layered Window,从属窗口设置为Layered Window,其中Layered Window是Windows系统中定义的一种窗口实现方式,与非Layered Window相比,Layered Window可以呈现出半透明的效果,但是会占用更多的内存,且渲染性能不理想。作为一种具体的实施方式,在窗口创建单元100创建从属窗口时,窗口创建单元100使得主窗口的每一边框均与一个从属窗口相拼接,窗口创建单元100采用本实施方式所提出的创建从属窗口的方法,最大程度上减小了需创建的从属窗口的总数量,从而简化主窗口边框阴影显示的过程,提高边框阴影显示效率,而且通过在主窗口的每一边框处均拼接一个从属窗口,最终可使得主窗口的四周边框均有阴影显示效果,更符合人的视觉习惯。
调节单元200用于根据主窗口的尺寸调节从属窗口的尺寸,根据主窗口的屏幕坐标调节从属窗口的屏幕坐标。下面以常见的具有4条边框的主窗口、假设窗口创建单元100创建4个拼接在主窗口不同边框处的从属窗口为例,对调节单元200加以说明:
一方面,调节单元200根据主窗口的尺寸(包括长度和/或宽度)分别设定各个从属窗口的尺寸(包括长度和/或宽度),具体地,将各个从属窗口分别标记为上从属窗口、下从属窗口、左从属窗口和右从属窗口,如图2所示,主窗口的长度和宽度分别记为window.length和window.width,上从属窗口的宽度记为radius.top,下从属窗口的宽度记为radius.bottom,左从属窗口的宽度记为radius.left,右从属窗口的宽度记为radius.right,根据图2可知,调节单元根据主窗口的尺寸调节从属窗口的尺寸的方法如下,拼接在主窗口上边框处的上从属窗口的长度与拼接在主窗口下边框处的下从属窗口的长度相同,均为radius.left+window.length+radius.right,拼接在主窗口左边框处的左从属窗口的长度与拼接在主窗口右边框处的右从属窗口的长度相同,均为radius.top+window.width+radius.bottom,其中各个从属窗口的宽度radius.top、radius.bottom、radius.left、radius.right可以根据主窗口的尺寸以及边框阴影显示效果进行灵活地设定,作为其中的一种具体的实施方式,当从属窗口的数量大于一个时,调节单元200设定各个从属窗口的宽度均相同,以上述4个从属窗口为例,各个从属窗口的宽度均相同,即radius.top=radius.bottom=radius.left=radius.right,将各个从属窗口的宽度统一化,可以根据窗口的对称性来简化计算显示单元300对从属窗口的像素点透明度计算,从而提高主窗口边框阴影显示的效率;
另一方面,调节单元200根据主窗口的屏幕坐标调节从属窗口的屏幕坐标,具体地,调节单元200对从属窗口的屏幕坐标的调节方法如下:在显示技术领域,以显示屏幕左上角为坐标原点,水平向右的方向为x轴正方向,与x轴垂直向下的方向为y轴正方向建立坐标系,主窗口的屏幕坐标指的是主窗口左上角在所建坐标系下的坐标位置,例如,将主窗口的屏幕坐标记为(window.left,window.top),根据主窗口的屏幕坐标可以计算出从属窗口的屏幕坐标,例如,以图2所示的上从属窗口为例,上从属窗口的左上角在所建坐标系下的坐标位置可以根据主窗口的屏幕坐标和从属窗口的尺寸计算得到,上从属窗口的左上角的坐标位置应该为(window.left-radius.left,window.top-radius.top),即上从属窗口的屏幕坐标为(window.left-radius.left,window.top-radius.top),其他从属窗口的屏幕坐标以此类推。
计算显示单元300用于计算从属窗口的像素点透明度,并根据计算结果对从属窗口进行显示。对从属窗口的尺寸和屏幕坐标进行调节后,计算显示单元300需计算从属窗口包括的像素点的透明度,即对从属窗口进行像素点透明度计算,从而通过对从属窗口的像素点的透明度的计算和设置,实现主窗口边框阴影显示的效果。作为一种具体的实施方式,计算显示单元300包括透明度计算单元,透明度计算单元用于计算从属窗口所包括的各个像素点的透明度,具体地,主窗口的每一边框均与一个从属窗口相拼接,将各个从属窗口分别标记为第一从属窗口、第二从属窗口、第三从属窗口和第四从属窗口,对于第一从属窗口和第三从属窗口,透明度计算单元分别设定第一从属窗口和第三从属窗口的第一行像素点的透明度为1,其他行像素点由1开始依次递减计算,直至最后一行像素点的透明度为0;对于第二从属窗口和第四从属窗口,透明度计算单元分别设定第二从属窗口和第四从属窗口的第一列像素点的透明度为1,其他列像素点由1开始依次递减计算,直至最后一列像素点的透明度为0。
透明度计算单元计算从属窗口的像素点透明度的有多种方法,在其中一种可行的方法中,透明度计算单元可以将各个从属窗口中与主窗口边框拼接的一侧的像素点(即第一行像素点或第一列像素点)的透明度设置为1,将各个从属窗口中与主窗口边框拼接的一侧的对侧的像素点(即最后一行像素点或最后一列像素点)的透明度设置为0,其他行像素点或者其他列像素点的透明度均从1至0依次递减获得,例如,以拼接于主窗口左侧的从属窗口(左从属窗口)为例,该从属窗口的宽度为radius.left,即有radius.left列像素点,透明度计算单元设定该从属窗口与主窗口的边框拼接的一侧的第一列像素点的透明度都为1(即完全不透明),而在第一列像素点之后的每一列像素点的透明度依次递减,直至第radius.left列像素点的透明度为0(即完全透明),除第一列像素点和第radius.left列像素点外,其他列像素点的透明度均为半透明,同理,透明度计算单元对其他从属窗口也分别进行像素点透明度计算;透明度计算单元得到各个从属窗口中各个像素点的透明度后,计算显示单元300根据计算得到的透明度对各个从属窗口进行显示,即将各个从属窗口中的像素点渲染成具有不同透明度的像素点,渲染后得到的全部从属窗口一起拼接在主窗口的四周边框处,最终得到主窗口的边框阴影显示结果。
在上述窗口边框阴影显示装置中,当各个从属窗口的宽度均相同时,根据对称原则,可减少透明度计算单元对部分从属窗口的像素点透明度的计算量,从而提高窗口边框阴影显示的处理速度,此外,由于窗口边框阴影显示效果可以多种多样,例如只显示窗口某一边框的阴影、各个边框的阴影程度不一样等,用户可根据自身需求或喜好进行设定,因此对于本领域技术人员而言,透明度计算单元对各个从属窗口进行像素点透明度计算时所采用的具体计算方法可以根据对窗口边框阴影显示效果的预期而进行相应的调整。
本实施例所提出的窗口边框阴影显示装置利用主窗口正常呈现软件的显示界面,以拼接在主窗口边框处的、与主窗口相匹配的从属窗口实现主窗口的边框阴影显示,并将主窗口设置为非Layered Window,从属窗口设置为LayeredWindow,由于主窗口是非Layered Window,因此该区域的内存占用不会随主窗口面积的增大而等比增加,从而极大地节约了系统的内存占用,而从属窗口虽然是Layered Window,但是由于在实现主窗口边框阴影显示时,从属窗口的面积相对于主窗口面积往往较小,因此从属窗口的内存占用有限,相比于将主窗口标记为Layered Window以实现窗口边框阴影显示的方法而言,仍在整体上减小了系统的内存占用;此外,由于主窗口是非Layered Window,其不会受到Layered Window所带来的性能影响,因此本实施例所提出的窗口边框阴影显示装置具有更好的窗口渲染性能。
作为一种具体的实施方式,窗口边框阴影显示装置还包括监听单元,下面对监听单元及其功能进行详细介绍:
监听单元监听主窗口的尺寸变化,调节单元根据监听单元监听到的尺寸变化量调节从属窗口的尺寸。在本实施方式中,监听单元可以利用WindowAPI监听主窗口的尺寸(包括长度和宽度)的变化情况,当WindowAPI监听到主窗口的长度或者宽度发生变化时,调节单元根据监听单元监听到的尺寸变化量重新调节从属窗口的尺寸(包括长度和宽度),使得从属窗口始终能够与主窗口拼接,从而始终能够与主窗口相匹配,例如,当监听单元监听到主窗口的长度增加Δ时,则调节单元将相应的部分从属窗口的长度也增加Δ,以此保证得到与主窗口相匹配的从属窗口,从而保证从属窗口拼接在主窗口边框处并形成主窗口的边框阴影。通过实施本实施方式,当主窗口的长度和/或宽度发生改变时,从属窗口的长度和/或宽度随之改变,因此主窗口的边框阴影显示效果不会随主窗口的缩放而产生变化,进一步保证了窗口边框阴影的正常显示效果。
此外,监听单元还监听主窗口的屏幕坐标变化,调节单元根据监听单元监听到的坐标变化量调节从属窗口的屏幕坐标。当用户改变主窗口在显示屏幕上的位置即改变主窗口的屏幕坐标时,本实施方式的监听单元通过监听主窗口的屏幕坐标变化这一事件,调节单元根据监听单元监听到的主窗口的坐标变化量调节从属窗口的屏幕坐标,例如以显示屏幕左上角为坐标原点、水平向右的方向为x轴正方向、与x轴垂直向下的方向为y轴正方向建立坐标系,Window API监听到主窗口的屏幕坐标由原来的(window.left,window.top)变化为(window.left+window.x,window.top+window.y),为了保证能够得到与主窗口实时匹配的从属窗口,从属窗口的屏幕坐标也需要改变,调节单元将从属窗口的屏幕坐标的横坐标增加window.x,纵坐标增加window.y,以此保证从属窗口能够与主窗口相匹配,从而保证从属窗口拼接在主窗口边框处并形成主窗口的边框阴影。通过实施本实施方式,当主窗口的屏幕坐标发生改变时,从属窗口的屏幕坐标随之改变,因此主窗口的边框阴影显示效果不会随主窗口在显示屏幕上的位置的变化而产生变化,进一步保证了窗口边框阴影的正常显示效果。
当监听单元监听到主窗口的窗口最大化指令或者窗口最小化指令时,计算显示单元隐藏从属窗口。在本实施方式中,监听单元对是否接收到主窗口的窗口最大化指令或者窗口最小化指令这一事件进行监听,当监听到主窗口的窗口最大化指令时,此时由于主窗口将在显示屏幕上进行全屏显示,主窗口的边框与显示屏幕的边界重合,计算显示单元不需要对主窗口的边框阴影进行显示,因此当监听单元监听到主窗口的窗口最大化指令时,计算显示单元隐藏从属窗口,停止对从属窗口的渲染,从而释放系统内存资源;当监听单元监听到主窗口的窗口最小化指令时,此时由于主窗口将不再显示屏幕上进行显示,因此也不需要计算显示单元对主窗口的边框阴影进行显示,当监听单元监听到主窗口的窗口最小化指令时,计算显示单元隐藏从属窗口,停止对从属窗口的渲染,从而释放系统内存资源。本实施方式针对主窗口的不同显示状态,当主窗口被最大化或者最小化时,都将从属窗口进行隐藏,即不对主窗口的边框阴影进行显示,从而进一步节约了系统内存资源。
本发明窗口边框阴影显示装置中各个单元其具体功能的实现方法,可以参照上述的窗口边框阴影显示方法实施例中描述的实现方法,此处不再赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种窗口边框阴影显示方法,其特征在于,包括以下步骤:
创建拼接在主窗口边框处的从属窗口,所述主窗口为非Layered Window,所述从属窗口为Layered Window;
根据所述主窗口的尺寸调节所述从属窗口的尺寸,根据所述主窗口的屏幕坐标调节所述从属窗口的屏幕坐标;
计算所述从属窗口的像素点透明度,并根据计算结果对所述从属窗口进行显示。
2.根据权利要求1所述的窗口边框阴影显示方法,其特征在于,还包括以下步骤:
监听所述主窗口的尺寸变化,根据监听到的尺寸变化量调节所述从属窗口的尺寸。
3.根据权利要求1所述的窗口边框阴影显示方法,其特征在于,还包括以下步骤:
监听所述主窗口的屏幕坐标变化,根据监听到的坐标变化量调节所述从属窗口的屏幕坐标。
4.根据权利要求1所述的窗口边框阴影显示方法,其特征在于,还包括以下步骤:
当监听到所述主窗口的窗口最大化指令或者窗口最小化指令时,隐藏已显示的所述从属窗口。
5.根据权利要求1至4中任一项所述的窗口边框阴影显示方法,其特征在于,
所述主窗口的每一边框均与一个所述从属窗口相拼接。
6.根据权利要求5所述的窗口边框阴影显示方法,其特征在于,计算所述从属窗口的像素点透明度的过程包括:
将各个所述从属窗口分别标记为第一从属窗口、第二从属窗口、第三从属窗口和第四从属窗口,
对于所述第一从属窗口和所述第三从属窗口,分别设定所述第一从属窗口和所述第三从属窗口的第一行像素点的透明度为1,其他行像素点由1开始依次递减计算,直至最后一行像素点的透明度为0;
对于所述第二从属窗口和所述第四从属窗口,分别设定所述第二从属窗口和所述第四从属窗口的第一列像素点的透明度为1,其他列像素点由1开始依次递减计算,直至最后一列像素点的透明度为0。
7.根据权利要求1至4中任一项所述的窗口边框阴影显示方法,其特征在于,
当所述从属窗口的数量大于一个时,各个所述从属窗口的宽度均相同。
8.一种窗口边框阴影显示装置,其特征在于,包括:
窗口创建单元,用于创建拼接在主窗口边框处的从属窗口,所述主窗口为非Layered Window,所述从属窗口为Layered Window;
调节单元,用于根据所述主窗口的尺寸调节所述从属窗口的尺寸,根据所述主窗口的屏幕坐标调节所述从属窗口的屏幕坐标;
计算显示单元,用于计算所述从属窗口的像素点透明度,并根据计算结果对所述从属窗口进行显示。
9.根据权利要求8所述的窗口边框阴影显示装置,其特征在于,还包括监听单元,
所述监听单元监听所述主窗口的尺寸变化,所述调节单元根据所述监听单元监听到的尺寸变化量调节所述从属窗口的尺寸;
或者
所述监听单元监听所述主窗口的屏幕坐标变化,所述调节单元根据所述监听单元监听到的坐标变化量调节所述从属窗口的屏幕坐标;
或者
当所述监听单元监听到所述主窗口的窗口最大化指令或者窗口最小化指令时,所述计算显示单元隐藏已显示的所述从属窗口。
10.根据权利要求8所述的窗口边框阴影显示装置,其特征在于,所述计算显示单元包括透明度计算单元,
所述主窗口的每一边框均与一个所述从属窗口相拼接,将各个所述从属窗口分别标记为第一从属窗口、第二从属窗口、第三从属窗口和第四从属窗口,
对于所述第一从属窗口和所述第三从属窗口,所述透明度计算单元分别设定所述第一从属窗口和所述第三从属窗口的第一行像素点的透明度为1,其他行像素点由1开始依次递减计算,直至最后一行像素点的透明度为0;
对于所述第二从属窗口和所述第四从属窗口,所述透明度计算单元分别设定所述第二从属窗口和所述第四从属窗口的第一列像素点的透明度为1,其他列像素点由1开始依次递减计算,直至最后一列像素点的透明度为0。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610417380.8A CN105930037B (zh) | 2016-06-12 | 2016-06-12 | 窗口边框阴影显示方法及装置 |
ES16905354T ES2890828T3 (es) | 2016-06-12 | 2016-12-29 | Método y dispositivo de visualización de sombra de borde de ventana |
EP16905354.3A EP3470967B1 (en) | 2016-06-12 | 2016-12-29 | Window border shadow display method and device |
US16/308,728 US10636191B2 (en) | 2016-06-12 | 2016-12-29 | Method and apparatus of displaying window border shadow |
PCT/CN2016/113224 WO2017215247A1 (zh) | 2016-06-12 | 2016-12-29 | 窗口边框阴影显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610417380.8A CN105930037B (zh) | 2016-06-12 | 2016-06-12 | 窗口边框阴影显示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105930037A true CN105930037A (zh) | 2016-09-07 |
CN105930037B CN105930037B (zh) | 2018-12-28 |
Family
ID=56834039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610417380.8A Active CN105930037B (zh) | 2016-06-12 | 2016-06-12 | 窗口边框阴影显示方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10636191B2 (zh) |
EP (1) | EP3470967B1 (zh) |
CN (1) | CN105930037B (zh) |
ES (1) | ES2890828T3 (zh) |
WO (1) | WO2017215247A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106814933A (zh) * | 2016-12-15 | 2017-06-09 | 广州视源电子科技股份有限公司 | 窗口阴影显示方法及装置 |
WO2017215247A1 (zh) * | 2016-06-12 | 2017-12-21 | 广州视睿电子科技有限公司 | 窗口边框阴影显示方法及装置 |
CN110032372A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种创建窗口边框的方法、装置及计算机设备 |
CN112486927A (zh) * | 2019-09-11 | 2021-03-12 | epro 股份有限公司 | 机器健康数据的压缩 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009154910A2 (en) * | 2008-06-21 | 2009-12-23 | Microsoft Corporation | Transacted double buffering for graphical user interface rendering |
CN103473077A (zh) * | 2013-09-27 | 2013-12-25 | 珠海市君天电子科技有限公司 | 丰富应用程序主窗口显示界面的方法及装置 |
CN104572271A (zh) * | 2015-02-04 | 2015-04-29 | 北京瑞星信息技术有限公司 | 多标签页浏览器防假死的方法和系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5388202A (en) * | 1990-02-02 | 1995-02-07 | Viacom International Inc. | Method and apparatus for generating window borders having pictorial frame elements |
US7168048B1 (en) * | 1999-03-24 | 2007-01-23 | Microsoft Corporation | Method and structure for implementing a layered object windows |
US6549218B1 (en) * | 1999-03-31 | 2003-04-15 | Microsoft Corporation | Dynamic effects for computer display windows |
CA2537229C (en) * | 2003-05-14 | 2012-10-16 | Collaborative Sciences And Technology, Inc. | Persistent portal |
US20060031779A1 (en) * | 2004-04-15 | 2006-02-09 | Citrix Systems, Inc. | Selectively sharing screen data |
US20060059432A1 (en) * | 2004-09-15 | 2006-03-16 | Matthew Bells | User interface having viewing area with non-transparent and semi-transparent regions |
US7900158B2 (en) | 2005-08-04 | 2011-03-01 | Microsoft Corporation | Virtual magnifying glass with intuitive use enhancements |
US20070139430A1 (en) * | 2005-12-21 | 2007-06-21 | Microsoft Corporation | Rendering "gadgets" with a browser |
US9804727B2 (en) * | 2010-03-09 | 2017-10-31 | Freedom Scientific, Inc. | Flexible display of visual content on multiple display devices |
US20120042275A1 (en) * | 2010-08-10 | 2012-02-16 | Microsoft Corporation | Cloning specific windows on a wireless display surface |
CN102915349A (zh) | 2012-09-27 | 2013-02-06 | 北京奇虎科技有限公司 | 在浏览器中显示网页的方法及在浏览器中显示的网页组件 |
CN103631893B (zh) | 2013-11-15 | 2019-06-04 | 北京奇虎科技有限公司 | 一种浏览器控制方法和浏览器 |
CN105930037B (zh) | 2016-06-12 | 2018-12-28 | 广州视睿电子科技有限公司 | 窗口边框阴影显示方法及装置 |
-
2016
- 2016-06-12 CN CN201610417380.8A patent/CN105930037B/zh active Active
- 2016-12-29 US US16/308,728 patent/US10636191B2/en active Active
- 2016-12-29 EP EP16905354.3A patent/EP3470967B1/en active Active
- 2016-12-29 ES ES16905354T patent/ES2890828T3/es active Active
- 2016-12-29 WO PCT/CN2016/113224 patent/WO2017215247A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009154910A2 (en) * | 2008-06-21 | 2009-12-23 | Microsoft Corporation | Transacted double buffering for graphical user interface rendering |
CN103473077A (zh) * | 2013-09-27 | 2013-12-25 | 珠海市君天电子科技有限公司 | 丰富应用程序主窗口显示界面的方法及装置 |
CN104572271A (zh) * | 2015-02-04 | 2015-04-29 | 北京瑞星信息技术有限公司 | 多标签页浏览器防假死的方法和系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017215247A1 (zh) * | 2016-06-12 | 2017-12-21 | 广州视睿电子科技有限公司 | 窗口边框阴影显示方法及装置 |
US10636191B2 (en) | 2016-06-12 | 2020-04-28 | Guangzhou Shirui Electronics Co. Ltd. | Method and apparatus of displaying window border shadow |
CN106814933A (zh) * | 2016-12-15 | 2017-06-09 | 广州视源电子科技股份有限公司 | 窗口阴影显示方法及装置 |
WO2018107854A1 (zh) * | 2016-12-15 | 2018-06-21 | 广州视源电子科技股份有限公司 | 窗口阴影显示方法及装置 |
CN106814933B (zh) * | 2016-12-15 | 2019-08-13 | 广州视源电子科技股份有限公司 | 窗口阴影显示方法及装置 |
CN110032372A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种创建窗口边框的方法、装置及计算机设备 |
CN112486927A (zh) * | 2019-09-11 | 2021-03-12 | epro 股份有限公司 | 机器健康数据的压缩 |
Also Published As
Publication number | Publication date |
---|---|
EP3470967A1 (en) | 2019-04-17 |
EP3470967A4 (en) | 2019-10-02 |
ES2890828T3 (es) | 2022-01-24 |
US10636191B2 (en) | 2020-04-28 |
WO2017215247A1 (zh) | 2017-12-21 |
US20190147634A1 (en) | 2019-05-16 |
EP3470967B1 (en) | 2021-08-25 |
CN105930037B (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105930037A (zh) | 窗口边框阴影显示方法及装置 | |
AU2008207617B2 (en) | Display updates in a windowing system using a programmable graphics processing unit | |
Shin et al. | View types and luminance effects on discomfort glare assessment from windows | |
EP2843627A1 (en) | Dynamically adjustable distance fields for adaptive rendering | |
CN105869579A (zh) | 背光亮度调整方法、装置及显示终端 | |
CN103473077A (zh) | 丰富应用程序主窗口显示界面的方法及装置 | |
CN106531123A (zh) | 画面亮度调整方法及画面亮度调整装置 | |
CN102402939A (zh) | 等离子显示器及其控制方法和装置 | |
CN106126229A (zh) | 特效生成方法及装置 | |
CN106814933B (zh) | 窗口阴影显示方法及装置 | |
CN104103045A (zh) | 终端的高斯模糊处理方法和系统 | |
CN106970681A (zh) | 书写显示方法及其系统 | |
CN114282285A (zh) | 一种基于人眼视觉特性的可视化大屏辅助设计方法 | |
CN102074025B (zh) | 一种图像风格化绘制方法及装置 | |
CN107256696B (zh) | 液晶显示装置的显示控制方法及显示控制系统 | |
CN102073468B (zh) | 一种基于视窗系统实现图像边缘融合方法 | |
CN103593822B (zh) | 对数据图像进行磨砂特效处理的方法和装置 | |
US9135866B2 (en) | Display apparatus and control method thereof | |
CN105575339A (zh) | 显示方法以及显示装置 | |
CN106652044A (zh) | 一种虚拟场景建模方法及系统 | |
Anthierens et al. | A smart sensor to evaluate visual comfort of daylight into buildings | |
Clevenger et al. | Managing daylight in airports | |
CN104391699B (zh) | 一种多窗口层的动态处理方法及系统 | |
CN107836014A (zh) | 动画显示装置以及动画显示方法 | |
CN106896548A (zh) | 一种显示装置及其驱动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |