CN101288104A - 动态视窗分解 - Google Patents

动态视窗分解 Download PDF

Info

Publication number
CN101288104A
CN101288104A CNA2004800013383A CN200480001338A CN101288104A CN 101288104 A CN101288104 A CN 101288104A CN A2004800013383 A CNA2004800013383 A CN A2004800013383A CN 200480001338 A CN200480001338 A CN 200480001338A CN 101288104 A CN101288104 A CN 101288104A
Authority
CN
China
Prior art keywords
attribute
content
desktop
color
basic
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
Application number
CNA2004800013383A
Other languages
English (en)
Other versions
CN101288104B (zh
Inventor
S·汉吉
V·坦
G·贝穆德斯
G·D·斯韦德博格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101288104A publication Critical patent/CN101288104A/zh
Application granted granted Critical
Publication of CN101288104B publication Critical patent/CN101288104B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

揭示了用于在计算机上使用合成桌面模型操作系统描绘桌面的方法和系统。在接收来自应用程序的基本对象和一个或多个内容对象的内容对象信息之后,合成桌面视窗管理器将视窗绘制到缓存存储器,并利用先进的图形硬件和视觉效果来基于在其上绘制视窗的内容而绘制视窗。每个视窗的框架部分可通过基于在其上显示框架的桌面内容而对具有毛玻璃外观的位图进行象素阴影来产生。提供继承支持使得操作系统可绘制和描绘由继承应用程序产生的视窗,从而看起来与非继承应用程序视窗相一致。

Description

动态视窗分解
技术领域
本发明一般涉及计算机操作系统的图形用户界面,尤其涉及提供在每个视窗基础上允许每个视窗中具有多个和/或不规则形状的客户和非客户内容区域的可能性的一种机制。
背景技术
计算机操作系统通常具有向终端用户提供图形用户界面(GUI)的外壳。该外壳由提供用户和操作系统之间直接通信的一个软件组件或其组合组成。图形用户界面通常提供图形的面向图标和/或菜单驱动的环境以使用户与操作系统交互,并常常基于桌面样式。更具体地,图形用户界面被设计成模拟在书桌上工作的真实世界行为。桌面环境通常占据了单个显示装置的整个表面,或可横亘多个显示装置,并提供诸如图标、菜单、光标以及视窗等辅助的用户界面对象。
在由桌面环境提供的各类描绘对象中,有称为视窗的屏幕的视觉上勾划出的区域。通常视窗致力于唯一的用户动作,并由第三方软件应用程序或系统应用程序创建和管理。每个视窗像它是在其特定应用程序控制下的虚拟显示装置一样独立地动作并显示其内容。通常视窗可交互式地调整尺寸、在显示器上移动、以及以堆栈顺序排列以便全部或部分地彼此堆叠。在某些视窗环境中,视窗可假设谨慎的视觉或动作状态,诸如尺寸最小化为图标或尺寸最大化以占据整个显示表面。桌面视窗的集合通常被赋予显示它们的从上到下的顺序(在本领域中被称为Z-顺序),籍此任何视窗参照Z-顺序覆盖占据屏幕上同一投射位置的比自己低的所有其它视窗。单个选定的视窗在任何给定时间都具有“焦点”,并可接收用户输入。用户可通过用鼠标或其它定向装置点击视窗,或通过采用系统定义的键盘热键或按键组合把输入焦点指向另一视窗。这使用户能以类似于管理书面文档或其它可在物理桌面上任意堆放或排列的条目的方式,来用多个应用程序进行有效的工作。
许多现有图形用户界面桌面实现的缺点是它们用图形描绘技术呈现视觉丰富内容或开发改进的有限能力。这种改进包括物理模拟的(灯光、阴影、纹理、透明、反射、以及折射)两维及三维内容的实时描绘,以及平滑高性能的动画。与在桌面上利用图形描绘改进可用的有限服务相反,在
Figure A20048000133800061
品牌操作系统和类似操作系统外壳的图形用户界面中运行视窗或全屏的某些应用程序中视觉丰富内容是可能的。呈现这种内容的应用程序类型是带有实时3D动画和效果的视频游戏、诸如光线跟踪器的先进图形创作工具、以及先进的2D和3D出版应用程序。由于这些程序的视觉输出被限制到其应用程序视窗的内容区域或描绘全屏幕以排除其它视窗和桌面本身,该应用程序的丰富图形输出决不会有益于该桌面环境的呈现。
计算机操作系统采用一软件层,负责管理诸如图标、菜单、光标、示图和桌面的用户界面对象;仲裁来自诸如鼠标和键盘的输入装置的事件;并向软件应用程序提供用户界面服务。该软件层可被称为桌面视窗管理器(DWM)。桌面视窗管理器(DWM)的描绘逻辑、输入事件路由、以及应用程序编程接口(API)共同体现了用户界面政策,而该政策定义了操作系统的整体的用户体验。缺少用于呈现的丰富可视桌面的主要原因是DWM管理和描绘桌面的方法。现有的DWM实现采用“无效”模型来描绘桌面,该模型主要从需要节约视频和系统存储器资源、以及CPU和GPU带宽发展而来。
在无效模型中,在调节视窗尺寸或移动视窗时,或在应用程序想要重画全部视窗或其一部分时,显示的受影响部分是“无效”的。DWM在内部使受视窗尺寸或移动影响的区域无效,其中尝试重画其自身视窗的全部或一部分的应用程序通过API命令操作系统使其视窗的特定区域无效。在任一情形中,通过确定屏幕上更新所真正需要的被请求区域子集,DWM处理无效请求。通常通过查询所持有的以下列表DWM来完成它:与目标视窗相关联的交叉区域、在目标之上的其它视窗、与受影响视窗相关联的剪辑区域、以及显示的可视边界。DWM随后以被排斥的从上到下顺序向每个受影响应用程序发送指定需要更新区域的绘制消息。应用程序可选择认同或略去该指定区域。任何在本地更新区域之外由应用程序执行的绘制,可使用由诸如图形装置接口(GDI)的低级图形描绘引擎所提供的服务由DWM自动剪辑。
无效消息传送模型的优点是对显示存储器的节约。即,基于无效的DWM仅需维持足够的缓存存储器以绘制单个桌面,而无需“记得”什么可在当前显示内容之下。然而,因为桌面上的视窗以从上到下顺序呈现,通过GDI对诸如非长方形视窗和丰富2D动画的特征需要包括复杂区域的CPU高强度计算和/或显示表面的扩展性采样(从而限制了基于硬件图形加速的可能性),其中诸如透明度、阴影、3D图形和高级的灯光效果的其它特征是非常困难并极为耗费资源的。
作为示例,曾称为USER的微软
Figure A20048000133800071
XP视窗管理器从
Figure A20048000133800072
品牌操作系统的出现起就作为图形用户界面子系统(现称为Win32)的主要组件。USER采用两维图形装置接口(GDI)图形描绘引擎来描绘显示。GDI是Win32的其它主要子组件,并基于在原始
Figure A20048000133800073
品牌操作系统中提出的描绘技术。USER使用与GDI剪辑区域和2D绘制图元相一致的无效消息传递模型来向显示器描绘每个视窗。描绘桌面中USER的主要动作包括,如通过桌面描绘的无效模型,对需要视觉更新的显示区域的标识、以及通知应用程序要绘制的需要和位置。
桌面描绘的下一开发是被称为桌面合成的从上到下描绘方法。在一合成DWM或CDWM中,桌面从底层一直绘制到顶层。即,先绘制桌面背景,随后是直接位于桌面之上的图标、文件夹及内容,然后是再上一层的文件夹,等等。通过由下向上地描绘桌面,每个迭代层可使其内容基于其下层次。然而,由于CDWM在存储器中维护有绘制到桌面的每个条目的副本,桌面合成是存储器耗用过程。在近来使先进视频硬件和计算机存储器更易承受的市场变化和制造技术之前,仅有商用、昂贵、高端的计算系统能够实现合成引擎,诸如用于准备电影的特殊效果。
中端和低端计算机视频硬件的发展大部分已由流行操作系统中可用的图形服务推动。然而,流行操作系统中可用的图形服务因为各种原因并未得到显著的提升,包括需要保持与较旧应用程序软件的兼容性以及视频硬件可承受范围的有限能力。然而,最近实时3D计算机游戏已超过操作系统成为发展零售视频硬件的主要市场动机,该零售视频硬件在短期内已达到了特别的复杂度。实时、基于硬件的3D加速现在以合理的价格为客户可用。因而,一旦图形硬件特征被视为高度先进,诸如加速纹理和光线算法,3D变换和直接编程GPU的能力就可容易得到了。目前,通常仅有游戏软件和高度专业化的图形应用程序会积极开发这种特征,且为了这么做它们必须绕过继承的Win32视窗管理器(USER)和GDI。
实现合成桌面模型的另一障碍是,为了以无效模型DWM使用而编写的继承应用程序在合成环境中不会适当地发挥功能。这是因为继承应用程序的内核描述逻辑是基于操作系统的无效模型DWM API。即,与直接响应于用户交互或内部状态中变化的描绘视窗内容不同,继承应用程序仅在接收由操作系统或其自己的无效请求生成的绘制信息之后才会进行绘制。最困难的补救办法包括设计出一种方法,通过该方法合成DWM代表应用程序代替继承GUI平台。更简单的可选方案包括将应用程序从合成桌面环境中排除出来(本领域中称为“沙盒”的方法),或简单地完全放弃继承应用程序的兼容性。
目前,驻留于非客户区域的UI元素不能由应用程序更改。另外,没有直接和稳固的方法来查询、更改、或有选择地覆盖标准框架布局,或独立地描绘非客户元素。例如,应用程序没有实用的方法来重新布置系统图标或非客户按钮(例如恢复、最大化、最小化、关闭)并添加或追踪定制的非客户按钮。此外,应用程序被限制为将应用程序内容置于单个长方形区域中(客户区域),除非该应用程序需要假设视窗整个非客户区域(以及客户区域)的描绘和点击测试责任。在现有USER框架中放松任一这些限制,都将致使预期并依赖于它们的许多流行继承应用程序不可用。
因而,提供使用合成模型来描绘桌面的丰富、全特征的操作系统,以及提供允许动态视窗体系结构的桌面视窗管理器,将是本领域中的一个进步。提供允许动态视窗体系结构并支持继承应用程序的桌面视窗管理器,从而继承应用程序也在动态体系结构模型中工作则将会是本领域中的另一进步。
发明内容
以下提出了本发明的简化归纳,以便提供对本发明某些方面的基本理解。该归纳不是本发明的扩展性纵览。它并非旨在标识本发明的关键或主要元素,或旨在提出本发明的范围。以下归纳仅以简化显示呈现了本发明的某些概念,作为以下提供的更详细描述的绪论。
为了克服上述现有技术的限制,并克服在阅读和理解本说明书后变得显然的其它限制,本发明被引导到提供先进图形和描绘能力的合成桌面。
本发明的第一说明性方面提供了用动态分解绘制视窗的数据处理系统。该数据处理系统具有存储视窗属性的存储器,这些视窗属性对每个存储属性的视窗包括对基本对象的属性以及对至少一个内容对象的属性。该数据处理系统还具有基于存储属性的每个视窗的视窗属性而组合桌面的合成桌面视窗管理器软件模块。
本方面的另一方面提供用于存储具有非同一、动态分解的各视窗的视窗信息的数据结构。该数据结构包括存储对视窗的基本对象的基本对象属性的第一数据字段,以及存储对该视窗一个或多个内容对象的内容对象属性的第二数据字段。
附图说明
本发明的更全面理解和优点可通过参阅以下描述和附图获取,其中类似标记号表示类似特征,且其中:
图1A示出了可用于本发明说明性实施例的一个或多个方面的操作环境。
图1B示出了在一合成桌面平台的说明性实施例中各组件之间功能和服务的分布。
图2根据本发明一说明性方面示出一合成方法。
图3根据本发明一说明性方面示出一视窗。
图4根据本发明一说明性方面示出一视窗合成方法的一部分。
图5根据本发明一说明性方面示出一描绘的毛玻璃帧视窗。
图6示出一带有动态视窗分解的视窗。
图7示出了在调整网格尺寸期间使用的各区域。
具体实施方式
在各个实施例的以下描述中要参阅附图,这些附图形成了说明书的一部分并在其中作为可实践本发明的各个实施例的示图而示出。要理解可利用其它实施例,并可作结构和功能更改而不背离本发明的范围和精神。
本发明提供将桌面合成用作其优选描绘模型的桌面视窗管理器(DWM)。该发明桌面视窗管理器在此被称为合成桌面视窗管理器(CDWM)。合称为统一合成引擎(UCE)的CDWM和合成子系统在桌面上提供了3D图形和动画、阴影、透明度、高级的打光技术、以及其它丰富的视觉特征。在此使用的合成描绘模型从本质上消除了描绘中的无效步骤,并最小化或消除了传送绘制和其它通知消息的需要,因为该系统保留的足够的状态信息用以按需描绘每个视窗。
说明性操作环境
图1示出了本发明可在其中实现的适当的计算系统环境100的示例。该计算系统环境100仅是适当计算环境的一个示例,并非旨在提出对本发明使用或功能性范围作任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。
本发明也可在很多其它通用或专用计算系统环境或配置中使用。适于本发明使用的众所周知的计算系统、环境、和/或配置的示例包括,但不限于,个人计算机、服务器计算机、诸如个人数字助理(PDA)、输入板PC或膝上型PC的手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费品电器、网络PC、小型计算机、大型机、包括任一种以上系统或设备的分布式计算环境等等。
本发明可以计算机可执行指令的一般上下文进行说明,诸如由计算机执行的程序模块。一般而言,程序模块包括执行具体任务或实现具体抽象数据结构的例程、程序、对象、组件、数据结构等等。本发明还可在任务由经通信网络连接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可置于包括存储器存储设备的本地和远程计算机存储介质中。
参照图1,实现本发明的示例性系统包括以计算机110形式的通用计算设备。计算机110的组件可包括,但不限于,处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、周围总线、以及使用多种总线体系结构的任一种的局部总线。作为示例,而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微信道体系结构(MCA)总线、扩展ISA(EISA)总线、视频电子标准协会(VESA)局部总线和也称为Mezzanine总线的周围部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的易失性和非易失性介质、可移动和不可移动介质,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多功能光盘(DVD)或其它光学存储技术、磁带盒、磁带、磁盘存储或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常在诸如载波或其它传输机制的已调制数据信号中体现计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“已调制数据信号”意指用在信号中编码信息的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的有线介质,和诸如声学、射频、红外线和其它无线介质的无线介质。以上任何的组合也应包括在计算机可读介质的范围中。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机可读介质。包含有助于计算机110如起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)133通常存储在ROM 131中。RAM 132通常包含可被处理单元120立即访问和/或当时正被操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136、和程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图1图示了读取和写入不可移动、非易失性磁性介质的硬盘驱动器141,读取和写入可移动、非易失性磁盘152的磁盘驱动器151,读取和写入可移动、非易失性光盘156,诸如CD-ROM或其它光学介质的光盘驱动器155。其它也用在示例性计算环境中的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,如磁带盒、闪存卡、数字化多功能光盘、数字化视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口与系统总线121连接,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可移动存储器接口与系统总线121连接。
如上所述并如图1所示的盘驱动器及其相关联的计算机存储介质为计算机110提供计算机可读指令、数据结构、程序模块、和其它数据的存储。在图1中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146、和程序数据147。注意这些组件可以与操作系统134、应用程序135、其它程序模块136、和程序数据137相同或不同。在此给予操作系统144、应用程序145、其它程序模块146、和程序数据147的序号不同至少说明他们是不同的副本。用户可通过输入装置如键盘162、和通常指鼠标、跟踪球或触摸板等定位装置161向计算机110输入命令和信息。其它输入装置(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星接收器、扫描仪、等等。这些和其它输入设备常常通过与系统总线耦合的用户输入接口160与处理单元120相连,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口连接。监视器184或其它类型的显示设备也可通过诸如视频接口183的接口与系统总线121相连。计算机110还可包括与监视器184一起使用的数字化仪185,以使用户能使用笔输入装置186提供输入。除了监视器,计算机还可包括诸如扬声器189和打印机188的其它周围输出设备,它们通过输出周围接口187相连。
计算机110可以在使用与一台或多台远程计算机,诸如远程计算机180的逻辑连接的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,而且通常包括上述与个人计算机110相关的许多或全部组件,尽管在图1中仅图示了存储器存储设备181。图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、内联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机110通过网络接口或适配器170与局域网171连接。当用于WAN网络化环境中时,计算机110通常包括调制解调器172或其它用于在广域网173,诸如因特网中建立通信的装置。可以是内置式或外置式的调制解调器172与系统总线121通过用户输入接口160或其它适当机制连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1示出了驻留于存储器存储设备181中的远程应用程序182。应当理解,所示网络连接是示例性的,且其它用于在计算机间建立通信连接的技术也可以使用。
说明性实施例
本发明可使用合成桌面视窗管理器(CDWM)来绘制并维护使用合成桌面模型(即从下到上的描绘方法)的桌面显示。该CDWM可将内容保持在缓存存储器区域中以备后来的引用。该CDWM通过从下到上地绘制桌面、从桌面背景开始并以逆向Z顺序遍历堆叠视窗,来组成桌面。在组成桌面时,CDWM可部分地基于在其顶上绘制视窗的内容以及部分地根据其它环境因素(例如光源、反射属性等)来绘制每个视窗。例如,CDWM可使用ARGB格式纹理的α频道来提供视窗的透明度,并可有选择地基于虚拟光源强调部分视窗内容(例如框架)。
CDWM可驻留为操作系统134、144的一部分,或独立于操作系统例如在其它程序模块136、146中驻留。另外,CDWM可依赖于在此称为统一合成引擎(UCE)的下层图形合成子系统,它将在后面描述,并在共未决的申请序列号(律师案号50037.201US01)于2003年10月23日提交题为“用于图形处理系统中统一合成引擎的系统和方法”(“System and Method for a Unified Composition Engine in aGraphics Processing System”)的申请中描述,在此全文引入作为参考。在一说明性实施例中,UCE基于或使用华盛顿州Redmond微软公司的
Figure A20048000133800121
Figure A20048000133800122
技术。在另外实施例中,可使用其它图形合成子系统,诸如基于加州MountainViewSilicon Graphic公司的
Figure A20048000133800123
图形引擎。该UCE使能在桌面上做到3D图形和动画、透明度、阴影、打光效果、颠簸映射、环境映射、以及其它丰富的视觉特征。
图1B示出了根据桌面合成平台一说明性实施例的组件体系结构。合成桌面视窗管理器(CDWM)190可包括应用程序编程接口190a,通过它感知合成应用程序软件191获取CDWM视窗以及内容创建和管理服务;子系统编程接口190b,通过它继承视窗图形子系统192发送影响各个视窗的经重新指向图形输出的变化的更新通知(视窗图形输出重新指向在后面详细描述);以及UI对象管理器190c,它维护用于诸如视窗及其相关联内容的桌面UI对象的Z序库。该UI对象管理器可与主题管理器193通信,以检索与活动桌面主题相关联的资源、对象行为特性、以及描绘度量。
继承特性用户接口子系统192可包括继承视窗管理器192a和继承图形装置接口192b。继承视窗管理器192a为在CDWM出现之前开发的软件应用程序提供无效模型视窗和桌面服务。继承图形装置接口192b向继承应用程序以及继承视窗管理器提供2D图形服务。基于用于描绘桌面的无效模型的继承图形装置接口,可能缺少对3D、硬件加速描绘图元和变换的支持,并可能未固有地支持位图复制和传送操作中每个象素的α频道透明度。总之,继承视窗管理器192a和图形装置接口192b继续进行服务,以降低希望更新其操作系统但不牺牲使用无效模型来运行其喜爱或重要的软件应用程序能力的用户的所有者成本。为了以增加极少甚至察觉不到的终端用户损失的方式来获得继承应用程序视窗与感知合成应用程序视窗的无隙、并行集成,继承图形用户接口子系统192在合成过程中可有积极的参与。实际上,继承应用程序察觉到的平台环境最好不作改变以便避免丧失其在合成桌面上的稳固性,然而向桌面描绘继承视窗的基本方式将有根本的改变。本发明描述如何通过在此描述为视窗图形输出的重新指向的特征添加来达到。
统一合成引擎(UCE)194可通过编程接口194a来服务CDWM发出的描绘指令和结合资源。在广泛意义上,与CDWM相关的UCE角色类似于与继承输出管理器192a相关的继承图形装置接口192b角色。UCE编程接口194a向CDWM以及最终向应用程序提供与广泛图形服务的接口。这些UCE服务包括资源管理、来自多显示情形的封装、以及远程桌面支持。
CDWM写操作和描绘操作之间的图形资源争夺由内部资源管理器194b仲裁。对资源更新和描绘服务的请求由编程接口子组件194a置于UCE请求队列194c上。这些请求可由描绘模块194d在与安装在系统上的显示装置刷新率相一致的间隔上进行异步处理。因而,UCE194的描绘模块194d可将CDWM请求从队列中取出,按需访问并操纵存储在资源管理器194b中的资源,并组装显示特定描绘指令并将其传送给3D图形接口195。
向多个显示描绘桌面需要抽象在刷新率、象素格式支持、以及不同显示装置之间的装置坐标映射上的差异。UCE可提供这种抽象。
UCE还可负责在远程桌面配置中通过网络连接上传递图形。为了有效地将一特定系统的桌面遥控为另一桌面,应避免资源争夺,应进行性能优化,且安全应当是稳固的。这些责任也可落于UCE上。
3D图形接口195可包括下层的即时方式(无阶段的)图形服务,诸如
Figure A20048000133800141
等。3D图形接口的目的可以是提供特定图形硬件配置的各特征之上的抽象接口。该3D图形接口可服务单个显示装置;UCE可通过多个装置驱动器196在多显示系统中多个图形输出装置197之间解析并分发CDWM的描绘指令。
应注意,图1B中所示的组件体系结构是说明性实施例的。该图旨在说明本发明可包括的各个功能。根据平台的能力和所需特征集,这些功能可在比图中呈现的更少或更多数量的软件组件中分布。例如,缺少主题管理的系统可从系统中导出所有库存资源,比如由CDWM本身管理的静态资源,而不是从独立的主题管理器中导出。允许可插拔输出管理器的平台可用可插拔输出管理器接口来替换应用程序编程接口190a,以便抽象合成UI对象和资源管理的细节。另一可能变化是如果不需要继承应用程序兼容性,则可消除子系统编程接口190b。图1B所示UCE 194的子组件可拆分成合并入CDWM本身或集成到3D图形接口的各独立进程。因此大范围的特定组件设计是可能的,其中每一种都能完成组成本发明的全部范围功能或其子集。
图2根据本发明一说明性方面示出了用于执行桌面合成的一般方法。步骤201到205描述了使用合成桌面示出管理器(CDWM)API以创建和管理视窗及视窗内容的感知合成应用程序的交互。步骤207到209陈述继承的无效模型视窗管理器应用程序和CDWM之间的交互以合成继承视窗的内容。
在步骤201,合成桌面视窗管理器(CDWM)接收来自感知合成应用程序的请求以(1)创建一合成视窗以及(2)附加一内容对象。本发明未限于每个视窗单个内容对象;应用程序可通过CDWM API动态地创建任何数量的内容对象,并将其附于视窗(以及分开并消除),如下所述。内容对象包括特定尺寸的光栅平面、用作映射到应用程序或系统定义网格的散射纹理的象素格式、以及可任选的附属资源,诸如附加纹理(灯光映射、镜面映射、颠簸/正常映射等)、灯光以及象素阴影。散射内容纹理的象素格式可以是由安装在系统上的视频硬件所支持的任一可用格式,但为了目前的说明,可以是32比特ARGB。当请求该格式时,应用程序可隐含地知道,可使用α(A)频道来改变内容象素的透明度,从而在用最终描绘上源象素调制的大量桌面背景信息上提供精密控制。在步骤203,CDWM将一状态框分配给视窗,在其上可附CDWM实现的内容对象。该内容对象分配所请求的资源或附加由应用程序传送的资源,然后向UCE安排这些资源以允许根据UCE更新请求进行轻松的访问。在步骤205,应用程序向CDWM通知主动提供的视窗或视窗内容的变化。这些变化可影响任一视窗或内容的状态,但为了简便,本说明书陈述了三种普通更新请求:内容尺寸、视窗位置或大小、或对内容散射纹理的象素的变化。
合成继承视窗的过程从桌面合成初始化开始,其中CDWM 190将请求发送给继承视窗和图形子系统192,以将每个继承视窗的图形输出重新指向一临时存储位置(步骤207)。步骤207可更为一般地描述为将继承视窗和图形子系统置入“合成模式”,其中每个独立视窗被重新指向一单独的存储器缓存。在一说明性实施例中,继承图形用户接口子系统192将涉及描绘视窗的图形指令输出重新指向到与该视窗相关联的位图存储器平面。然而,本发明包括在为目标显示装置合成下一视频帧的过程期间保留固有的绘制指令和相关联参数,并在UCE中执行这些指令的能力。这些重新指向缓存器(平面或绘制指令框)可由CDWM或继承视窗管理器192a管理,但为了本说明,平面资源管理集中在CDWM中。每个重新指向缓存器构成或用以产生视窗的散射内容纹理资源。继承视窗管理器192a无需调用CDWM视窗和内容创建API;用于通知的继承子系统-CDWM信道与应用程序接口的不同,且CDWM从现有的继承视窗属性中导出合成视窗图形(框架和边界风格、标题等)和状态(隐藏/显示、最小化/最大化等)。在步骤209,继承视窗管理器192a向CDWM190通知任何可使视觉更新成为必要的影响经重新指向的视窗内容纹理的变化。
在步骤211、219、以及223,CDWM 190分别从尺寸、位置/大小以及象素级别纹理更新的请求以及动作中进行辨别。在尺寸更新上(步骤211),CDWM首先判断是否有一框架与该目标视窗相关联(步骤213)。如果一框架与目标视窗相关联(步骤215),则CDWM基于感知合成应用程序直接提供的两维或三维内容、或基于继承和CDWM视窗度量及经重新指向继承平面的经更新尺寸的组合,来确定框架元的适当尺寸和方向。当已确定框架尺寸时,CDWM对框架网格中顶点的位置信息作出适当改变,并向UCE转发顶点数据缓存。UCE将网格更新指示和新的顶点信息置于异步处理的队列上。如果视窗没有框架,则绕过步骤215。在有框架或无框架视窗的情形中,影响内容区域的尺寸变化可导致CDWM调整内容网格的尺寸,并将适当的网格更新请求和数据排列在UCE中(步骤217)。
在位置(包括旋转)或大小更新中(步骤219),CDWM确定新的变换参数,并将变换资源更新请求以及数据排列在UCE中用于异步处理(步骤221)。资源最少由4×4的变换矩阵组成,但可包含支持经过滤变换的附加数据。
在步骤223中,CDWM接收涉及散射内容纹理的象素数据变化的更新请求,即应用程序已在其视窗中更新其内容。在步骤225,CDWM通过将新的象素信息排对到UCE用于异步处理来服务该请求。
本领域技术人员将理解,可支持除图2所示请求之外的其它更新请求。例如,对视窗图标或标题文本的改变还需要重新绘制分别与视窗相关联的CDWM管理图标或标题内容对象。视窗输入焦点可在框架的外表中得到反射,因而在继承视窗情形中,继承视窗管理器可向CDWM传送输入焦点变化更新,该更新可相应地重新描绘框架以及可能的其它内容。
在步骤227,UCE处理来自CDWM的输入合成和资源更新,且在与参与桌面合成的每个活动视频图形适配器的刷新率相一致的间隔上,将桌面(或多显示器配置中的适当部分)重新描绘到显示器尺寸的反向缓存。这使用由3D图形引擎(诸如微软
Figure A20048000133800161
)提供的中间模式描绘服务来完成,而该引擎又将桌面传递到主要显示平面。
为了绘制3D视窗,CDWM可使用各种组件来定义视窗分解,包括一基本内容对象以及一个或多个子内容对象。该基本内容对象定义视窗框架或边界,并由基本几何图形、基本范围、基本材质属性以及基本内容边缘组成。这些基本和子内容对象的每一个都可由系统完全定义和管理,或者在定制内容元素的情形中可由应用程序管理。内容对象在后面详述。
图3根据本发明一说明性方面示出一应用程序视窗。应用程序视窗301可包括各个区域和组件。视窗301的框架或基本内容303可包容子内容,包括按钮305(例如用以恢复、最大化、最小化、关闭视窗等)、指示性图标307、滚动条309、菜单条311、以及视窗标题文本313。主要内容对象区域315可源自从继承视窗和图形用户接口子系统中获取的重新指向缓存器,或可被创建并附于标准基本内容上并由感知合成所有的应用程序进行描绘。本领域技术人员将理解,图3仅是基本视窗元素的说明,并可另外或有选择地使用其它或不同的视窗元素。另外,视窗框架元素另选地由一应用程序提供,例如以向应用程序提供不同的观感。示例会是,何处应用程序提供滚动条作为定制子内容对象,从而它们表明该应用程序特有的表现和行为。此外,应用程序可使用CDWM API来选择移除或重新配置一个或多个库存框架元素。应用程序无需限于作为现有技术中普遍限制的单个主要内容区域。
CDWM可支持与单个视窗相关联的多个应用程序创建的和描绘的内容区域。为了提供给应用程序提供更独特用户体验的能力,在本发明一个或多个实施例中CDWM提供绘制视窗的方式中的灵活性。即,CDWM可通过使各应用程序能定义多个定制内容对象而使应用程序能改变视窗的缺省分解,其中每个对象具有任意形状而不是将每个应用程序限制在单个长方形客户内容区域中。
因而,每个CDWM视窗可包括一基本内容对象(即框架)和一个或多个子内容对象的集合。每个内容对象可由独特的内容特性集来定义,且可被配置成可选地接收键盘和鼠标事件。CDWM将相关的鼠标点击测试点映射到应用程序定义的内容局部的3D坐标中,并向应用程序传递鼠标事件通知。内容对象可完全由系统管理,或者在定制内容元素的情形中可由应用程序管理。系统管理的内容对象的示例包括应用程序指示性图标、框架按钮(例如最小化、恢复、关闭)、标题文本、以及某些菜单条和滚动条。应用程序管理的内容对象包括应用程序描绘其主要视觉输出的那些内容对象,例如字处理器的文本、电子制表应用程序的数字网格、或照片编辑应用程序的图像。
内容纹理可以是由系统管理(或在定制内容情形中由应用程序管理)的位图。可用一次重复将内容纹理线性地映射到内容几何图形中。纵横比可由内容几何图形确定,而纹理坐标则在内容几何图形中展现。内容的放大可用影响内容纹理到其几何图形的映射的缩放变换来控制。CDWM可提供一种通过它用户可调整放大比例的缺省交互式机制,诸如系统提供的菜单选项、滑条控制、和/或鼠标和键盘组合。
在每次重新描绘之前,其散射纹理是支持每个象素α格式的内容平面可在应用程序(在库存内容对象情形中为系统)的判断之下由系统初始化为零α因此,下层的基本内容对象可在内容平面的未绘制区域中显示。这提升了编程模型和用户体验,因为应用程序无需在描绘之前擦除内容平面,且使用户不用面对视窗中闪烁和陈旧的或未绘制的区域。
在某些实施例中,某些内容对象,特别是应用程序描绘其主要图形输出的内容对象可不具有与其相关联的材质属性,因为具有以打扰用户或以其它方式干扰用户动作的方式与灯光或环境交互的内容不是所希望的。在这些实施例中,内容对象的视觉表现可完全由其纹理、几何图形、以及可能每个顶点或每个象素的α值来确定。
图6示出了具有动态非标准分解的视窗601的示例,如下所示。视窗601具有非标准形状(即非长方形)的基本框架对象603、位于非标准位置(不是视窗的右上角)的非标准形状(即非长方形)的框架按键对象605、位于非标准位置(不是视窗的左上角)的系统提供的指示性框架特别对象607、以及也位于非标准位置(不是框架顶端左对齐)的框架视窗标题对象613。在图6中,与视窗相关联的应用程序已定义了两个主要内容对象区域615a和615b。主要内容对象区域615a是常规(即长方形)形状,而主要内容对象区域615b则是非常规非长方形的形状。视窗601还可包括应用程序定义的例如在浏览环境中分别提供向后和向前导航控制的框架按键对象617和619。
CDWM可将应用程序视窗301的基本部分描绘为三维(3D)对象。3D网格元可被用以定义视窗对象的形状(基本几何图形),主要散射纹理可被映射到网格的3D几何图形,而可任选的材质属性在描绘过程的应用中,包括灯光、阴影、折射、模糊以及其它包括辅助纹理的特定效果参数和资源。辅助纹理可被用作本领域中众所周知的图形效果的资源,以便提供桌面环境中与光源、光标、以及其它UI对象的“活动”的物理上模拟的交互。因而,纹理可用作每个象素3D正常信息的源(正常/颠簸映射)、灯光遮罩(周围、散射、以及镜面光过滤器)、反射源(例如当在视窗上盘旋时的光标反射)、静态环境映射等等。
基本几何图形的顶点格式可选地包括ARGB格式的32比特散射色彩组件,以及用于将最多n个纹理映射到网格几何图形的纹理坐标对{tun,tvn},如上所述。如本领域中已制定的,tu和tv的每个整数增量可定义纹理在相应尺度上的一次重复。例如,范围从{0.0,0.0}(纹理左端,顶部)到{1.0,1.0}(纹理右端,底部)的值表示在整个网格上的一次重复,而从{0.0,0.0}到{6.0,4.0}则定义在x尺度中的6次重复和y尺度上的4次重复。
内容范围可被定义为一个定义边界范围{xleft,ytop,zfront,xright,ybottom,zback}的三维点对,或者被定义为包含基本几何图形的最小框的坐标。这类似于2D边界视窗长方形{xleft,ytop,xright,ybottom}。三元组的{xleft-xright,,ytop-ybottom,zfront-zback}定义内容范围的宽度、高度和深度。该范围由系统计算和管理,并表示该内容的尺寸和局部位置。
如果视窗对象是可调整尺寸的,操纵该基本内容范围的是通过它CDWM可调整视窗尺寸的方法。为了保存边界和角落的轮廓,可调整尺寸网格中每个顶点的位置可能未根据新范围简单地缩放。为了使能精细控制网格尺寸,预定顶点位置过滤函数以及可应用参数可由应用程序在视窗创建时间指定,或由CDWM选择为缺省。调整过滤函数尺寸的顶点的作用是要确定在改变其边界范围时目标网格中每个顶点如何表现。每个过滤函数应对每个成员顶点确定每维(x,y,z)上的位移方向和大小。
最简单的过滤函数确定方向(正或负)以及大小(与新范围或偏移有关的缩放量等于3D空间中网格边界框6个表面之一的量)。每个顶点在调整尺寸操作中如何动作可在每个顶点、每一维基础上被描述为与顶点本身相关联的属性,或者可为网格以几何图形术语整个地定义。后面方法的一示例是定义6个边缘边界平面的向量{mxleft,mytop,mzfront,mxright,mybottom,mzback},每个平面与网格边界框的平面相关联并有效地将边界框的体积分成27个立方体子区域。边缘值的大小可不管网格尺寸而保持常数,或可基于边界框的初始尺寸进行计算。在一任意网格调整尺寸操作中,上、左、前方的立方体子区域(以{xleft,ytop,zfront,xright,ybottom,zback}为边界)中出现的顶点都根据边界范围上左前方角的大小和方向作一样地偏移。在最中央立方体子区域中出现的顶点(以{mxleft,mytop,mzfront,mxright,mybottom,mzback}为边界)相对该子区域的新范围而缩放。出现在前方中央立方体子区域的顶点相对该子区域新范围在x和y维上缩放,而根据网格前方Z边界平面的相同大小和相同方向作位移。
为帮助理解上述原理,图7示出了两维空间中网格调整尺寸操作的示例。视窗701具有带有圆角半径707的圆角。如果视窗调整尺寸操作仅缩放视窗所基于的网格,圆角半径将随网格缩放。然而,如果调整圆角半径,则圆角的半径可变得太大或太小,并损害用户体验和用户界面的可用性。因而,当调整视窗701的尺寸时,圆角半径最好不作变化。为了防止圆角半径缩放,网格在每一维上(可应用的为x,y,z)都可分成三个分段。因而在本示例中,视窗被分成9个四边形703a-i。在3D空间中,视窗则可被分成27个区域。每一维可均分或不均分,从而允许尺寸相等的区域和尺寸不等的区域。当各区域尺寸不等时,限于边界框内的各区域可做成尽量小以包围不应缩放的物体。
在视窗尺寸调整操作期间,各四边形在由边界框限定四边形的每一维上作偏移,而在由区域间隔705a-d限定四边形的每一维上缩放。例如,区域703a、703c、703g以及703i在X和Y维中的至少一侧由边界框限定,因此区域703a、703c、703g以及703i的网格顶点在调整视窗尺寸时保持与边界框相同的偏移。区域703b和703h在Y(竖直)维中的至少一侧由边界框限定,而在X(水平)维中则仅由区域间隔705限定。因而,区域703b和703h中的网格顶点将保持其在Y维上的偏移,而在X维上缩放。区域703d和703f在X(水平)维中至少一侧由边界框限定,而在Y(竖直)维中则仅由区域间隔705限定。因而,区域703d和703f中的网格顶点将保持其在X维上的偏移,而在Y维上缩放。区域703e在X和Y维中都由区域间隔705限定,因此落于区域703e的网格顶点将在X维和Y维上缩放。本领域技术人员将理解,如前面段落所述,通过包括一个Z维可将该算法扩展为三维。
网格尺寸调整过滤函数的另一变体可解释手动制作的顶点元数据,而不依赖于总体几何结构诸如为边界定尺寸,以判断顶点位置是否在任一方向上缩放或偏移。这种函数可被用以在网格尺寸调整期间保护复杂的平面拓扑,诸如峰和谷。网格调整尺寸的过滤函数的另一变体可使顶点以线性或非线性方式在每一维上位移,其中判别比特和函数系数作为每个顶点的元数据被存储。这种函数使能各种效果,诸如伴随网格尺寸调整的线性或非线性、局部化或一般化的凸起或变平。
基本内容边界定义限制子内容的边界。内容边界可以是以像为边界定尺寸一样的方式定义的三维边界。然而,不像为边界定尺寸,内容边界可线性地随视窗缩放而缩放,并可不影响网格尺寸调整。
局部和桌面总体的资源和参数(根据抽象材质属性的值指定)以及象素阴影,包括通过它CDWM可实现物理模拟桌面内容的描绘的数据和机制。
高级内容材质属性定义内容与灯光及周围环境交互的方式。对诸如毛玻璃的复杂材质的描绘可使用在视频硬件中非固有支持的技术。结果,CDWM使用少量预定象素阴影之一来实现材质属性。象素阴影是载入显示硬件的小例程,它基于预定资源集在显示之前操纵象素的值,这些资源包括但不限于光源、纹理、网格元中的顶点以及诸如变换和度量的参数。CDWM可从预定象素阴影的集合中选择适当的阴影以描绘特定的对象材质属性集,它可包括周围色彩(强度和透明度)、散射色彩(强度和透明度)、镜面色彩(强度和透明度)、反射标量、折射指数、散射纹理、以及颠簸纹理,其中每一个在后面描述。桌面总体属性可被用以定义总体环境属性,诸如眼睛位置、总光源、环境映射等等。定义这些桌面总体属性的资源和参数可与基本视窗材质属性一起被转发给3D图形接口,作为描绘视窗之前活动象素阴影的参数。
周围色彩模拟从所有方向上打在对象表面上的光线。作为可应用于任意CDWM管理的UI内容对象的材质属性,周围强度确定接触该对象表面的周围光线的相对量,而32比特ARGB值可被用以指定周围的色彩和透明度。在一说明性实施例中,周围强度的范围可以是从0.0(零周围光线,给予均匀全黑显现)到1.0(均匀分布于该对象上的特定色彩的最大强度)。带有白色周围色彩的周围强度的效果允许对象一般亮度的控制。
散射强度确定在接触对象表面之后在所有方向上发散的有向光线的数量。光线本身由一个或多个有向光或立体光线映射提供。作为可应用于任意CDWM管理的UI内容对象的材质属性,散射色彩可由规定色彩的32比特ARGB值来指定,其中α组件规定散射反射的光线的透明度。散射强度的范围可以是从0.0(没有光线散射反射,给予对象全黑显现)到1.0(所有光线散射反射,根据散射色彩值给予对象阴影显现)。当周围和散射强度值的总和接近于1.0时,被照亮的表面将显现为得到更为现实的模拟。
镜面强度控制多少光线直接从对象表面反射回查看器,并且镜面色彩可被指定为对象的ARGB色彩。光源本身可以是一个或多个有向光线或立体光线映射的形式。作为可应用于任意CDWM管理的UI内容对象的材质属性,高镜面强度值可被用以模拟带有强高亮的发亮表面,而低值则可被用以模拟带有微弱光或无高亮的暗淡光表面。色彩的α组件确定镜面高亮的透明度。
类似于镜像,反射性确定从对象表面直接反射回查看器的光线量。反射与镜像不同,因为反射应用于整个环境而不仅仅是光源。作为可应用于任意CDWM管理的UI内容对象的材质属性,0.0的反射性值在表面上没有环境的反射,而1.0的值在表面上产生类似镜面的环境反射。该环境可使用立体环境映射和鼠标光标来模拟。因而,鼠标光标以及环境的静态调整可从视窗表面反射到由反射强度标量控制的程度。
每个对象的折射指数确定在穿行它的光线传输的角度。可使用Snell规则n1sinθ1=n2sinθ2,其中n1和n2是介质1和2的折射指数,而θ1和θ2分别是相对于平面法线的入射和射出角度。因此如果介质1表示带有赋予折射指数1.0(无折射)的桌面环境,而介质2是视窗基本对象的桌面环境,则折射角度被确定为θobj=sin-1(sinθenv/nobj)。各种可模拟的已知折射指数如下表所示。
  介质   折射指数
  真空   1.00
  冰   1.31
  水   1.33
  玻璃   一般为1.50-1.75
  钻石   2.42
表格1
一旦已确定/计算了折射角度,就可使用它来从背景中选择适当的象素以在对象的可视平面上进行描绘,随后还进行与其它材质属性相关联的处理。为折射实时描绘所做的最优化可结合本领域技术人员所知道的Fresnel技术。
视觉风格(主题)可被用以定义CDWM视觉和行为政策。视觉风格一般指用户可选择的主题,这些主题可指定应用于公共用户接口元素的精细的手工设计图形和行为特性。应用程序可选地覆盖部分这些特性,而其它特性则由对用户界面的一致性感兴趣的系统来有选择地实施。视觉特性包括公共视窗内容的显现,诸如框架区域(基本内容)、非客户按键、以及其它应用程序无关元素。行为特性包括视窗可桌面转换动画,视窗可随鼠标交互地移动或调整尺寸的方式(例如快速移动、粘贴、伸展和限制)、以及其它应用程序无关行为。视觉和行为政策可集中于CDWM,而不是将该政策分布于整个软件描绘管线中,因而提供了更为一致的终端用户体验以及更简单的开发环境。
根据本发明一说明性实施例,视觉风格的缺省(或定制)纹理可包括基于其更改每个象素的α级和/或位图。例如,α级被用以更改透明度,如本领域技术人员所众所周知的。此外,纹理可包括使用它客户和/或非客户区域、或客户和/或非客户区域的一部分可被象素加阴影的位图。例如,在一说明性实施例中,位图可给出毛玻璃的显现。图5示出了用毛玻璃框架503描绘的视窗501,其中在确定哪个来自视窗框架503后面内容的象素应显示时可指定折射指数来模拟玻璃。通过利用图形描绘引擎的高级纹理、灯光和3D能力,并使用适当的位图,CDWM可用具有毛玻璃显现的框架503来组成视窗501(该框架从3D桌面环境中可选地指定的虚拟光源反射光线),而具有不透明的客户内容区域从而客户内容的视觉敏锐并未减少。
桌面描绘模型(无效对合成)的每一个都具有用于与应用程序交互的唯一模式,从而应用程序的视窗在桌面上得以合理维护。例如,在无效模型中,桌面描绘依赖于视窗“剪辑区域”的管理和持续更新。剪辑是通过它描绘受限于视窗适当区域的过程。当一视窗部分地被另一视窗遮蔽时,剪辑区域对应于被遮蔽区域的逆。如果下层视窗以响应于绘制消息的方式或以主动提供的方式绘制其内容,无效模型DWM确保其剪辑区域被应用于输出,从而确保没有绘制会发生在上层视窗中。如果移动上层视窗,或者下层视窗被移到Z序的顶端,则在发送给视窗绘制消息以更新任意新展现内容之前,下层视窗的剪辑区域由DWM作相应调整。
因而无效模型DWM以及合成模型DWM依赖不同的信息来绘制桌面。例如,在无效模型DWM中,因为DWM没有存储桌面上每个视窗整个平面的副本,DWM必须与应用程序通信以在调整尺寸和重新绘制期间刷新内容。类似地,应用程序期望无需刷新其内容,除非DWM请求这样做(当然除非作为因为用户输入的结果更新)。如果应用程序无需独立地更新其自身的内容,当期望从DWM接收对应于该无效区域的绘制请求时,它会请求DWM使其自身视窗的一部分无效。由于在合成桌面的情形中,绘制每个视窗的足够信息全部由CDWM保留,因此CDWM无需发送有关如上所述事件的视窗绘制消息。这消除了无效步骤;应用程序仅需重画内部事件所指的本身全部或一部分。
由于这些基本差异,每个DWM和/或CDWM具有唯一的API集,通过它们应用程序期望与DWM通信以确保视窗内容保持最新。结果,原来为使用无效模型DWM编程的应用程序(即依赖绘制消息描绘其内容的应用程序)将不必用合成模型CDWM工作。因而,参照图4,CDWM可提供对原来开发的用于无效模型DWM应用程序的支持。这些应用程序在此可被称为继承应用程序,而向后兼容的支持在此可被称为继承支持。继承API指的是与使用继承应用程序兼容的无效模型DWM的用于操作系统先前版本的API。继承API 192b(图1B)使应用程序能与无效模型DWM(继承DWM)192a通信。继承DWM可使用独立的继承API元素来代表应用程序将各种继承通知处理成CDWM、以便将相关状态信息传递给CDWM、并在继承和CDWM坐标空间之间为输入和焦点判断作翻译。继承DWM可被更改成将数据重新指向CDWM,如下所述。
图4根据本发明一说明性方面示出视窗合成方法的一部分。步骤401-409表示与继承应用程序视窗相关联的内容的初始描绘,该视窗的源描绘平面(或产生平面所需的指令集)从继承视窗过滤器192a(图1B)获取。步骤411-419示出由感知合成应用程序创建的视窗内容的描绘。
在步骤401,CDWM接收来自继承视窗管理器的对主要视窗内容的初始更新通知,这是继承应用程序调用继承API 192b以根据为之设计应用程序的无效模型来绘制桌面上视窗的结果。例如,
Figure A20048000133800232
XP可调用继承API使得继承DWM192a绘制用户的文本输入。在步骤403 CDWM从主题消息中检索内容的缺省网格。在步骤405 CDWM从继承视窗管理器中检索(或产生)重定向平面。该平面可被用作内容的散射纹理。在步骤407,CDWM确保仅保留继承纹理的所需区域,从而不描绘包含继承视窗框架、边界和/或标题的那些。一种简便地实现它的方法是通过变换网格的纹理映射坐标,使得仅所需区域被映射到网格的x和y边界范围。在步骤409,CDWM检索内容的缺省材质属性。现在已收集了描绘该继承内容所需的资源和参数。
在步骤411,CDWM从要求描绘关联于视窗的内容对象的应用程序中检索信息。该内容可选地伴随有定制网格、定制纹理、和/或定制材质属性。当应用程序想要为现有内容对象具有非标准形状时,可单独提供定制网格。如果正在讨论的内容对象是视窗基本内容,定制网格将重新定义视窗的形状。当应用程序想要给予系统定义的内容对象以非标准显现时(即与活动主题所指定的不同),定制纹理和/或定制材质属性可单独提供。如果正在讨论的内容对象是视窗基本内容,定制纹理和/或材质属性无需更改其形状即可重新定义视窗的显现。更常见地,应用程序从草图创建内容对象,并在创建时指定其网格(可从一组预定系统网格中选择)、纹理和材质属性(可从一组预定系统材质属性中选择)。
在步骤413,CDWM确定是否指定了定制内容网格,且如果未指定,则从主题管理器中检索一缺省网格(步骤403)。在步骤415,CDWM确定是否指定了定制纹理,且如果未指定,则从主题管理器中检索一缺省纹理。在步骤417,CDWM确定是否由应用程序指定了定制材质属性,且如果未指定,则从主题管理器中检索一缺省材质属性组。现在已收集了描绘该定制内容所需的资源和参数。
在步骤419,CDWM通过UCE编程接口组装了描绘指令块,以参照适当的网格、纹理以及材质属性来描绘内容。该描绘指令块排队以由UCE执行。该指令块在目标装置的等待刷新间隔终止时由UCE描绘模型执行。
通过提供继承支持,在其中CDWM和继承DWM固有集成的操作系统具有使用无效DWM(集成DWM 192a)或合成DWM(CDWM 190)描绘桌面的能力。即,无效模型DWM由操作系统以及合成模型支持以便提供继承支持。因而,在不具有有效执行桌面合成所需的处理器高强度计算所必须的视频硬件的系统中(例如在具有小视频存储器,或不具3D加速硬件的系统中),CDWM和/或操作系统可使用户能选择应使用合成的还是继承的绘制模式。可自动或手动地作选择。例如,可通过手动用户控制根据由用户选择的被激活视觉风格(主题)所定义的绘制模式来作选择。选择可另选地(或也可)基于节约功率条件。例如,当便携式装置从AC电源断开并切换到电池供电时,操作系统可实施继承绘制模式,因为视频图形处理单元(GPU)不太活跃因此耗费较少功率。
使用上述方法和系统,操作系统可提供使用先进3D图形能力的物理模拟图形用户界面。视窗框架可呈现毛玻璃或某些其它复杂材质的外观以及特征,这些材质提供具有至少某些透明度加上作为透明度结果的可见内容的至少某些变形而导致半透明效果的模拟平面外观。即,不仅本发明具有使视窗框架或边界看起来像毛玻璃的能力,而且视窗框架表现像毛玻璃一样,因为它反射GUI环境中的内容、包括指示虚拟光源的镜面高亮、模拟类似于玻璃的折射指数,从而“毛玻璃”边界之后的内容相应地略有偏差,且通过一个或多个象素阴影应用位图以提供下层内容的变形。
毛玻璃或其它类似玻璃的物理模拟对象向图形用户界面的用户提供许多优点。例如,玻璃的美丽外观提升了GUI并提供丰富的用户体验,这通过向用户提供轻松开放的感觉使得本发明的GUI比其它操作系统的GUI更为终端用户所接受。同时,具有玻璃真正或接近真正特征的物理模拟毛玻璃也可提供给功能优点。
毛玻璃外观帮助用户理解多视窗环境中的视窗层顺序。阴影、反射、和镜面高亮创建了桌面上层次和深度的更强烈感觉,并帮助用户确定桌面上各个视窗的Z顺序。尽管某些已知系统将均匀的透明度应用于整个视窗,用户可能无法轻易感知哪些内容在感兴趣的视窗之中,以及哪些内容在视窗之后。通过将该均匀、每个象素的透明度改为Z序的函数,可能会改善该问题,但却是以非自然非直觉的方式。相反,通过将在产生每个目标象素期间采样多个周围源象素的可调节模糊算法集成到象素阴影中,并在描绘视窗框架的过程中执行该阴影,本发明模拟在真实毛玻璃中因材质缺陷引起的光线散射行为。就是这种背景的物理模拟变形使用户能立即区分背景和前景内容。并且因为该效果是累积性的,交叠的毛玻璃视窗框架从前景到背景变成变形。因而,用户可直觉地辨别出多层毛玻璃视窗框架下的背景内容。
毛玻璃还允许使用更厚边界以便简化用户与GUI的交互,例如使用户更容易用鼠标抓取视窗边界以移动或调整视窗的尺寸,而并不遮掩视窗之下的内容(因为玻璃是透明或半透明的)。各种毛玻璃效果被用以使用户更便于区分活动和/或不活动视窗的状态。另外,毛玻璃使用户更便于在屏幕上读取和/或查看内容,因为用户在任一给定时间上可查看更多的屏幕区域(因为毛玻璃是透明或半透明的),且桌面显现为不太杂乱,因为玻璃是显示屏上不太突出的元素。
本领域技术人员将理解,尽管图中示出了毛玻璃的特定示例,本发明并不受那样的限制。通过将不同的位图和/或不同的象素形状应用于外观的描绘,毛玻璃的外观可轻易改变。此外,应用不同的环境变量(例如改变光源,这影响反射和镜面高亮)或改变玻璃的虚拟物理属性(例如折射、反射指数等)也将影响毛玻璃的外观。可以理解,本发明也可用以模拟其它纹理和合成物,例如金属、塑料、纸张、棉、以及其它自然和合成材质。
尽管已参照包括执行本发明的当前优选模式的特定示例描述了本发明,本领域技术人员将理解有上述系统和技术的很多变体和置换。因而,本发明的精神和范围应广泛地解释为如所附权利要求所陈述。

Claims (34)

1.一种存储数据结构的计算机可读介质,该数据结构定义用于在显示于显示装置上的桌面呈现上进行绘制的视窗,其特征在于,包括:
第一数据字段,存储所述视窗的基本内容对象的基本内容对象属性;以及
第二数据字段,存储多个不同主要内容对象的内容对象属性。
2.如权利要求1所述的计算机可读介质,其特征在于,所述第一数据字段可被划分以存储包括基本几何图形的基本对象属性。
3.如权利要求1所述的计算机可读介质,其特征在于,所述第一数据字段可被划分以存储包括基本内容边界、基本范围、以及基本材质的基本对象属性。
4.如权利要求2所述的计算机可读介质,其特征在于,所述第一数据字段还可被划分以存储包括定义网格的多个顶点的基本几何图形属性。
5.如权利要求3所述的计算机可读介质,其特征在于,所述第一数据字段还可被划分以存储包括周围色彩、散射色彩、以及镜面色彩的基本材质属性。
6.如权利要求3所述的计算机可读介质,其特征在于,所述周围色彩、散射色彩、以及镜面色彩的每一个都被定义成ARGB值。
7.如权利要求3所述的计算机可读介质,其特征在于,所述第一数据字段还可被划分以存储包括反射标度和折射指数的基本材质属性。
8.如权利要求3所述的计算机可读介质,其特征在于,所述第一数据字段还可被划分以存储包括散射纹理和颠簸纹理的基本材质属性。
9.如权利要求1所述的计算机可读介质,其特征在于,所述第二数据字段还可被划分以存储包括每个主要内容对象的内容几何图形和内容平面。
10.如权利要求9所述的计算机可读介质,其特征在于,所述第二数据字段还可被划分以存储包括每个主要内容对象的ARGB纹理的内容平面属性。
11.一种数据处理系统,其特征在于,包括:
一存储器,存储视窗属性包括:对于存储属性的多个视窗,基本对象的属性、以及一个或多个主要内容对象的属性;以及
一合成桌面视窗管理器软件模块,它基于存储属性的每个视窗的视窗属性来组成桌面,其中对于所述存储属性的多个视窗之一,所述存储器存储多个主要内容对象。
12.如权利要求11的所述数据处理系统,其特征在于,所述基本对象的属性包括一基本几何图形。
13.如权利要求11的所述数据处理系统,其特征在于,所述基本对象的属性包括基本内容边界、基本范围、以及基本材质。
14.如权利要求12的所述数据处理系统,其特征在于,所述基本几何图形属性包括定义网格的多个顶点。
15.如权利要求13的所述数据处理系统,其特征在于,所述基本材质属性包括周围色彩、散射色彩、以及镜面色彩。
16.如权利要求15所述的数据处理系统,其特征在于,所述周围色彩、散射色彩、以及镜面色彩的每一个都至少由ARGB值定义。
17.如权利要求13所述的数据处理系统,其特征在于,所述基本材质属性还包括反射标度和折射指数。
18.如权利要求13所述的数据处理系统,其特征在于,所述基本材质属性包括散射纹理和颠簸纹理。
19.如权利要求11所述的数据处理系统,其特征在于,所述存储器存储至少一个主要内容对象、一内容几何图形和一内容平面。
20.如权利要求19所述的数据处理系统,其特征在于,所述内容平面包括ARGB纹理。
21.一种显示操作系统外壳的图形用户界面的视窗的计算机实现方法,其特征在于,包括:
接收来自应用程序实例的视窗信息;以及
描绘具有一基本对象和多个不同主要内容对象的视窗。
22.如权利要求21所述的方法,其特征在于,描绘是基于基本边界、基本范围、以及基本材质。
23.如权利要求21所述的方法,其特征在于,描绘基于由网格定义的基本几何图形。
24.如权利要求22所述的方法,其特征在于,描绘基于包括周围色彩、散射色彩、以及镜面色彩的基本材质属性。
25.如权利要求24所述的方法,其特征在于,所述周围色彩、散射色彩、以及镜面色彩的每一个都被定义成ARGB值。
26.如权利要求22所述的方法,其特征在于,描绘基于包括反射标度和折射指数的基本材质属性。
27.如权利要求21所述的方法,其特征在于,描绘基于包括散射纹理和颠簸纹理的基本材质属性。
28.如权利要求21所述的方法,其特征在于,描绘基于每个主要内容对象的内容几何图形和内容平面。
29.如权利要求28所述的方法,其特征在于,描绘基于包括每个主要内容对象的ARGB纹理的内容平面。
30.如权利要求23所述的方法,其特征在于,还包括:
接收调整所述视窗尺寸的用户输入;
对每个网格维将所述网格划分成3个区域;以及
对于每个区域,在由所述视窗边界框限定区域的每一维上保持网格顶点的偏移,并在未由所述视窗边界框限定区域的每一维上缩放网格顶点。
31.一种用于调整具有两个主要内容对象的视窗尺寸的方法,所述视窗部分地由网格定义,其特征在于,所述方法包括:
对每个网格维将所述网格划分成3个区域;以及
对于每个区域,在由所述视窗边界框限定区域的每一维上保持网格顶点的偏移,并在未由所述视窗边界框限定区域的每一维上缩放网格顶点。
32.如权利要求31所述的方法,其特征在于,所述各区域尺寸相同。
33.如权利要求31所述的方法,其特征在于,所述各区域尺寸不相同。
34.如权利要求33所述的方法,其特征在于,由所述边界框限定的各区域足够地小以包围不应缩放的物体。
CN2004800013383A 2003-10-23 2004-07-28 动态视窗分解 Expired - Fee Related CN101288104B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/691,442 US7817163B2 (en) 2003-10-23 2003-10-23 Dynamic window anatomy
US10/691,442 2003-10-23
PCT/US2004/019109 WO2005045558A2 (en) 2003-10-23 2004-07-28 Dynamic window anatomy

Publications (2)

Publication Number Publication Date
CN101288104A true CN101288104A (zh) 2008-10-15
CN101288104B CN101288104B (zh) 2012-08-01

Family

ID=34521879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800013383A Expired - Fee Related CN101288104B (zh) 2003-10-23 2004-07-28 动态视窗分解

Country Status (14)

Country Link
US (1) US7817163B2 (zh)
EP (1) EP1682964A4 (zh)
JP (2) JP4808158B2 (zh)
KR (1) KR101086570B1 (zh)
CN (1) CN101288104B (zh)
AU (2) AU2004279204B8 (zh)
BR (1) BRPI0406387A (zh)
CA (1) CA2501671A1 (zh)
MX (1) MXPA05007169A (zh)
MY (1) MY142719A (zh)
RU (1) RU2377663C2 (zh)
TW (1) TWI374385B (zh)
WO (1) WO2005045558A2 (zh)
ZA (1) ZA200503149B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102065336A (zh) * 2010-07-21 2011-05-18 深圳创维数字技术股份有限公司 数字电视接收机及其确定多级窗口剪切关系的方法
CN102713882A (zh) * 2009-11-16 2012-10-03 思杰系统有限公司 用于选择性地实现渐进显示技术的方法和系统
WO2012159361A1 (zh) * 2011-08-01 2012-11-29 华为技术有限公司 虚拟桌面中分布处理的方法和系统
CN105068714A (zh) * 2015-08-10 2015-11-18 联想(北京)有限公司 一种显示控制方法及电子设备
CN114546204A (zh) * 2022-04-21 2022-05-27 广东统信软件有限公司 一种窗口管理方法、计算设备及可读存储介质

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US7765143B1 (en) 2003-11-04 2010-07-27 Trading Technologies International, Inc. System and method for event driven virtual workspace
US7170526B1 (en) * 2004-01-26 2007-01-30 Sun Microsystems, Inc. Method and apparatus for redirecting the output of direct rendering graphics calls
US7847800B2 (en) 2004-04-16 2010-12-07 Apple Inc. System for emulating graphics operations
US8704837B2 (en) * 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US7231632B2 (en) * 2004-04-16 2007-06-12 Apple Computer, Inc. System for reducing the number of programs necessary to render an image
US7248265B2 (en) * 2004-04-16 2007-07-24 Apple Inc. System and method for processing graphics operations with graphics processing unit
US8134561B2 (en) 2004-04-16 2012-03-13 Apple Inc. System for optimizing graphics operations
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8302020B2 (en) * 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US7652678B2 (en) * 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
US20050285866A1 (en) * 2004-06-25 2005-12-29 Apple Computer, Inc. Display-wide visual effects for a windowing system using a programmable graphics processing unit
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US7761800B2 (en) * 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US20060059432A1 (en) * 2004-09-15 2006-03-16 Matthew Bells User interface having viewing area with non-transparent and semi-transparent regions
US20060168537A1 (en) * 2004-12-22 2006-07-27 Hochmuth Roland M Computer display control system and method
US8140975B2 (en) * 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US7730418B2 (en) * 2005-05-04 2010-06-01 Workman Nydegger Size to content windows for computer graphics
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US7865830B2 (en) 2005-07-12 2011-01-04 Microsoft Corporation Feed and email content
US7843466B2 (en) * 2005-07-29 2010-11-30 Vistaprint Technologies Limited Automated image framing
US8174617B2 (en) * 2005-08-05 2012-05-08 Samsung Electronics Co., Ltd. Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US20070162850A1 (en) * 2006-01-06 2007-07-12 Darin Adler Sports-related widgets
US8108785B2 (en) * 2006-01-09 2012-01-31 Microsoft Corporation Supporting user multi-tasking with clipping lists
US20070245250A1 (en) * 2006-04-18 2007-10-18 Microsoft Corporation Microsoft Patent Group Desktop window manager using an advanced user interface construction framework
US8155682B2 (en) * 2006-05-05 2012-04-10 Research In Motion Limited Handheld electronic device including automatic mobile phone number management, and associated method
US8497874B2 (en) * 2006-08-01 2013-07-30 Microsoft Corporation Pixel snapping for anti-aliased rendering
US8144166B2 (en) * 2006-08-01 2012-03-27 Microsoft Corporation Dynamic pixel snapping
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
EP2057824A4 (en) * 2006-08-27 2015-07-29 Miwatch Holdings Ltd GSM MOBILE PHONE WATCH
US8508552B2 (en) * 2006-09-08 2013-08-13 Microsoft Corporation Pixel snapping with relative guidelines
CN100583022C (zh) * 2006-09-27 2010-01-20 联想(北京)有限公司 获取计算机屏幕图像的方法
US7712047B2 (en) * 2007-01-03 2010-05-04 Microsoft Corporation Motion desktop
US20080168367A1 (en) * 2007-01-07 2008-07-10 Chaudhri Imran A Dashboards, Widgets and Devices
US7996787B2 (en) * 2007-02-06 2011-08-09 Cptn Holdings Llc Plug-in architecture for window management and desktop compositing effects
KR101415023B1 (ko) * 2007-04-26 2014-07-04 삼성전자주식회사 네트워크를 통한 정보 제공 방법 및 장치
JP4858313B2 (ja) * 2007-06-01 2012-01-18 富士ゼロックス株式会社 ワークスペース管理方式
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US20090021486A1 (en) * 2007-07-19 2009-01-22 Apple Inc. Dashboard Surfaces
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8156467B2 (en) * 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US8407605B2 (en) * 2009-04-03 2013-03-26 Social Communications Company Application sharing
US8397168B2 (en) 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
JP4995057B2 (ja) * 2007-12-07 2012-08-08 キヤノン株式会社 描画装置、印刷装置、描画方法、及びプログラム
US9189250B2 (en) * 2008-01-16 2015-11-17 Honeywell International Inc. Method and system for re-invoking displays
US8356258B2 (en) 2008-02-01 2013-01-15 Microsoft Corporation Arranging display areas utilizing enhanced window states
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US8266637B2 (en) * 2008-03-03 2012-09-11 Microsoft Corporation Privacy modes in a remote desktop environment
CA2721174C (en) * 2008-04-17 2017-03-14 Microsystemes Dog Inc. Method and system for virtually delivering software applications to remote clients
US8379058B2 (en) * 2008-06-06 2013-02-19 Apple Inc. Methods and apparatuses to arbitrarily transform windows
US20090328080A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Window Redirection Using Interception of Drawing APIS
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US20100054632A1 (en) * 2008-09-02 2010-03-04 Motorola, Inc. Method and Apparatus to Facilitate Removing a Visual Distraction From an Image Being Captured
KR101520067B1 (ko) * 2008-10-02 2015-05-13 삼성전자 주식회사 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치
US8490026B2 (en) * 2008-10-27 2013-07-16 Microsoft Corporation Painting user controls
US8363067B1 (en) * 2009-02-05 2013-01-29 Matrox Graphics, Inc. Processing multiple regions of an image in a graphics display system
US20110060993A1 (en) * 2009-09-08 2011-03-10 Classified Ventures, Llc Interactive Detailed Video Navigation System
CN102156999B (zh) * 2010-02-11 2015-06-10 腾讯科技(深圳)有限公司 一种用户界面的生成方法和装置
US20110252357A1 (en) 2010-04-07 2011-10-13 Imran Chaudhri Device, Method, and Graphical User Interface for Managing Concurrently Open Software Applications
US9823831B2 (en) * 2010-04-07 2017-11-21 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US20120092381A1 (en) * 2010-10-19 2012-04-19 Microsoft Corporation Snapping User Interface Elements Based On Touch Input
TWI489370B (zh) * 2012-10-16 2015-06-21 智邦科技股份有限公司 呈現界面工具集的方法及系統
US9477404B2 (en) 2013-03-15 2016-10-25 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US9530243B1 (en) 2013-09-24 2016-12-27 Amazon Technologies, Inc. Generating virtual shadows for displayable elements
US9591295B2 (en) 2013-09-24 2017-03-07 Amazon Technologies, Inc. Approaches for simulating three-dimensional views
US9437038B1 (en) 2013-09-26 2016-09-06 Amazon Technologies, Inc. Simulating three-dimensional views using depth relationships among planes of content
US9224237B2 (en) * 2013-09-27 2015-12-29 Amazon Technologies, Inc. Simulating three-dimensional views using planes of content
US9367203B1 (en) 2013-10-04 2016-06-14 Amazon Technologies, Inc. User interface techniques for simulating three-dimensional depth
US9703445B2 (en) 2014-05-07 2017-07-11 International Business Machines Corporation Dynamic, optimized placement of computer-based windows
US9659394B2 (en) * 2014-06-30 2017-05-23 Microsoft Technology Licensing, Llc Cinematization of output in compound device environment
US10147158B2 (en) 2014-12-13 2018-12-04 Microsoft Technology Licensing, Llc Frame invalidation control with causality attribution
US9911395B1 (en) * 2014-12-23 2018-03-06 Amazon Technologies, Inc. Glare correction via pixel processing
US10915952B2 (en) 2015-12-18 2021-02-09 Trading Technologies International, Inc. Manipulating trading tools
GB2563282B (en) * 2017-06-09 2022-01-12 Displaylink Uk Ltd Bypassing desktop composition
EP3639136B1 (en) * 2017-06-16 2023-07-19 Microsoft Technology Licensing, LLC Generating user interface containers
US11886685B1 (en) 2022-10-20 2024-01-30 Stardock Corporation Desktop container peek interface

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
US4696404A (en) * 1986-08-27 1987-09-29 Corella Arthur P Heat sealed package with perforated compartment seal
JPH0546568A (ja) * 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> 分散アプリケーシヨン実行装置および方法
US5487145A (en) * 1993-07-09 1996-01-23 Taligent, Inc. Method and apparatus for compositing display items which minimizes locked drawing areas
US5682550A (en) * 1995-06-07 1997-10-28 International Business Machines Corporation System for restricting user access to default work area settings upon restoration from nonvolatile memory where the settings are independent of the restored state information
US5708717A (en) 1995-11-29 1998-01-13 Alasia; Alfred Digital anti-counterfeiting software method and apparatus
IL116804A (en) 1996-01-17 1998-12-06 R N S Remote Networking Soluti Application user interface redirector
GB2312119B (en) 1996-04-12 2000-04-05 Lightworks Editing Systems Ltd Digital video effects apparatus and method therefor
US5870088A (en) * 1996-05-09 1999-02-09 National Instruments Corporation System and method for editing a control via direct graphical user interaction
US5751283A (en) * 1996-07-17 1998-05-12 Microsoft Corporation Resizing a window and an object on a display screen
US5923328A (en) * 1996-08-07 1999-07-13 Microsoft Corporation Method and system for displaying a hierarchical sub-tree by selection of a user interface element in a sub-tree bar control
US6061695A (en) * 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
WO1998033151A1 (fr) * 1997-01-24 1998-07-30 Sony Corporation Dispositif, procede et support permettant de generer des donnees graphiques
JP3361951B2 (ja) * 1997-02-25 2003-01-07 大日本スクリーン製造株式会社 印刷データ処理装置および方法
US6208347B1 (en) * 1997-06-23 2001-03-27 Real-Time Geometry Corporation System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture
US6486886B1 (en) * 1997-07-15 2002-11-26 Silverbrook Research Pty Ltd Bump map compositing for simulated digital painting effects
JP3350923B2 (ja) 1998-01-06 2002-11-25 横河電機株式会社 計器図表示装置及び計器図表示プログラムを記録した記録媒体
US6870546B1 (en) * 1998-06-01 2005-03-22 Autodesk, Inc. Protectable expressions in objects having authorable behaviors and appearances
EP1257902A4 (en) 2000-02-16 2006-04-19 Goamerica Inc DOCUMENT GENERATION AND FLOW PLANNING FOR JOBS OF APPLICATIONS
AU2001276583A1 (en) * 2000-07-31 2002-02-13 Hypnotizer Method and system for receiving interactive dynamic overlays through a data stream and displaying it over a video content
WO2002015128A1 (en) * 2000-08-18 2002-02-21 Amcor Limited System for creating an artwork
US7051288B2 (en) * 2001-02-15 2006-05-23 International Business Machines Corporation Method, system, and product for a java-based desktop to provide window manager services on UNIX
JP3790126B2 (ja) * 2001-05-30 2006-06-28 株式会社東芝 時空間領域情報処理方法及び時空間領域情報処理システム
US7181699B2 (en) * 2001-06-13 2007-02-20 Microsoft Corporation Dynamic resizing of dialogs
US7047500B2 (en) 2001-11-16 2006-05-16 Koninklijke Philips Electronics N.V. Dynamically configurable virtual window manager
US6816159B2 (en) * 2001-12-10 2004-11-09 Christine M. Solazzi Incorporating a personalized wireframe image in a computer software application
US7028266B2 (en) * 2002-04-05 2006-04-11 Microsoft Corporation Processing occluded windows during application sharing
US6980209B1 (en) * 2002-06-14 2005-12-27 Nvidia Corporation Method and system for scalable, dataflow-based, programmable processing of graphics data
US7342589B2 (en) * 2003-09-25 2008-03-11 Rockwell Automation Technologies, Inc. System and method for managing graphical data
US7839419B2 (en) 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US20050275661A1 (en) * 2004-06-10 2005-12-15 Cihula Joseph F Displaying a trusted user interface using background images

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102713882A (zh) * 2009-11-16 2012-10-03 思杰系统有限公司 用于选择性地实现渐进显示技术的方法和系统
CN102713882B (zh) * 2009-11-16 2015-04-01 思杰系统有限公司 用于选择性地实现渐进显示技术的方法和系统
CN102065336A (zh) * 2010-07-21 2011-05-18 深圳创维数字技术股份有限公司 数字电视接收机及其确定多级窗口剪切关系的方法
CN102065336B (zh) * 2010-07-21 2013-06-26 深圳市创维软件有限公司 数字电视接收机及其确定多级窗口剪切关系的方法
WO2012159361A1 (zh) * 2011-08-01 2012-11-29 华为技术有限公司 虚拟桌面中分布处理的方法和系统
CN105068714A (zh) * 2015-08-10 2015-11-18 联想(北京)有限公司 一种显示控制方法及电子设备
CN105068714B (zh) * 2015-08-10 2019-02-05 联想(北京)有限公司 一种显示控制方法及电子设备
CN114546204A (zh) * 2022-04-21 2022-05-27 广东统信软件有限公司 一种窗口管理方法、计算设备及可读存储介质
CN114546204B (zh) * 2022-04-21 2022-08-12 广东统信软件有限公司 一种窗口管理方法、计算设备及可读存储介质

Also Published As

Publication number Publication date
CN101288104B (zh) 2012-08-01
JP2010267274A (ja) 2010-11-25
CA2501671A1 (en) 2005-04-23
KR20060105421A (ko) 2006-10-11
RU2377663C2 (ru) 2009-12-27
AU2004279204B8 (en) 2009-11-19
WO2005045558A3 (en) 2008-06-05
AU2009217377B2 (en) 2011-04-28
AU2004279204A1 (en) 2005-06-23
EP1682964A2 (en) 2006-07-26
WO2005045558A2 (en) 2005-05-19
ZA200503149B (en) 2006-11-29
JP2007522535A (ja) 2007-08-09
AU2009217377A1 (en) 2009-10-08
RU2005115848A (ru) 2006-01-20
AU2004279204A8 (en) 2008-10-02
TW200519724A (en) 2005-06-16
AU2004279204B2 (en) 2009-06-18
BRPI0406387A (pt) 2005-08-09
MY142719A (en) 2010-12-31
JP4819175B2 (ja) 2011-11-24
US20050088452A1 (en) 2005-04-28
MXPA05007169A (es) 2005-08-26
EP1682964A4 (en) 2009-01-28
US7817163B2 (en) 2010-10-19
JP4808158B2 (ja) 2011-11-02
TWI374385B (en) 2012-10-11
KR101086570B1 (ko) 2011-11-23

Similar Documents

Publication Publication Date Title
CN101288104B (zh) 动态视窗分解
CN101002252B (zh) 用于呈现合成桌面窗口的方法
US6931601B2 (en) Noisy operating system user interface
US7245310B2 (en) Method and apparatus for displaying related two-dimensional windows in a three-dimensional display model
US20050104880A1 (en) Method and apparatus for indicating a usage context of a computational resource through visual effects
JPH0778244A (ja) 機械操作方法
US10740981B2 (en) Digital stages for presenting digital three-dimensional models
WO2001080098A2 (en) Web browser plug-in providing 3d visualization
Crespel et al. Code the Globe: Interactive Content for Spherical Displays with simple Webpages
GB2406770A (en) Displaying related two-dimensional windows in a three-dimensional display model

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150505

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150505

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120801

Termination date: 20200728