CN101002252B - 用于呈现合成桌面窗口的方法 - Google Patents

用于呈现合成桌面窗口的方法 Download PDF

Info

Publication number
CN101002252B
CN101002252B CN 200480001673 CN200480001673A CN101002252B CN 101002252 B CN101002252 B CN 101002252B CN 200480001673 CN200480001673 CN 200480001673 CN 200480001673 A CN200480001673 A CN 200480001673A CN 101002252 B CN101002252 B CN 101002252B
Authority
CN
China
Prior art keywords
window
content
application
desktop
computer
Prior art date
Application number
CN 200480001673
Other languages
English (en)
Other versions
CN101002252A (zh
Inventor
G·D·斯伟德伯格
G·S·梅兰德
G·波姆德兹
M·R·里加梅利
S·汉吉
V·谭
Original Assignee
微软公司
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
Priority to US10/691,450 priority Critical
Priority to US10/691,450 priority patent/US7839419B2/en
Application filed by 微软公司 filed Critical 微软公司
Priority to PCT/US2004/018940 priority patent/WO2005045736A2/en
Publication of CN101002252A publication Critical patent/CN101002252A/zh
Application granted granted Critical
Publication of CN101002252B publication Critical patent/CN101002252B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Abstract

揭示了用于使用合成桌面模型操作系统在计算机上呈现桌面的方法。合成桌面窗口管理器,在从应用程序接收内容信息时,绘制窗口到缓冲存储器用于将来引用,并且利用高级图形硬件和视觉效果基于要在窗口上绘制的内容来呈现窗口。窗口也可基于包括虚拟光源的环境变量来呈现。基于在桌面上被显示了框架的桌面的内容,每个窗口的框架部分可通过像素明暗着色一具有磨砂玻璃外观的位图。提供传统支持,因此操作系统能够绘制和呈现由传统应用产生的窗口,看上去与非传统应用窗口一致。

Description

用于呈现合成桌面窗口的方法 技术领域

[0001] 本发明一般涉及计算机图形和计算机操作系统。更明确地说,本发明提供一个具有对不知晓合成的传统应用程序的基本支持的3D合成(compositing)桌面窗口管理器,用于为操作系统管理桌面并将桌面呈现到单个或多个计算机显示器。

背景技术

[0002] 计算机操作系统一般具有一个为最终用户提供图形用户界面(GUI)的外壳程序。 外壳程序由一个软件组件或软件组件的组合组成,其中软件组件提供用户与操作系统之间的直接通信。图形用户界面一般提供面向图形图标的和/或菜单驱动的环境以便用户与操作系统进行交互,并且常常基于桌面隐喻。更明确地说,图形用户界面被设计为模拟在办公桌前工作的真实世界活动。桌面环境一般占用单个显示设备的整个表面,或者可跨越多个显示设备,并且管辖从属的用户界面对象,如图标、菜单、光标和窗口。

[0003] 在由桌面环境管辖的各种类型的被呈现对象中,被可视地描绘的屏幕区域被称为窗口。窗口一般专用于单一用户活动,并且由第三方软件应用程序或者系统应用程序来创建和管理。每个窗口独立地运转并显示其内容,好象它是在其特定应用程序控制下的一个虚拟显示设备。窗口一般可以被交互地调节尺寸,在显示器上移动,并且以堆叠的顺序排列使其完全或部分地彼此叠盖。在一些窗口环境中,窗口可以假定考虑周到的视觉或行为状态,诸如在尺寸上最小化为图标或者在尺寸上最大化为占用整个显示表面。桌面窗口的集合通常被分配一个自顶至底地显示它们的顺序,在本领域中称为Z-顺序,由此任何窗口会覆盖在所有按照Z-顺序比它低且占用屏幕上相同投影位置的所有其它窗口之上。在任何给定时间,一个被选中的窗口具有“焦点”,并且可接受用户的输入。用户可以通过用鼠标或其它指点设备点击另一个窗口,或者通过使用系统定义的键盘快键键或键组合来控制输入焦点到另一个窗口。这允许用户以与真实世界的管理纸质文档和其它可以任意堆叠或排列在物理桌面上的物品的情况相似的方式有效地与多个应用程序、文件和文档一起工作。

[0004] 许多以前的图形用户界面桌面实现方案的一个缺点是它们的可视地呈现丰富内容或采用图形呈现技术方面的进步的能力有限。这样的进步包括物理模型化的(照亮的, 阴影的,纹理的,透明的,反射的,折射的)二维和三维内容的实时呈现和平滑的高性能动画。与可以利用在桌面上图形呈现进步的有限服务相比,在Windows®商标操作系统或类似的操作系统外壳程序的图形用户界面内窗口化或全屏幕运行的某些应用程序内有可能实现视觉丰富的内容。呈现这类内容的应用程序类型是具有实时3D动画和效果的视频游戏, 高级的图形编辑工具诸如射线跟踪程序和高级2D和3D出版应用程序。由于这些程序的视觉输出或者被限制在其应用程序窗口的内容区域内,或者以全屏幕呈现而将其它窗口及桌面本身排除在外,因此应用程序的丰富图形输出无助于桌面环境的呈现。

[0005] 计算机操作系统使用一个软件层负责管理诸如图标、菜单、光标、窗口和桌面用户界面对象;仲裁来自输入设备如鼠标和键盘的事件;以及提供用户界面服务给软件应用程序。这个软件层可称为桌面窗口管理器(DWM)。桌面窗口管理器(DWM)的呈现逻辑、输入事件路由和应用编程接口(API)共同地体现用户界面策略,后者进而定义操作系统的整体用户体验。截止到目前,缺乏丰富的可视桌面的基本原因是DWM管理和呈现桌面的方法。现有的DWM采用“无效”模型来呈现桌面,它基本上是根据保存视频和系统资源以及CPU和GPU 带宽的需求而发展的。

[0006] 在无效模型中,当改变窗口尺寸或移动它时,或者当应用程序希望重新绘制全部或部分窗口时,显示器的受影响部分被“无效”。DWM在内部使受窗口尺寸改变或窗口移动影响 的区域无效,而试图重新绘制它自己的窗口的全部或部分的应用程序通过API指示操作系统使其窗口的指定区域无效。在任一情况下,DWM通过确定实际需要在屏幕上更新的请求区域的子集来处理无效请求。DWM —般通过查考所保存的与目标窗口相关的相交区域的列表、其它覆盖在目标上的窗口、与受影响窗口相关联的剪辑区域和显示器可见边界来实现这一点。DWM随后给每个受影响的应用程序一个绘画消息,它指定需要以被禁止的自顶至底顺序更新的区域。应用程序可以选择承兑或者忽略所指定的区域。任何由在本地更新区域之外的应用程序执行的绘画自动地由DWM使用较低层图形呈现引擎如图形设备接口(⑶I) 提供的服务来剪辑。

[0007] 无效-消息模型的优点是显示存储器的节省。即,基于无效的DWM只需要保存足够的缓冲存储器来绘制单一桌面,不用“记住”在当前显示内容之下的内容。然而,因为在桌面上的窗口是以自顶向下顺序呈现的,诸如通过GDI的不规则窗口和丰富2D动画之类的特征要求CPU密集计算,包括显示表面的复杂区域和/或大范围取样(从而限制了基于图形硬件加速的可能性),然而其它特征诸如透明性、阴影、3D图形和高级灯光效果是极其困难的并且是非常资源密集的。

[0008] 作为例子,Microsoft Windows® XP窗口管理器,在历史上称为USER,自从 Windows®商标操作系统的发现以来,用作图形用户界面子系统(现在称为Win32)的主要组件。USER使用2维图形设备接口(⑶I)图形呈现引擎以呈现显示。⑶I是Win32的其它主要子组件,并且基于存在于原来的Windows®商标操作系统中的呈现技术。USER使用无效_消息模型与⑶I剪辑区域和2D绘制图元一致地呈现每个窗口到显示器。在呈现桌面时 USER的主要活动包括需要视觉更新的显示器区域的识别,以及按照桌面呈现的无效模型通知应用程序关于绘制的需求和位置。

[0009] 在桌面呈现方面的下一步发展是自底至顶呈现方法,称为桌面合成。在合成DWM 或CDWM中,桌面是从底层向上至顶层来绘制。即,首先绘制桌面背景,接着是图标、文件夹和直接位于桌面上的内容,之后是上一层的文件夹,等等。通过从底向上呈现桌面,每个系迭层可以将在它之下的层作为其内容的基础。然而,桌面合成是存储器密集处理过程,因为 CDWM在存储器中保存绘制到桌面的每个项目的拷贝。在最近已经使高级视频硬件和计算机存储器更为买得起的市场变化和制造技术之前,只有商用的、昂贵的高端计算系统能够实现合成引擎,诸如用于为电影准备特效。

[0010] 中端和低端计算机视频硬件的发展大部分是由可用于流行操作系统的图形服务驱动的。然而,可用于流行操作系统的图形服务因各种各样原因而没有显著地前进,包括因为要保持与较早的应用程序软件的兼容性的需求和买得起各种视频硬件的有限性能。然而最近,实时3D计算机游戏已经超过操作系统作为发展零售视频硬件的主要市场动力,零售视频硬件在短时间内已经达到了异常的复杂程度。实时的、基于硬件的3D加速现在以合理的成本可用于消费者。因而,一旦认为图形硬件特征高度先进, 诸如加速的纹理和光照算法,3D变形和直接编程GPU的能力就能迅速获得。目前,通常只有游戏软件和高度专用的图形应用程序有效地采用这类特征,并且为了这么做,它们必须绕过传统的Win32窗口管理器(USER)和 GDI。

[0011] 实现合成桌面模型的另一个障碍是为使用无效模型DWM而编写的传统应用程序将不能在合成环境中正确地运行。这是因为传统应用程序的核心呈现逻辑是基于操作系统的无效-模型DWM API的。即,传统应用程序不是直接响应于用户交互和在内部状态中的变化来呈现窗口,而是仅在接收到由操作系统或其自己的无效请求产生的绘画消息时才绘制。最困难的补救包括为应用程序设计一种方法,通过它用合成DWM代理传统GUI平台。更简单的替换方案包括将应用程序排除在合成桌面环境之外(在本领域中称为“沙箱(sand boxing),,的方法),或者同时简单地放弃传统应用程序兼容性。

[0012] 因而,在本领域中提供一种丰富的、完全具有使用合成模型呈现桌面的特征的操作系统,以及提供一种可以利用高级图形硬件的桌面窗口管理器,这是一种进步。在本领域中提供使用高级纹理、光照和3D变换的桌面,并且还支持为原来在无效_模型的桌面管理器中使用而编写的传统应用程序,这是进一步的进步。

发明内容

[0013] 下面提供本发明的简化概要,以便提供对本发明某些方面的基本理解。本概要不是本发明的详尽综述。目的不是要标识本发明的关键性元素或者描述本发明的范围。下面的概要仅以简化的形式提供本发明的某些概念,作为下面提供的更详细描述的序言。

[0014] 为克服在上述背景技术中的限制,并且克服在阅读和理解本说明书时显而易见的其它限制,本发明的目标是提供高级图形和呈现性能的合成桌面。

[0015] 本发明的第一个说明性方面提供用于在操作系统中呈现桌面窗口的软件和计算机实现的方法,其中,当合成桌面窗口管理器(CDWM)管理-包括窗口内容的应用程序-呈现存储器表面时,CDWM使用这个预-呈现的表面连同在合成显示上其它窗口的内容一起显示该内容。明确地说,CDWM使用一个窗口的重定向显示表面,或其一部分,作为应用于2D 或3D网格图元的纹理,接着被转送给低层图形引擎用于呈现。这个例子包括在一个3D窗口的应用程序生成内容部分背后的3D窗口框架的呈现。合成窗口框架包括被映射到分开的可改变尺寸的3D网格图元的单独纹理,它与像素阴影例程(CDWM之前已经将它加载到图形显示设备中)的可选参数一起被转送到图形呈现引擎,以产生背后是阴影的磨砂玻璃片外观。本发明的其它说明性方面提供对为与无效-模型的桌面窗口管理器一起使用而设计的应用程序的传统支持。

[0016] 根据本发明的一种计算机实现的方法,用于在操作系统外壳程序的图形用户界面中呈现桌面窗口,包括:在合成桌面窗口管理器CDWM处接收来自高级应用程序的高级应用程序内容,以将和所述高级应用程序内容对应的高级窗口内容以自底至顶的顺序显示在和所述高级应用程序对应的窗口中,其中所述高级应用程序是知道合成的应用程序;在传统桌面窗口管理器DWM处接收来自传统应用程序的传统应用程序内容,以将和所述传统应用程序内容对应的传统窗口内容以自顶至底的顺序显示在和所述传统应用程序对应的窗口中,其中所述传统应用程序是不知道合成的应用程序;由所述CDWM请求将所述传统窗口内容重定向到重定向缓冲器中;以及在所述窗口的一不透明内容部分中显示至少一部分所述高级和传统窗口内容,所述窗口具有一半透明的框架部分,其中当所显示的窗口是合成有传统窗口内容的合成窗口时,CDMW通过将经重定向的传统窗口内容用作纹理应用于网格以物理地模型化所述窗口,从而将应用程序内容从传统窗口内容中剥离并将所剥离的内容转化为图形表示。

[0017] 在使用合成桌面呈现模型的计算机操作系统中,根据本发明的一种为只兼容于无效桌面呈现模型的传统应用程序提供传统支持的方法,包括:在合成桌面窗口管理器CDWM 处接收来自高级应用程序的高级应用程序内容,以将和所述高级应用程序内容对应的高级窗口内容以自底至顶的顺序显示在和所述高级应用程序对应的窗口中,其中所述高级应用程序是知道合成的应用程序;在传统桌面窗口管理器DWM处接收来自传统应用程序的传统应用程序内容,以将和所述传统应用程序内容对应的传统窗口内容以自顶至底的顺序显示在和所述传统应用程序对应的窗口中,其中所述传统应用程序是不知道合成的应用程序; 由所述CDWM请求将所述传统窗口内容重定向到重定向缓冲器中;当呈现一个合成有传统窗口内容的合成窗口时,由所述CDWM通过以下步骤来呈现该窗口 :将客户内容从传统窗口内容中剥离;将所剥离的客户内容转化为客户内容的光栅图像;将包括了所述客户内容的所述光栅图像和默认的非客户信息的纹理应用于网格。

附图说明

[0018] 通过参考下面考虑到附图的说明可获得对本发明及其优点的更完整理解,其中相似的参考数字表示相似的特征,在其中:

[0019] 图IA例示可用于本发明说明性实施例的一或多个方面的操作环境。

[0020] 图IB例示合成桌面平台的说明性实施例中功能和服务在组件中的分布。

[0021] 图2例示按照本发明一个说明性方面的合成方法。

[0022] 图3例示按照本发明一个说明性方面的窗口。

[0023] 图4例示按照本发明一个说明性方面的窗口合成方法的一部分。

[0024] 图5例示按照本发明一个说明性方面呈现的以磨砂玻璃为框架的窗口。

[0025] 图6例示一个具有动态窗口骨骼的窗口。

[0026] 图7例示在网格改变大小期间使用的区域。

具体实施方式

[0027] 在下面各种实施例的说明中,对附图进行参考,它构成说明的一部分,并且在其中作为说明示出可实践本发明的各种实施例。要理解,可使用其它实施例,并且可在不脱离本发明范围和精神的情况下作出结构和功能的修改。

[0028] 本发明提供一种桌面窗口管理器(DWM),它使用桌面合成作为其优选的呈现模型。 本发明的桌面窗口管理器在这里称为合成桌面窗口管理器(CDWM)。CDWM与合成系统一起, 称为统一合成引擎(UCE),提供3D图形和动画、阴影、透明性、高级灯光技术和其它丰富的桌面上的视觉特征。因为系统保留了足够的状态信息以在需要时呈现每个窗口,这里使用的合成呈现模型固有地消除了在呈现时的无效步骤,且最小化或者消除了发送绘画和其它通知消息的需求。[0029] 示例性操作环境

[0030] 图1示出了在其中可实现本发明的合适的计算系统环境100的例子。计算系统环境100只是合适的计算环境的一个例子,而非旨在建议任何对本发明的使用或功能范围的限制。计算环境100既不应解释为具有对示例性操作环境100中所示的组件的任意之一或组合的任何依赖性和要求。

[0031] 本发明可用于众多其它通用或专用计算系统环境或配置。可适合于本发明使用的众所周知的计算系统、环境和/或配置的例子包括,但不限于,个人计算机;服务器计算机; 便携式和手持设备如个人数字助理(PDA);写字板PC或膝上型PC;多处理器系统;基于微处理机系统;机顶盒;可编程消费电子产品;网络PC ;小型计算机;大型计算机;包括任何上述系统或设备的分布式计算环境;等等。

[0032] 本发明可在由计算机执行的计算机可执行指令如程序模块的一般环境中描述。通常,程序模块包括例程、程序、对象、组件、数据结构等,它们完成特定任务或实现特定抽象数据类型。本发明还可在分布式计算环境中实施,其中任务可由通过通信网络连接的远程处理设备完成。在分布式计算环境中,程序模块可位于本地或远程两者的计算机存储介质中,包括存储器存储设备。

[0033] 参考图1,实现本发明的示例性系统包括计算机110形式中的通用计算设备。计算机110的组件可包括,但不限于,处理单元120、系统存储器130和连接包括系统存储器在内的各种系统组件到处理单元120的系统总线121。系统总线121可以是任何若干类型的总线结构,包括存储器总线或存储器控制器、外围设备总线和使用任意各种总线结构的局部总线。作为示例,而非限制,这种结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、加速图形接口(AGP)总线和也称为Mezzanine总线的外围组件互连(PCI)总线。

[0034] 计算机110 —般包括各种计算机可读介质。计算机可读介质可以是任何可由计算机110存取的可用介质,并包括易失性和非易失性、可移动和不可移动的介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的方法或技术实现的易失性和非易失性、可移动和不可移动的介质。计算机存储介质包括,但不限于,RAM、 ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备,或者任何可用来存储所想要的信息并能由计算机110存取的其它介质。通信介质一般包含在诸如载波或其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传输介质。术语“调制数据信号”意指使得以编码信号中信息的方法设置或改变其一个或多个特征的信号。作为示例,但非限制,通信介质包括有线介质,诸如有线网络或直接线连接,和无线介质,诸如声波、RF、红外线和其它无线介质。上述任意的组合也应包括在计算机可读介质的范围内。

[0035] 系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统133 (BIOS),包含帮助在计算机110内的元件间传送信息的基本例程,诸如在起动期间,一般存储在ROM 131 中。RAM 132—般包含由处理单元120可立即访问和/或现在正操作的数据和/或程序模块。作为示例,而非限制,图1示出操作系统134、应用程序135、其它程序模块136和程序数据137。

[0036] 计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。 仅作为示例,图ι示出读写不可移动、非易失性的磁介质的硬盘驱动器141、读写可移动、非易失性的磁盘152的磁盘驱动器151和读写诸如CD ROM或其它光介质的可移动、非易失性的光盘156的光盘驱动器155。其它可用于示例性操作环境的可移动/不可移动、易失性 /非易失性计算机存储介质包括,但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器141 一般通过诸如接口 140的不可移动存储接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155 —般由诸如接口 150的可移动存储器接口连接到系统总线121。

[0037] 以上讨论并示于图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也可包括数字化仪185,结合监示器184使用以允许用户使用输入笔输入设备186提供输入。除监示器之外,计算机还可包括其它外围输出设备,诸如扬声器189和打印机188,它们可通过输出外围设备接口 187连接。

[0038] 计算机110可运行在使用逻辑连接到一或多台诸如远程计算机180的远程计算机上的网络化环境中。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,且一般包括许多或所有上面相对于计算机110所述的元件,尽管只有存储器存储设备181示于图1。绘于图1的逻辑连接包括局域网(LAN) 171和广域网 (WAN) 173,但还可包括其它网络。这样的网络化环境在办公室、企业级计算机网络、内联网和因特网中都很普通。

[0039] 当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171上。当在WAN网络环境中使用时,计算机110 —般包括调制解调器172或其它在诸如因特网的WAN 173上建立通信的设备。调制解调器172,它可以是内置或外置的,可通过用户输入接口 160或其它合适的机制连接到系统总线121上。在网络化环境中,相关于计算机 110所述的程序模块或其部分可存储在远程存储器设备中。作为示例,而非限制,图1示出了远程应用程序182,驻留在存储器设备181上。要意识到所示网络连接都是示例性的,并可使用其它在计算机间建立通信连接的装置。

[0040] 示例性实施例

[0041] 本发明可使用合成桌面窗口管理器(CDWM)绘制和保存使用合成桌面模型(即, 自底至顶的呈现技术)的桌面显示。CDWM可在缓冲器存储区中保存内容用于将来的引用。CDWM通过从底向上绘制桌面,从桌面背景开始并且以逆Z顺序继续通过叠盖窗口来合成桌面。在合成桌面时,CDWM可部分地基于在其上绘制窗口的内容,并且部分地基于其它环境因素(例如,光源、反射性等)来绘制每个窗口。例如,CDWM可使用ARGB格式纹理的alpha 信道来提供窗口的透明性,并且可基于虚拟光源选择性地强调窗口内容的诸部分(例如, 框架)。

[0042] CDWM可作为操作系统134、144的一部分驻留,或者可独立于操作系统驻留,例如驻留在程序模块136、146中。另外,CDWM可依赖于一个低层图形合成子系统(这里称为统一合成引擎(UCE)),在下面并在共同待批的申请序列号(代理人摘要编号50037. 201US01) 于 2003 年 10 月 23 日提交的题为“^stemand Method for a Unified Composition Engine (用于统一合成引擎的系统和方法),,中进一步描述,为此通过引用将它全部包括在此。在一个示例性实施例中UCE基于或者使用华盛顿州雷蒙德的Microsoft公司的 Direct3D®和DirectX®:技术。在另一个实施例中可使用其它图形合成子系统,诸如基于加利福尼亚芒廷维尤的Silicon Graphics公司的OpenGL®图形引擎的X Window平台的变体等等。UCE支持3D图形和动画、透明性、阴影、灯光效果、凹凸贴图、环境贴图和桌面上的其它丰富视觉特征。

[0043] 图IB例示按照桌面合成平台的示例性实施例的组件体系结构。CDWM(CDWM) 190可包括应用编程接口 190a,通过它知道合成的应用程序软件191获得CDWM窗口和内容创建和管理服务;子系统编程接口 190b,通过它传统窗口图形子系统192发送影响各窗口重定向图形输出的变化的更新通知(在下面更详细地描述窗口图形输出重定向);以及UI对象管理器190c,它保存Z-顺序的储存库用于桌面UI对象如窗口及其相关联的内容。UI对象管理器可与主题管理器193通信以检索资源、对象行为属性和与活动桌面主题相关联的呈现度量标准。

[0044] 传统图形用户接口子系统192可包括传统窗口管理器19¾和传统图形设备接口 192b。传统窗口管理器19¾为在CDWM出现之前开发的软件应用程序提供无效模型窗口和桌面服务。传统图形设备接口 192b提供2D图形服务给传统应用程序以及传统窗口管理器两者。基于无效模型用于呈现桌面的传统图形设备接口缺乏对3D、硬件加速的呈现图元和变换的支持,并且不能原本地在位图拷贝和传送操作中支持每像素alpha信道透明性。传统窗口管理器19¾和图形设备接口 192b—起继续用于减少希望升级其操作系统而不牺牲运行它们喜爱或重要的使用无效模型的软件应用程序的能力的用户的拥有成本。为了实现将传统应用程序窗口与知道合成的应用程序无缝、并列地集成起来,以强加很少或没有可辨别的最终用户损失的方式,可存在合成过程中传统图形用户接口子系统192的积极参与。确实,感觉到的传统应用程序平台环境最好不改变以便避免包括它们在合成上的稳健性,尽管向桌面呈现传统窗口的基本方式将根本被改变。本发明描述如何通过添加在此描述的特征作为窗口图形输出重定向来实现。

[0045] 统一合成引擎(UCE) 194可提供呈现指令并通过编程接口 19½接合从CDWM发出的资源。在宽泛意义上,UCE相对于CDWM的角色与传统图形设备接口 192b相对于传统窗口管理器19¾相似。UCE编程接口 19½为CDWM且最终为应用程序提供抽象接口到各种各样图形服务。在这些UCE中服务是资源管理、多显示情况的封装和远程桌面支持。

[0046] 在CDWM写操作和呈现操作之间的图形资源争用可由内部资源管理器192b仲裁。对资源更新和呈现服务的请求是由编程接口子组件19½放置在UCE的请求队列IMc上的。这些请求可异步地由呈现模块194d以与安装在系统上的显示设备的刷新率一致的时间间隔来处理。因而,UCE 194的呈现模块194d可从队列中取出CDWM请求,在需要时访问和操纵存储在资源管理器194b中的资源,并且装配和传递显示专用呈现指令到3D图形接 Π 195。

[0047] 将桌面呈现到多个显示要求在刷新率、像素格式支持和在异构显示设备之中的设备坐标映射方面的差异的抽象。

[0048] UCE也可负责通过远程桌面配置中网络连接传递图形数据。为了有效遥控一个特定系统的桌面到另一个,资源争用应当被避免,应当制定性能优化且安全性应当是稳健的。 这些责任也可依靠UCE。

[0049] 3D图形接口 195可包括低层、立即模式(无状态)图形服务如Direct3D®、 OpenGL®等等。3D图形接口的目的是在特定图形硬件配置的特征上提供抽象接口。3D图形接口可为单一显示设备服务;UCE可通过多个设备驱动程序196在多显示系统中多个图形输出设备197之间分析和分发CDWM的呈现指令。

[0050] 应当注意图IB所示的组件体系结构是示例性实施例的组件体系结构。该图目的是要例示本发明可包括的功能。这些功能可按照平台的性能和所希望的特征集,在除该图中所示的那些以外的或多或少的软件组件之间分布。例如,缺乏主题管理的系统可从系统, 有可能是象由CDWM本身所管理的静态资源而不是从单独主题管理器得到所有库存的资源。允许插入式窗口管理器的平台可用插入式窗口管理器接口代替CDWM中的应用编程接口 190a,以便抽象合成的UI对象和资源管理的细节。另一种可能的变体可消除子系统编程接口 190b,如果不要求传统应用程序兼容性。图IB所示的UCE 194的子组件可断开成分离的过程,折叠到CDWM本身之中或者集成到3D图形接口中。因而,特定组件设计的宽广范围是可能的,每种设计能够实现包括本发明功能的全部范围或子集。

[0051] 图2例示按照本发明的一个示例性方面的一般方法,用于执行桌面合成。步骤201 至205描述使用合成桌面窗口管理器(CDWM)API的知道合成的应用程序的交互,用于创建和管理窗口和窗口内容。步骤207和209描述在传统的无效模型窗口管理器应用程序与 CDWM之间的交互,用于合成传统窗口内容。

[0052] 在步骤201中,合成桌面窗口管理器(CDWM)从知道合成的应用程序接收请求以 (1)创建合成窗口和O)附上内容对象。本发明不限于每窗口单个内容对象;应用程序可以通过CDWM API动态地创建任意数量的内容对象并附到一个窗口(也可以分离并销毁它们),如下进一步所述。内容对象包括指定尺寸的光栅表面和要用作贴图到应用程序或系统定义的网格的漫射纹理的像素格式,连同可选的附件资源如附加的纹理(光照贴图、镜面贴图、凹凸/正常贴图等等)、光照和像素明暗着色器。漫射内容纹理的像素格式可以是由安装在系统上的视频硬件支持的任何可用的格式,但为了当前例示的目的,可以是32位 ARGB。当请求这个格式时,应用程序可隐含地知道alpha(A)信道可用于改变内容像素的透明性等级,因而在用最终呈现的源像素调制的桌面背景信息量上提供精细的控制。在步骤 203中,CDWM为窗口分配一个状态块,将CDWM实现的内容对象附到它。内容对象分配所请求的资源或者附上由应用程序转送的资源,随后引导这些资源到UCE,以允许在UCE更新请求时随时访问。在步骤205中,应用程序通知CDWM关于窗口或窗口内容的主动提供的改变。这些改变可以影响任何窗口或内容状态,但为了简单,本例描述三个普通更新请求:内容尺寸,窗口定位或缩放,或对内容的漫射纹理的像素的改变。

[0053] 合成传统窗口的过程开始于桌面合成初始化,其中CDWM 190传递一个请求给传统窗口图形子系统192以将每个传统窗口的图形输出重定向到临时存储单元(步骤207)。 步骤207可以更一般地描述为将传统窗口图形子系统放在“合成模式”中,其中每个单独窗口的呈现被重定向到单独的存储缓冲器中。在一个示例性实施例中,传统图形用户接口子系统192将在呈现窗口时涉及的图形指令的输出重定向到与窗口相关联的位图化存储器面。然而,本发明包括保留本地绘制指令和相关参数的能力,并且在为目标显示设备合成下一个视频框架期间在UCE中执行这些指令。这些重定向缓冲器(表面或绘制指令块)可由 CDWM或传统窗口管理器19¾来管理,但为了例示的目的,表面资源管理被集中在CDWM中。 每个重定向缓冲器或者构成或者用于产生漫射内容纹理资源用于窗口。传统窗口管理器 19¾不需要启用CDWM窗口和内容创建API ;用于通知的传统子系统-CDWM通信信道与应用程序接口的不同,并且CDWM从现有传统窗口属性导得合成窗口属性(框架和边风格,标题等)和状态(隐藏/显示,最小化/最大化等)。在步骤209中,传统窗口管理器19¾通知 CDWM 190关于影响重定向窗口内容纹理的需要视觉更新的任何改变。

[0054] 在步骤211、219和223中,CDWM 190鉴别出尺寸、位置/缩放和图元层纹理更新请求并相应地行动。在尺寸更新时(步骤211),CDWM首先确定一个框架是否与目标窗口相关联(步骤213)。如果框架与窗口相关联(步骤215),则CDWM基于二或三维范围(由知道合成的应用程序显式地提供的)确定框架图元的适当尺寸和方向,或者基于传统和CDWM 窗口度量标准与重定向传统表面的被更新维的组合。当框架尺寸已经确定时,CDWM对框架网格中的顶点的位置信息作出适当的改变,并且将顶点数据缓冲器转送到UCE。UCE将网格更新指令和新的顶点信息放在一个队列上用于异步处理。如果窗口没有框架,则步骤215 可被绕过。在有框架或无框架的窗口的情况下,影响内容区域的尺寸改变可使CDWM改变内容网格的尺寸并将适当的网格更新请求和数据排队到UCE(步骤217)。

[0055] 在位置(包括旋转)或缩放更新时(步骤219),CDWM确定新的变换参数并且将变换资源更新请求连同数据一起排队到UCE用于异步处理(步骤221)。资源至少包括一个四乘四变换矩阵,但可包含附加的数据以支持过滤的变换。

[0056] 在步骤223中,CDWM接收涉及漫射内容纹理的像素数据的改变的更新请求,即应用程序已经在其窗口内更新了其内容。在步骤225中,CDWM通过将新的像素信息排队到UCE 用于异步处理来为请求服务。

[0057] 那些本领域熟练技术人员将意识到,除图2所示的那些之外,可支持其它更新请求。例如,窗口图标和标题文本的改变也需要相应地重新绘制CDWM管理的与窗口相关联的图标或标题内容对象。窗口输入焦点可在框架的外观中反映,因而在传统窗口的情况下,传统窗口管理器可传递输入焦点改变更新给CDWM,它相应地重新呈现该框架和可能的其它内容。

[0058] 在步骤227中,UCE处理从CDWM传入的合成和资源更新,并且以与每个参与桌面合成的活动视频图形适配器的视频刷新率同步的时间间隔,重新呈现桌面(或多显示配置中其适当部分)到显示尺寸的支持缓冲器(backing buffer)。这是使用由3D图形引擎(如 Microsoft Direct3D®)提供的立即模式呈现服务来实现的,并进而将桌面传送到主要显示表面。

[0059] 为了在3D中绘制窗口,CDWM可使用各种组件(包括基内容对象和一或多个子内容对象)来定义窗口骨骼(anatomy)。基内容对象定义窗口框架或边,并且由基几何形状、 基范围、基材料属性和基内容页边距组成。基和子内容对象可各自完整地由系统定义和管理,或者在定制内容元素的情况下,可由应用程序管理。下面更详细地讨论内容对象。

[0060] 图3例示按照本发明一个示例性方面的应用程序窗口。应用程序窗口 301可包括各种区域和组件。窗口 301的框架或基内容303可主宿子内容,包括按钮305(例如,用于恢复、最大化、最小化、关闭窗口等)、指示图标307、滚动栏309、菜单栏311和窗口标题文本 313。主要内容对象区域315可从重定向缓冲器(它从传统窗口和图形用户界面子系统获得)得到,或者可创建或附到标准基内容并且由知道合成的自己的应用程序呈现。那些本领域熟练技术人员将意识到,图3仅是基本窗口元素的例示,并且可另外或替换地使用其它或不同的窗口元素。另外,窗口框架元素可替换地由一个应用程序提供,例如,为应用程序提供不同的外观和感觉。一个例子是应用程序提供滚动条元素作为定制的子内容对象, 使得它们显示出应用程序特有的外观和行为。而且,应用可使用CDWM API选择删除或重新配置一个或多个库存框架元素。应用程序不需要限制在单个主内容区域,而这是原有技术中普遍的限制。

[0061] CDWM可支持多应用程序创建和呈现的与单个窗口相关联的内容区域。为了给应用程序提供能力以提供更唯一的用户体验,在本发明的一或多个实施例中CDWM以绘制窗口的方式提供灵活性。即,CDWM可通过允许应用程序定义多个定制内容对象来允许应用程序改变窗口的默认骨骼,每个内容对象具有任意形状,代替将每个应用程序限制于单个矩形客户内容区域。

[0062] 因而,每个CDWM窗口可由基内容对象(即框架)和一个或多个子内容对象的集合组成。每个内容对象可由唯一一组内容属性来定义,并且可以配置为可选地接收键盘和鼠标事件。CDWM将鼠标击中测试点映射为相对于应用程序定义的、内容本地的3D坐标,并且将鼠标事件通知传递给应用程序。内容对象可完全由系统来管理,或者在定制内容元素的情况下,可由应用程序来管理。系统管理的内容对象的例子包括应用程序表示图标、框架按钮(例如,最小化、恢复、关闭)、标题文本和某些菜单栏和滚动条。应用程序管理的内容对象包括这样的内容对象,应用程序向其呈现其主要视觉输出,例如,字处理器的文本,电子表格应用程序的数字格栅,或者照片编辑应用程序的图像。

[0063] 内容纹理可是由系统管理的位图,或者在定制内容的情况下由应用程序管理。可将内容纹理线性地在单次重复中映射到内容几何形状。纵横比可由内容几何形状确定,并且纹理坐标可在内容几何形状中揭示。内容的放大可由缩放变形(它影响内容纹理到其几何形状的映射)来控制。CDWM可提供默认的交互机制,通过它用户可以调整放大比,如系统提供的菜单选项、滑动块控件和/或鼠标和键盘组合。

[0064] 在每次重新呈现之前,其漫射纹理为支持每像素alpha格式的内容表面可由系统初始化为零alpha,任凭应用程序(或在库存的内容对象的情况下任凭系统)处理。因此, 在底下的基内容对象可在内容表面的未绘画区域中显示。这改进了编程模型和用户体验两者,因为不要求应用程序在呈现前消除内容表面,并且使用户免遭窗口中闪烁和失时效的或未绘画区域。[0065] 在某些实施例中,某些内容对象,特别是应用程序要向它们呈现其主要图形输出的那些,可以没有与它们相关联的材料属性,因为不希望让内容与灯光或环境以分散用户的注意力或者干扰用户活动的方式交互。内容对象的视觉外观在这类实施例中可仅由其纹理、几何形状和可能的每顶点或每像素alpha值来确定。

[0066] 图6例示一个带有如在此所述的动态非标准骨骼的窗口 601。窗口 601具有非标准形状(即,非矩形)的基框架对象603、非标准形状的(非矩形)位于非标准位置(不是窗口的右上角)的框架按钮对象605、在非标准位置(不是窗口的左上角)的系统提供的指示框架图标对象607和也在非标准位置的(不在框架上部左对齐)的框架窗口标题对象 613。在图6中,与窗口相关联的应用程序定义了两个主要内容对象区域61¾和61恥。主要内容对象区域61¾是规则的(即矩形)形状,然而主要内容对象区域61¾是不规则的非矩形形状。窗口 601也可包括应用程序定义的框架按钮对象617和619在浏览环境中分别提供向后和向前导航控制。

[0067] CDWM可呈现应用程序窗口 301的基部作为3维(3D)对象。3D网格图元可用于定义窗口对象的形状(基几何形状),主要漫射纹理可被贴图到网格的3D几何形状,并且在呈现过程期间应用程序可任选的材料属性,可包括光照、着色、折射、模糊和包括辅助纹理在内其它特效参数和资源。辅助纹理可用作在本领域中众所周知的图形效果的资源,以便提供“活的”物理地模型化的与光源、光标和桌面环境中其它UI对象的交互。因而,纹理可用作每像素3D正常信息的源(正常/凹凸贴图)、光屏蔽(周围的、漫射的和镜面的光过滤器)、反射源(例如,当在窗口上悬浮时光标的反射)、静态环境贴图等等。

[0068] 基几何形状的顶点格式可选地包括ARGB格式的32位漫射颜色组件和纹理坐标对 {tun,tvn}用于将直到η个纹理贴图到网格几何形状,如上所述。如在本领域中适当建立的,tu和tv的每个整数增量可定义在相应维中纹理的重复。例如,从{0.0,0.0}(纹理左、 上)到{1.0,1.0}(纹理右、下)范围的值表示在整个网格上的单次重复,然而{0.0,0.0} 到{6.0,4.0}定义在χ维中六次重复和在y维中四次重复。

[0069] 内容范围可定义为一对三维点,它们定义边界范围{χ left' Ytop' Zfront' Xright' ^bottom' 、a。k},或者包含基几何形状的最小方框的坐标。这与2D边界窗口矩形{xlrft,ytop, Xright, YbottoJ相似。三元组{Xieft-hghpytop-y—^drhj定义内容范围的宽度、高度和深度。 范围由系统计算和管理并且表示内容的尺寸和本地位置。

[0070] 如果窗口对象是可改变尺寸的,则操纵基内容的范围是CDWM用于改变窗口尺寸的方法。为了保留边缘和角轮廓,在可改变尺寸的网格中每个顶点的位置不能简单地缩放到新的范围。为能够对网格改变尺寸精细控制,预定的顶点位置过滤器功能连同可应用的参数可由应用程序在窗口创建时指定,或者由CDWM选择为默认值。顶点改变尺寸过滤器功能的角色是要确定在目标网格中每个顶点当目标网格的边界范围被改变时如何表现。每个过滤器功能应当为每个成员顶点确定在每一维(x,y,z)中移动方向和幅度。

[0071] 最简单的过滤器功能确定方向(正或负)和幅度(相对于新范围缩放或按等于网格边界框的六个面之一在3D空间中位移)。每个顶点如何在改变尺寸操作中表现可以在每顶点、每维基础上描述,作为与顶点本身相关联的属性,或者可为网格按几何形状术语来定义。后一种方法的例子是一对向量{mxleft, mytop, mzfront, mxright,

mybottom' mZbacki ' 定义六个定

尺寸页边距(sizing margin)平面,每个与网格边界框的一个面相关联,有效地将边界框的容量划分成27个立方子区域。定尺寸页边距值可保持不变,不管网格的尺寸,或者可基于边界框的初始尺寸来计算。在任意网格改变尺寸操作中,在上、左、前立方子区域(以Ixlrft, yt。p,zfront,mxleft,mytop,mzfront}为边界)中出现的顶点按与边界范围的左上前角相同的幅度和方向位移。在最中央立方子区域(以{iiKleft,myt。p,mzfr。nt,mxright

‘mybottom' mZback }为边界)

中出现的顶点相对于该子区域的新范围缩放。在前、中立方子区域中出现的顶点相对于该子区域在χ和y维中缩放,但按与网格的前Z边界平面的相同幅度和相同方向移动。

[0072] 为帮助理解上述原理,图7例示在2维空间中网格改变尺寸操作的例子。窗口 701 具有带有角半径的圆角707。如果窗口改变尺寸操作仅缩放窗口所基于的网格,则角半径将与网格一起缩放。然而,如果缩放角半径,则圆角的半径会变得太大或太小并且有损于用户体验并有损于用户界面的使用性能。因而,当改变窗口 701的尺寸时,角半径最好不改变。 为了防止角半径被缩放,可将网格划分成每维(X,1,ζ可应用时)三个部分。因而在本例中,窗口被划分成9个象限703a-i。在3D空间中,窗口可被划分成27个区域。每维可均等地划分或者不均等地划分,因而允许均等地确定尺寸的区域或者不均等地确定尺寸的区域。当不均等地确定区域尺寸时,可使由边界框限定的区域尽可能小以包括不应当缩放的材料。

[0073] 在窗口改变尺寸操作期间,在其中象限在由边界框限定的每维中位移象限,并且在其中象限以区域分隔线界定的每维中缩放象限。例如,区域703a、703c、703g 和703i在X和Y两维中至少一条边上是以边界框为边界,因此在改变窗口尺寸时在区域 703a、703c、703g和703i中有网格顶点保持离边界框相同的位移。区域70¾和70¾在 Y(垂直)维中至少一条边上以边界框为边界,但仅以在X(水平)维中的区域分隔线705为边界。因而,在区域70¾和70¾中的网格顶点将在Y维中保持其位移,但在X维中缩放。 区域703d和703f在X(水平)维中至少一条边上以边界框为边界,但仅以在Y(垂直)维中的区域分隔线705为边界。因而,在区域703d和703f中的网格顶点将在X维中保持其位移,但在Y维中缩放。区域70¾在X和Y两维中都以分隔线705为边界,因此落在区域 703e内的网格顶点将在X和Y两维中都被缩放。那些本领域中熟练技术人员将认识到,这个算法通过包括在前面段落中描述的Z维扩展到3维。

[0074] 网格改变尺寸过滤器功能的另一个变体可解释手工编写的顶点元数据而不是依赖于全局几何形状结构诸如定尺寸页边距来确定在任何方向中顶点位置是缩放还是位移。 这样的功能可用于在网格改变尺寸期间保持复杂表面拓扑如隆起和凹部。网格改变尺寸过滤器功能的另一个变体可允许以线性或非线性方式在每维中移动顶点,带有存储为每顶点元数据的鉴别位和功能系数。这样的功能支持诸如在网格改变尺寸时线性或非线性、局部或普遍的膨胀或塌陷伴生物的效果。

[0075] 基内容页边距定义了约束子内容的边界。内容页边距可以是以与调整页边距尺寸相同方式定义的三维边界。然而,不像调整页边距尺寸,内容页边距可线性地随窗口缩放而缩放,并且可不影响网格改变尺寸。

[0076] 局部和桌面-全局资源和参数,如按照抽象材料属性值指定的,结合像素明暗着色器,包括CDWM可用于实现物理地模型化的桌面内容的数据和机制。

[0077] 高层内容材料属性定义了内容与光照和周围环境交互的方式。复杂材料诸如磨砂玻璃的呈现可使用视频硬件中原本不支持的技术。结果,CDWM使用少量预定义的像素明暗

15着色器之一实现材料属性。像素是载入显示硬件的小例程,它在显示前基于一组预定义的资源处理像素值,该组资源包括但不限于光源、纹理和网格图元中的顶点,以及参数如变形和度量标准。CDWM可从其预定义的像素明暗着色器集合中选择适当的明暗着色器以呈现一组特殊的对象材料属性,包括周围颜色(亮度和透明性)、漫射颜色(亮度和透明性)、镜面颜色(亮度和透明性)、反射标量、折射率、漫射纹理和凹凸纹理,下面描述它们每一个。桌面全局属性可用于定义全局环境属性,诸如眼睛位置、全局光源、环境贴图等等。在呈现窗口之前,定义这些桌面全局属性的资源和参数可与基窗口材料属性一起被转送到3D图形接口作为活动的像素明暗着色器的参数。

[0078] 周围颜色模拟从所有方向击中对象表面的灯光。与可应用于任何CDWM管理的UI 内容对象的材料属性一样,周围亮度确定接触对象表面的周围光的相对量,并且可使用32 位ARGB值来指定周围颜色和透明性。在一个示例性实施例中,周围亮度范围从0. 0 (零周围光,给出均勻的黑色外观)到1.0(均勻分布在对象上指定颜色的最大强度)。具有白色周围颜色的周围强度的效果允许控制对象的一般亮度。

[0079] 漫射强度确定在接触对象表面之后在所有方向散开的定向光的数量。光本身或者由一或多个定向光或者由立方光贴图(cubic light map)提供。与可应用于任何CDWM管理的UI内容对象的材料属性一样,漫射颜色可由规定颜色的32位ARGB值来指定,其中alpha 分量规定漫射地反射的灯光的透明性。漫射亮度值范围从0. 0(没有光被漫射地反射,给对象一个均勻的黑色外观)到1. 0(漫射地反射所有光,按照漫射颜色值给对象一个着色的外观)。被照亮的表面随着周围和漫射强度值之和接近1. 0,将显得更逼真地被模拟。

[0080] 镜面强度控制在观察器处多少光从对象的表面直接反射回来,并且镜面颜色可指定为对象ARGB颜色。光源本身可用一或多个定向光或者立体光贴图的形式。与可应用于任何CDWM管理的UI内容对象的材料属性一样,高镜面强度值可用于模拟具有强烈辉亮部分的光亮表面,而低强度值可用于模拟具有微弱或缺少辉亮部分的无光泽表面。颜色的alpha 组件确定镜面辉亮部分的透明性。

[0081] 反射性,像镜面性一样,确定在观察器处从对象的表面直接反射回来的光量。反射与镜面性不同之处在于反射应用于整个环境,而不只是光源。与可应用于任何CDWM管理UI 内容对象的材料属性一样,0. 0的反射性值在表面中不产生环境的反射,并且1. 0的值在表面中产生类似镜子的环境反射。可使用立方环境贴图和鼠标光标的组合来模拟环境。因而, 可从窗口表面反射鼠标光标以及环境的静态特征至由反射度标量控制的程度。

[0082] 每个对象的反射率确定灯光行进通过它时的透射角。可使用斯涅耳(Snell)法则,ni Sinei = n2 sin θ 2,其中叫和η2是介质1和2的折射率,并且θ 1和θ 2分别是光相对于表面法线的入射角和透射角。因此,如果介质1表示具有给定折射率1. 0(无折射) 的桌面环境,且介质2是窗口基对象的介质,则折射角由θ obJ = sin"1 (sin θ env/nobJ)确定。 已知可模拟的各种介质折射率在下面的表1中示出。

[0083]

Figure CN101002252BD00161
Figure CN101002252BD00171

[0084]表 1

[0085] 一旦确定/计算了折射角,随后就可使用它从背景中选择适当的像素以在对象的可见表面上呈现,之后是与其它材料属性相关联的进一步处理。为了折射的实时呈现的优化可结合菲涅耳(Fresnel)技术,一种那些本领域熟练技术人员所理解的方法。

[0086] 视觉风格(主题)可用于定义CDWM视觉和行为策略。视觉风格一般指用户可选择的主题,它指定应用于普通用户界面元素的精心制作、手工设计的图形和行为属性。应用程序可选地覆盖这些属性中的一些,而为了在用户界面的一致性其它属性由系统选择性地实施。视觉属性包括普通窗口内容的外观如框架区域(基内容)、非客户按钮和其它应用程序无关元素。行为属性包括窗口和桌面转换动画,用鼠标交互地移动窗口或改变窗口尺寸的方式(例如,抓住、粘上和拉伸和固定),以及其它与应用程序无关的行为。视觉和行为策略可集中在CDWM中而不是让该策略分布遍及软件呈现管道,因而提供更一致的最终用户体验,以及更简单的开发环境。

[0087] 按照本发明的一个示例性实施例,视觉风格的默认(或定制)纹理可包括alpha 等级和/或位图,基于它们修改每个像素。例如,alpha等级可用于修改透明性等级,如本领域中已知的。另外,纹理可包括位图,用它可像素着色客户和/或非客户区或者客户和/ 或非客户区的一部分。在一个示例性实施例中,例如,位图可给出磨砂玻璃的外观。图5例示用磨砂玻璃框架503呈现的窗口 501,其中可指定折射率以在确定来自窗口框架503后面的内容中哪个像素应当出现时模拟玻璃。通过利用图形呈现引擎的高级纹理、光照和3D性能,并且使用适当的位图,CDWM可以用具有磨砂玻璃外观的框架503合成窗口 501,磨砂玻璃反射来自3D桌面环境内可选地指定的虚拟光源的灯光,但具有一个不透明的客户内容, 使得客户内容的视觉分辨力不减少。

[0088] 桌面呈现模型(无效对合成)各自具有唯一的模式用于与应用程序交互,使得应用程序的窗口适当地保持在桌面上。例如,在无效模型中,桌面呈现依赖于窗口 “剪辑区域” 的管理和连续更新。剪辑是用于将呈现限制于窗口的适当区域的过程。当一个窗口部分地被另一个遮盖时,它的剪辑区域相应于被遮盖区域的补。如果在底下的窗口绘画其内容,无论响应于绘画消息还是以主动提供的方式,无效模型DWM保证其剪辑区域应用于输出,因而保证没有绘画会发生在上方的窗口中。如果移动上方的窗口,或者将在底下的窗口带到 Z-顺序的上面,则在DWM向所述底下的窗口发送更新任何新暴露内容的绘画消息之前,在底下的窗口的剪辑区域由DWM相应地调整。

[0089] 无效模型DWM和合成模型DWM因而依赖于不同的信息来绘制桌面。例如,在无效模型DWM中,因为DWM不存储桌面上每个窗口的整个表面的拷贝,所以DWM必须在改变尺寸和重新绘制期间与应用程序通信以刷新内容。同样,应用程序预期不需要刷新其内容除非DWM要求它这么做(当然,除非作为用户输入结果更新内容)。如果应用程序确实需要独立地更新其自己的内容,则它请求DWM无效其自己窗口的一部分,预期从DWM接收相应于无效区域的绘画请求。因为在合成桌面的情况下CDWM保留了足够信息来绘制每个窗口全部,所以CDWM不需要在诸如上面所述的那些事件上给窗口发送绘画消息。这进而避免了无效步骤;应用程序只需要按内部事件所规定的重新绘制其全部或部分。

[0090] 由于这些基本差异,因此DWM和/或CDWM各自具有一组唯一的API,通过它们应用程序预期与DWM通信以保证窗口内容保持最新。结果,原来为与无效模型DWM —起使用而编程的应用程序,即依赖于绘画消息呈现其内容的应用程序,将不必与合成模型CDWM — 起工作。因而,参考图4,CDWM可提供对原来为在无效模型DWM中使用而开发的应用程序的支持。这些应用程序在这里可称为传统应用程序,并且向后兼容的支持在这里可称为传统支持。传统API指用于使用传统应用程序所兼容的无效模型DWM的操作系统的以前版本的 API。传统API 192b (图IB)允许应用程序与无效模型DWM(传统DWM) 19¾通信。传统DWM 可使用单独的传统API元素代表应用程序处理各种传统通知到CDWM,传送有关状态信息到 CDWM,并且在传统和CDWM坐标空间之间转换用于输入和焦点确定。可修改传统DWM以重定向数据到CDWM,如下所述。

[0091] 图4例示按照本发明一个示例性方面的窗口合成方法的一部分。步骤401-409表示与传统应用程序窗口相关联的内容的初始呈现,其源呈现表面(或者如果有产生该表面所需的指令则设置)是从传统窗口管理器192a(图1B)获得的。步骤411-419例示由知道合成的应用程序创建的窗口内容的呈现。

[0092] 在步骤401中,CDWM从传统窗口管理器接收用于主要窗口内容的初始更新通知, 作为传统应用程序调用传统API 192b按照设计应用程序所用的无效模型绘制桌面上的窗口的结果。例如,Microsoft® Word® XP可调用传统API,因此传统DWM 19¾绘制由用户输入的文本。在步骤403中,CDWM从主题管理器检索内容的默认网格。在步骤405中, CDWM从传统窗口管理器检索(或产生)重定向表面。这个表面可用作内容的漫射纹理。在步骤407中,CDWM保证只保留所要的传统纹理的区域,因此不呈现包含传统窗口框架、边和 /或标题的那些区域。方便地实现这个的一种方式是通过变换网格的纹理贴图坐标,使得只有所要的区域被贴图到网格的χ和y边界范围。在步骤409中,CDWM检索内容的默认材料属性。呈现传统内容所需的资源和参数现在还没有收集。

[0093] 在步骤411中,CDWM从要求呈现与窗口相关联的内容对象所需的应用程序接收信息。内容可任选地伴随有定制网格、定制纹理和/或定制材料属性。定制网格仅在应用程序想要具有现有内容对象的非标准形状时提供。如果所述内容对象是窗口基内容,则定制网格将重新定义窗口的形状。定制纹理和/或定制材料属性仅在应用程序想要给予系统定义的内容对象一个非标准外观(即,不是由活动主题指定的外观)时提供。如果所述内容对象是窗口基内容,则定制纹理和/或材料属性重新定义窗口的外观而不改变其形状。更普通地,应用程序从零开始创建内容对象并在创建时指定其网格(这可从一组预定义的系统网格中选择)、纹理和材料属性(这可从一组预定义的系统材料属性中选择)。

[0094] 在步骤413中,CDWM确定定制内容网格是否指定,且如果否,则从主题管理器检索默认的网格(步骤403)。在步骤415中,CDWM确定定制纹理是否指定,且如果否,则从主题管理器检索默认的纹理。在步骤417中,CDWM确定定制材料属性是否由应用程序指定,且如果否,则从主题管理器检索一组默认的材料属性。现在已经收集了呈现定制内容所需的资源和属性。

[0095] 在步骤419中,CDWM通过UCE编程接口根据适当的网格、纹理和材料属性装配呈现指令块以呈现内容。呈现指令块被排队以由UCE执行。指令块由UCE呈现模型在目标设备的未结束的刷新时间间隔期满时执行。

[0096] 通过提供传统支持,其中固有地集成了 CDWM和传统DWM的操作系统具有使用无效 DWM(传统DWM 192a)或合成DWM(CDWM 190)呈现桌面的能力。即,除合成模型之外操作系统还支持无效模型DWM,以便提供传统支持。因而,在没有有效执行桌面合成所需的处理器密集计算所必需的视频硬件的系统中(例如,在具有很少视频存储器的系统中,或者在没有3D加速硬件的系统中),CDWM和/或操作系统可允许用户选择应当使用合成还是传统绘制模式。可自动或人工地作出该选择。例如,可通过人工用户控制按照由用户选择的激活的视觉风格(主题)定义的绘制模式来作出选择。选择可替换地或者也可基于节能条件。 例如,当便携式设备脱开AC电源并切换到电池电源,则操作系统可实施传统绘制模式,因为视频图形处理单元(GPU)活动较少并因而消耗较少能量。

[0097] 使用上述方法和系统,操作系统可提供物理地模型化的使用高级3D图形性能的图形用户界面。窗口框架不仅有磨砂玻璃或某些其它复杂材料的外观,而且还有其特性,提供一个模拟的表面外观,它至少具有与可见内容的至少某种扭曲结合起来的某种透明性作为透明性的结果,产生半透明的效果。即,本发明不仅具有使窗口框架或边看上去像磨砂玻璃的能力,而且还能像磨砂玻璃一样表现,因为它在GUI环境中返射内容,包括虚拟光源的光谱辉亮部分,模拟与玻璃相似的折射率,使得在“磨砂玻璃”边后面的内容相应地轻微位移,并且通过一或多个像素着色器应用位图以提供在底下的内容的扭曲。

[0098] 类似磨砂玻璃或其它玻璃物理地模型化的对象为图形用户界面的用户提供许多优点。例如,玻璃的艺术外观改进了 GUI并且提供丰富的用户体验,通过为用户提供一个明亮开放的感觉而使本发明的GUI比作为其它操作系统的GUI的最终用户更想要的。同时, 物理地模型化的具有真实或接近真实的玻璃特性的磨砂玻璃还提供有用的优点。

[0099] 磨砂玻璃外观帮助用户在多窗口环境中理解窗口层顺序。着色、反射和镜面辉亮部分在桌面上创建很强的深度和层次感,并且帮助用户确定桌面上各种窗口的Z顺序。尽管某些已知的系统应用程序一致的透明性到整个窗口,但用户可能不能容易地感觉出在感兴趣的窗口内是什么内容和在窗口后面是什么内容。通过改变这种一致,每像素透明性作为Z-顺序的函数,有可能改善这个问题,但以一种不自然的非直观的方式。相反,通过将一种可调整的模糊算法结合到像素明暗着色器中,并且在呈现窗口框架的处理过程中执行这个明暗着色器,本发明模拟由真实世界的磨砂玻璃的材料不足所引起的光发散行为。这种物理地模型化的背景扭曲允许用户立即区别出背景和前景内容。并且因为效果是累积的, 叠盖的磨砂玻璃窗口框架变成从前景到背景逐渐地越来越扭曲。因而,用户可以直观地区分磨砂玻璃窗口框架在多层底下的背景内容。

[0100] 磨砂玻璃还允许用户加厚边以方便用户与GUI交互,例如,通过使得用户更容易用鼠标抓住窗口边来移动窗口或改变窗口的尺寸,但不遮盖在窗口之下的内容(因为玻璃是透明的或者半透明的)。各种磨砂玻璃效果可用于使用户更容易说出活动与不活动窗口状态的区别。另外,磨砂玻璃使用户更容易读和/或观看屏幕上的内容,因为用户可以在任何给定时间观看更多的屏幕区域(因为磨砂玻璃是半透明或透明的),并且桌面出现较少混乱,因为玻璃是显示屏幕上非突出的元素。

[0101] 那些本领域的熟练技术人员将意识到,尽管附图绘出磨砂玻璃的特定例子,但本发明不限于此。可通过应用不同的位图和/或不同的像素明暗着色器到外观的呈现来容易地改变磨砂玻璃外观。另外,应用不同的环境变量(例如,不同的光源,影响反射和镜面辉亮部分)或者改变玻璃的视觉物理属性(例如,折射率,反射等),也将影响磨砂玻璃的外观。将意识到,本发明也可用于模拟其它纹理和复合物,例如,金属、塑料、纸、棉和其它自然和合成材料。

[0102] 尽管已经相关于包括当前实现本发明的较佳模式的特定例子描述了本发明,但那些本领域熟练技术人员将意识到,存在上述系统和技术的众多变更和置换方案。因而,本发明的精神和范围应当按所附权利要求书所述来宽泛地解释。

Claims (20)

1. 一种计算机实现的方法,用于在操作系统外壳程序的图形用户界面中呈现桌面窗口,其特征在于,包括:在合成桌面窗口管理器CDWM处接收来自高级应用程序的高级应用程序内容,以将和所述高级应用程序内容对应的高级窗口内容以自底至顶的顺序显示在和所述高级应用程序对应的窗口中,其中所述高级应用程序是知道合成的应用程序;在传统桌面窗口管理器DWM处接收来自传统应用程序的传统应用程序内容,以将和所述传统应用程序内容对应的传统窗口内容以自顶至底的顺序显示在和所述传统应用程序对应的窗口中,其中所述传统应用程序是不知道合成的应用程序;由所述CDWM请求将所述传统窗口内容重定向到重定向缓冲器中;以及在所述窗口的一不透明内容部分中显示至少一部分所述高级和传统窗口内容,所述窗口具有一半透明的框架部分,其中当所显示的窗口是合成有传统窗口内容的合成窗口时, CDWM通过将经重定向的传统窗口内容用作纹理应用于网格以物理地模型化所述窗口,从而将应用程序内容从传统窗口内容中剥离并将所剥离的内容转化为图形表示。
2.如权利要求1所述的计算机实现的方法,其特征在于,所述显示步骤包括一像素着色器,它将位图应用于所述框架部分以扭曲在其之上呈现所述框架部分的内容。
3.如权利要求2所述的计算机实现的方法,其特征在于,所述位图包括玻璃的相似物。
4.如权利要求2所述的计算机实现的方法,其特征在于,所述位图包括磨砂玻璃的相似物。
5.如权利要求1所述的计算机实现的方法,其特征在于,所述网格是由当前视觉风格定义的。
6.如权利要求1所述的计算机实现的方法,其特征在于,所述网格是在所述应用程序内容信息中提供的。
7.如权利要求1所述的计算机实现的方法,其特征在于,所述纹理是由当前视觉风格定义的。
8.如权利要求1所述的计算机实现的方法,其特征在于,所述纹理是在所述应用程序内容信息中提供的。
9.如权利要求1所述的计算机实现的方法,其特征在于,还包括在所述CDWM与所述传统DWM之间切换,作为默认桌面窗口管理器。
10.如权利要求9所述的计算机实现的方法,其特征在于,所述切换基于所述当前视觉风格。
11.如权利要求9所述的计算机实现的方法,其特征在于,所述切换基于当前电源配置。
12.如权利要求1所述的计算机实现的方法,其特征在于,所述框架包括基于虚拟光源的光谱辉亮部分。
13.如权利要求1所述的计算机实现的方法,其特征在于,所述框架包括基于图形用户界面中与所述窗口分离的其它内容的反射内容。
14.如权利要求1所述的计算机实现的方法,其特征在于,所述框架部分在所述窗口具有输入焦点时是半透明的。
15.如权利要求1所述的计算机实现的方法,其特征在于,还包括:接收改变所述窗口尺寸的用户输入;将所述网格划分成每网格维度三个区域;对于每个区域,在所述区域以所述窗口的边界框为界定的任何维度中保持网格顶点的位移,而在所述区域没有以所述窗口的边界框为边界的任何维度中缩放网格顶点。
16.如权利要求1所述的计算机实现的方法,其特征在于,所述显示还包括在所述框架部分上基于在所述图形用户界面中的所述窗口后面的其它离散内容呈现折射内容。
17.如权利要求15所述的方法,其特征在于,均等地改变所述区域尺寸。
18.如权利要求15所述的方法,其特征在于,不均等地改变所述区域尺寸。
19.如权利要求15所述的方法,其特征在于,使以所述边界框界定的区域尽可能小以包含最少量的不应当缩放的材料。
20.在使用合成桌面呈现模型的计算机操作系统中,一种为只兼容于无效桌面呈现模型的传统应用程序提供传统支持的方法,其特征在于,包括:在合成桌面窗口管理器CDWM处接收来自高级应用程序的高级应用程序内容,以将和所述高级应用程序内容对应的高级窗口内容以自底至顶的顺序显示在和所述高级应用程序对应的窗口中,其中所述高级应用程序是知道合成的应用程序;在传统桌面窗口管理器DWM处接收来自传统应用程序的传统应用程序内容,以将和所述传统应用程序内容对应的传统窗口内容以自顶至底的顺序显示在和所述传统应用程序对应的窗口中,其中所述传统应用程序是不知道合成的应用程序;由所述CDWM请求将所述传统窗口内容重定向到重定向缓冲器中;当呈现一个合成有传统窗口内容的合成窗口时,由所述CDWM通过以下步骤来呈现该窗口 :将客户内容从传统窗口内容中剥离;将所剥离的客户内容转化为客户内容的光栅图像;将包括了所述客户内容的所述光栅图像和默认的非客户信息的纹理应用于网格。
CN 200480001673 2003-10-23 2004-07-21 用于呈现合成桌面窗口的方法 CN101002252B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/691,450 2003-10-23
US10/691,450 US7839419B2 (en) 2003-10-23 2003-10-23 Compositing desktop window manager
PCT/US2004/018940 WO2005045736A2 (en) 2003-10-23 2004-07-21 Compositing desktop window manager

Publications (2)

Publication Number Publication Date
CN101002252A CN101002252A (zh) 2007-07-18
CN101002252B true CN101002252B (zh) 2011-09-07

Family

ID=34521880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200480001673 CN101002252B (zh) 2003-10-23 2004-07-21 用于呈现合成桌面窗口的方法

Country Status (13)

Country Link
US (2) US7839419B2 (zh)
EP (2) EP1702289A4 (zh)
JP (1) JP2007510202A (zh)
KR (1) KR20060105422A (zh)
CN (1) CN101002252B (zh)
AU (1) AU2004279190A1 (zh)
BR (1) BRPI0406379A (zh)
CA (1) CA2501600A1 (zh)
MX (2) MXPA05007172A (zh)
RU (2) RU2360284C2 (zh)
TW (1) TW200515226A (zh)
WO (1) WO2005045736A2 (zh)
ZA (1) ZA200503158B (zh)

Families Citing this family (143)

* 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
US7817163B2 (en) 2003-10-23 2010-10-19 Microsoft Corporation Dynamic window anatomy
US7839419B2 (en) 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US8704837B2 (en) 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US7248265B2 (en) 2004-04-16 2007-07-24 Apple Inc. System and method for processing graphics operations with graphics processing unit
US7847800B2 (en) * 2004-04-16 2010-12-07 Apple Inc. System for emulating graphics operations
US8134561B2 (en) * 2004-04-16 2012-03-13 Apple Inc. System for optimizing 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
US8068103B2 (en) * 2004-06-24 2011-11-29 Apple Inc. User-interface design
US8130237B2 (en) * 2004-06-24 2012-03-06 Apple Inc. Resolution independent user interface design
US7652678B2 (en) * 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
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
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
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US8302020B2 (en) * 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing 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
US20060230105A1 (en) * 2005-04-06 2006-10-12 Ericom Software B 2001 Ltd Method of providing a remote desktop session with the same look and feel as a local desktop
US8234577B1 (en) * 2005-05-23 2012-07-31 Glance Networks, Inc. Method and apparatus for the transmission of changed host display information
US7681200B2 (en) * 2005-07-22 2010-03-16 Microsoft Corporation Secure hardware desktop buffer composition
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7752556B2 (en) * 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
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
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US7418668B2 (en) * 2005-11-30 2008-08-26 Microsoft Corporation Glass appearance window frame colorization
US20070162850A1 (en) * 2006-01-06 2007-07-12 Darin Adler Sports-related widgets
US8155682B2 (en) * 2006-05-05 2012-04-10 Research In Motion Limited Handheld electronic device including automatic mobile phone number management, and associated method
TW200806030A (en) * 2006-07-06 2008-01-16 Sin Etke Technology Co Ltd Mobile video system for vehicle
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
CN100583022C (zh) * 2006-09-27 2010-01-20 联想(北京)有限公司 获取计算机屏幕图像的方法
US8893038B2 (en) * 2006-10-03 2014-11-18 International Business Machines Corporation Graphical association of task bar entries with corresponding desktop locations
US7739613B2 (en) * 2006-11-10 2010-06-15 Microsoft Corporation Graphics tiering strategy incorporating bitmaps and window geometries
EP1939714A1 (en) * 2006-12-27 2008-07-02 Research In Motion Limited Method for presenting data on a small screen
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
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
US8201102B2 (en) * 2007-09-04 2012-06-12 Apple Inc. Opaque views for graphical user interfaces
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US8890874B2 (en) 2007-12-14 2014-11-18 Microsoft Corporation Changing visual content communication
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US20090210817A1 (en) * 2008-02-15 2009-08-20 Microsoft Corporation Mechanism for increasing remote desktop responsiveness
US7937452B2 (en) 2008-02-19 2011-05-03 Microsoft Corporation Framework for rendering plug-ins in remote access services
US9471996B2 (en) * 2008-02-29 2016-10-18 Autodesk, Inc. Method for creating graphical materials for universal rendering framework
US8134551B2 (en) * 2008-02-29 2012-03-13 Autodesk, Inc. Frontend for universal rendering framework
CN101539856B (zh) 2008-03-17 2013-01-16 国际商业机器公司 在应用共享软件中恢复被遮挡窗口的方法和装置
US8521478B2 (en) * 2008-04-01 2013-08-27 Autodesk, Inc. Automatic coloring of rigid groups of parts
US8212806B2 (en) * 2008-04-08 2012-07-03 Autodesk, Inc. File format extensibility for universal rendering framework
US8379058B2 (en) * 2008-06-06 2013-02-19 Apple Inc. Methods and apparatuses to arbitrarily transform windows
US8200896B2 (en) * 2008-06-06 2012-06-12 Microsoft Corporation Increasing remote desktop performance with video caching
US20090315900A1 (en) * 2008-06-23 2009-12-24 Microsoft Corporation Generic surface manager
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
US7577913B1 (en) * 2008-07-30 2009-08-18 International Business Machines Corporation Method of using a fovea type pointer in a video conferencing system including at least two 2-dimensional display screens forming a common virtual surface
US8667404B2 (en) * 2008-08-06 2014-03-04 Autodesk, Inc. Predictive material editor
DE112008003965T5 (de) * 2008-08-29 2011-07-14 Hewlett-Packard Development Co., L.P., Tex. Kombinieren von Schnittstellen von Shell-Anwendungen und Unteranwendungen
US8762879B1 (en) * 2008-09-01 2014-06-24 Google Inc. Tab management in a browser
US8300056B2 (en) 2008-10-13 2012-10-30 Apple Inc. Seamless display migration
US9342901B2 (en) * 2008-10-27 2016-05-17 Autodesk, Inc. Material data processing pipeline
US8584084B2 (en) * 2008-11-12 2013-11-12 Autodesk, Inc. System for library content creation
US20100141658A1 (en) * 2008-12-09 2010-06-10 Microsoft Corporation Two-dimensional shadows showing three-dimensional depth
US8363067B1 (en) * 2009-02-05 2013-01-29 Matrox Graphics, Inc. Processing multiple regions of an image in a graphics display system
US20110043535A1 (en) * 2009-08-18 2011-02-24 Microsoft Corporation Colorization of bitmaps
CN101655804B (zh) 2009-09-02 2012-07-11 国际伸得纬科技有限公司 虚拟操作系统构建方法及装置
US20110060993A1 (en) * 2009-09-08 2011-03-10 Classified Ventures, Llc Interactive Detailed Video Navigation System
US8111086B2 (en) * 2009-11-16 2012-02-07 Citrix Systems, Inc. Methods and systems for selective implementation of progressive display techniques
WO2011072497A1 (zh) * 2009-12-18 2011-06-23 联想(北京)有限公司 窗口管理方法、装置及计算设备
US8648868B2 (en) * 2010-01-06 2014-02-11 Apple Inc. Color correction to facilitate switching between graphics-processing units
US8797334B2 (en) * 2010-01-06 2014-08-05 Apple Inc. Facilitating efficient switching between graphics-processing units
US8368702B2 (en) 2010-01-06 2013-02-05 Apple Inc. Policy-based switching between graphics-processing units
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
JP5179537B2 (ja) * 2010-04-09 2013-04-10 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
US20130033521A1 (en) * 2010-04-19 2013-02-07 Tactile World Ltd. Intelligent display system and method
US9213365B2 (en) 2010-10-01 2015-12-15 Z124 Method and system for viewing stacked screen displays using gestures
US9405444B2 (en) 2010-10-01 2016-08-02 Z124 User interface with independent drawer control
US8963840B2 (en) 2010-10-01 2015-02-24 Z124 Smartpad split screen desktop
US20120218202A1 (en) 2010-10-01 2012-08-30 Sanjiv Sirpal Windows position control for phone applications
US20120092351A1 (en) * 2010-10-19 2012-04-19 Apple Inc. Facilitating atomic switching of graphics-processing units
US9396001B2 (en) * 2010-11-08 2016-07-19 Sony Corporation Window management for an embedded system
CN102609167A (zh) * 2011-01-25 2012-07-25 联想(北京)有限公司 电子设备及其显示方法
US20120274639A1 (en) * 2011-04-29 2012-11-01 Simon Boy Method for Generating images of three-dimensional data
CN102724574B (zh) * 2011-05-11 2015-02-18 新奥特(北京)视频技术有限公司 一种多路视频开窗的实现方法
US10417018B2 (en) * 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US8640047B2 (en) * 2011-06-01 2014-01-28 Micorsoft Corporation Asynchronous handling of a user interface manipulation
US9361715B2 (en) * 2011-06-02 2016-06-07 Microsoft Technology Licensing, Llc Global composition system
RU2458396C1 (ru) * 2011-07-19 2012-08-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ редактирования статических цифровых комбинированных изображений, включающих в себя изображения нескольких объектов
US9563971B2 (en) 2011-09-09 2017-02-07 Microsoft Technology Licensing, Llc Composition system thread
US20130080932A1 (en) 2011-09-27 2013-03-28 Sanjiv Sirpal Secondary single screen mode activation through user interface toggle
CN102591656B (zh) * 2011-12-28 2015-02-18 深圳万兴信息科技股份有限公司 一种窗口动画实现方法和装置
US9052414B2 (en) 2012-02-07 2015-06-09 Microsoft Technology Licensing, Llc Virtual image device
US9354748B2 (en) 2012-02-13 2016-05-31 Microsoft Technology Licensing, Llc Optical stylus interaction
US9384711B2 (en) * 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US8749529B2 (en) 2012-03-01 2014-06-10 Microsoft Corporation Sensor-in-pixel display system with near infrared filter
US9298236B2 (en) 2012-03-02 2016-03-29 Microsoft Technology Licensing, Llc Multi-stage power adapter configured to provide a first power level upon initial connection of the power adapter to the host device and a second power level thereafter upon notification from the host device to the power adapter
US9075566B2 (en) 2012-03-02 2015-07-07 Microsoft Technoogy Licensing, LLC Flexible hinge spine
US8873227B2 (en) 2012-03-02 2014-10-28 Microsoft Corporation Flexible hinge support layer
US9134807B2 (en) 2012-03-02 2015-09-15 Microsoft Technology Licensing, Llc Pressure sensitive key normalization
US9870066B2 (en) 2012-03-02 2018-01-16 Microsoft Technology Licensing, Llc Method of manufacturing an input device
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US9286122B2 (en) * 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US10031556B2 (en) 2012-06-08 2018-07-24 Microsoft Technology Licensing, Llc User experience adaptation
US9019615B2 (en) 2012-06-12 2015-04-28 Microsoft Technology Licensing, Llc Wide field-of-view virtual image projector
US9069905B2 (en) 2012-07-16 2015-06-30 Microsoft Technology Licensing, Llc Tool-based testing for composited systems
CN102799385B (zh) * 2012-07-19 2016-12-21 腾讯科技(深圳)有限公司 桌面控制方法和装置
US9355345B2 (en) 2012-07-23 2016-05-31 Microsoft Technology Licensing, Llc Transparent tags with encoded data
US8964379B2 (en) 2012-08-20 2015-02-24 Microsoft Corporation Switchable magnetic lock
US9152173B2 (en) 2012-10-09 2015-10-06 Microsoft Technology Licensing, Llc Transparent display device
TWI493501B (zh) * 2012-10-26 2015-07-21 Mstar Semiconductor Inc 圖像檔處理方法以及圖像檔處理裝置
US9513748B2 (en) 2012-12-13 2016-12-06 Microsoft Technology Licensing, Llc Combined display panel circuit
KR20140100316A (ko) * 2013-02-06 2014-08-14 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US9638835B2 (en) 2013-03-05 2017-05-02 Microsoft Technology Licensing, Llc Asymmetric aberration correcting lens
US20140310646A1 (en) * 2013-04-15 2014-10-16 Microsoft Corporation Application Window Divider Control for Window Layout Management
US9594603B2 (en) * 2013-04-15 2017-03-14 Microsoft Technology Licensing, Llc Application-to-application launch windowing
US9542906B2 (en) 2013-05-10 2017-01-10 Microsoft Technology Licensing, Llc Shared compositional resources
US9443331B2 (en) 2013-06-06 2016-09-13 Microsoft Technology Licensing, Llc Input object for routing input for visual elements
US9317891B2 (en) * 2013-06-07 2016-04-19 Ncomputing, Inc. Systems and methods for hardware-accelerated key color extraction
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
CN104750440B (zh) * 2013-12-30 2017-09-29 纬创资通股份有限公司 多屏幕的窗口管理方法、电子装置与计算机程序产品
US10120420B2 (en) 2014-03-21 2018-11-06 Microsoft Technology Licensing, Llc Lockable display and techniques enabling use of lockable displays
US10222953B2 (en) * 2014-04-30 2019-03-05 Disney Enterprises, Inc. Systems and methods for editing virtual content of a virtual space
US9659394B2 (en) * 2014-06-30 2017-05-23 Microsoft Technology Licensing, Llc Cinematization of output in compound device environment
US10324733B2 (en) 2014-07-30 2019-06-18 Microsoft Technology Licensing, Llc Shutdown notifications
US10146409B2 (en) 2014-08-29 2018-12-04 Microsoft Technology Licensing, Llc Computerized dynamic splitting of interaction across multiple content
US9733823B2 (en) * 2015-04-01 2017-08-15 Microsoft Technology Licensing, Llc View activation via hit testing in an asynchronous windowing system
CN105068714B (zh) * 2015-08-10 2019-02-05 联想(北京)有限公司 一种显示控制方法及电子设备
CN105549880A (zh) * 2015-12-08 2016-05-04 联想(北京)有限公司 一种窗口控制方法及电子设备
US20170352172A1 (en) * 2016-06-02 2017-12-07 Nextlabs, Inc. Manipulating Display Content of a Graphical User Interface
US20190056854A1 (en) * 2016-10-31 2019-02-21 Hewlett-Packard Development Company, L.P. Developing a non-rectangular user interface
US10223135B2 (en) 2016-12-30 2019-03-05 Dropbox, Inc. User interface extender

Family Cites Families (45)

* 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
JPS63174478A (en) 1987-01-14 1988-07-18 Nec Corp Special effect generator for digital television
US5113213A (en) 1989-01-13 1992-05-12 Sandor Ellen R Computer-generated autostereography method and apparatus
US5396559A (en) 1990-08-24 1995-03-07 Mcgrew; Stephen P. Anticounterfeiting method and device utilizing holograms and pseudorandom dot patterns
JPH0546568A (ja) 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> 分散アプリケーシヨン実行装置および方法
US5311329A (en) 1991-08-28 1994-05-10 Silicon Graphics, Inc. Digital filtering for lenticular printing
US5307449A (en) * 1991-12-20 1994-04-26 Apple Computer, Inc. Method and apparatus for simultaneously rendering multiple scanlines
US5303370A (en) 1992-11-13 1994-04-12 Score Group, Inc. Anti-counterfeiting process using lenticular optics and color masking
US5487145A (en) 1993-07-09 1996-01-23 Taligent, Inc. Method and apparatus for compositing display items which minimizes locked drawing areas
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
US5862325A (en) 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
GB2312119B (en) 1996-04-12 2000-04-05 Lightworks Editing Systems Ltd Digital video effects apparatus and method therefor
US5805163A (en) * 1996-04-22 1998-09-08 Ncr Corporation Darkened transparent window overlapping an opaque window
US5870088A (en) 1996-05-09 1999-02-09 National Instruments Corporation System and method for editing a control via direct graphical user interaction
US5819271A (en) 1996-06-04 1998-10-06 Multex Systems, Inc. Corporate information communication and delivery system and method including entitlable hypertext links
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 大日本スクリーン製造株式会社 印刷データ処理装置および方法
US6026433A (en) 1997-03-17 2000-02-15 Silicon Graphics, Inc. Method of creating and editing a web site in a client-server environment using customizable web site templates
US5896131A (en) * 1997-04-30 1999-04-20 Hewlett-Packard Company Video raster display with foreground windows that are partially transparent or translucent
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
US6023724A (en) 1997-09-26 2000-02-08 3Com Corporation Apparatus and methods for use therein for an ISDN LAN modem that displays fault information to local hosts through interception of host DNS request messages
US5940843A (en) 1997-10-08 1999-08-17 Multex Systems, Inc. Information delivery system and method including restriction processing
US5986652A (en) 1997-10-21 1999-11-16 International Business Machines Corporation Method for editing an object wherein steps for creating the object are preserved
US5933141A (en) * 1998-01-05 1999-08-03 Gateway 2000, Inc. Mutatably transparent displays
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
US7523415B1 (en) * 1999-06-24 2009-04-21 Porter Swain W Exclusive use display surface areas and persistently visible display of contents including advertisements
WO2001061466A1 (en) 2000-02-16 2001-08-23 Goamerica, Inc. Document creation and scheduling of applications' jobs
AU8241501A (en) * 2000-07-18 2002-01-30 Incredimail Ltd System and method for visual feedback of command execution in electronic mail systems
AU7658301A (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
EP1317737A4 (en) * 2000-08-18 2008-12-10 Amcor Ltd 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
US6700583B2 (en) * 2001-05-14 2004-03-02 Ati Technologies, Inc. Configurable buffer for multipass applications
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Tom LaStrange.An Overview of twm (Tom's Window Manager).1989,摘要,第2-4节.

Also Published As

Publication number Publication date
AU2004279190A8 (en) 2008-10-02
MXPA05007140A (es) 2005-08-26
MXPA05007172A (es) 2005-08-29
CN101002252A (zh) 2007-07-18
ZA200503158B (en) 2006-10-25
US20050088447A1 (en) 2005-04-28
KR20060105422A (ko) 2006-10-11
EP1702289A4 (en) 2008-02-27
US20110072391A1 (en) 2011-03-24
EP2112592A3 (en) 2010-01-20
US8059137B2 (en) 2011-11-15
BRPI0406379A (pt) 2005-08-09
AU2004279190A1 (en) 2005-06-23
CA2501600A1 (en) 2005-04-23
JP2007510202A (ja) 2007-04-19
RU2005120233A (ru) 2006-01-20
EP1702289A2 (en) 2006-09-20
WO2005045736A3 (en) 2006-07-20
RU2009109090A (ru) 2010-09-20
EP2112592A2 (en) 2009-10-28
WO2005045736A2 (en) 2005-05-19
RU2360284C2 (ru) 2009-06-27
TW200515226A (en) 2005-05-01
US7839419B2 (en) 2010-11-23

Similar Documents

Publication Publication Date Title
Ni et al. A survey of large high-resolution display technologies, techniques, and applications
US7620913B2 (en) Tree visualization system and method based upon a compressed half-plane model of hyperbolic geometry
US8379035B2 (en) Systems and methods for providing intermediate targets in a graphics system
US8713460B2 (en) User interfaces
US5710896A (en) Object-oriented graphic system with extensible damage repair and drawing constraints
US6707458B1 (en) Method and apparatus for texture tiling in a graphics system
EP0702330B1 (en) Layout of node-link structure in space with negative curvature
JP4203779B2 (ja) 表示要素立体化装置及びその方法
JP4371355B2 (ja) 制御可能なテクスチャサンプリングを提供するためのシステムおよび方法
US8125481B2 (en) Lightweight three-dimensional display
CA2124603C (en) Method and apparatus for operating on the model data structure of an image to produce human perceptible output in the context of the image
EP0447095B1 (en) Workspace displays
US6597358B2 (en) Method and apparatus for presenting two and three-dimensional computer applications within a 3D meta-visualization
US7844917B2 (en) Optimal display of multiple windows within a computer display
KR101867494B1 (ko) 저지연 유저 입력 프로세싱과 피드백용 하이브리드 시스템 및 방법
US5528735A (en) Method and apparatus for displaying data within a three-dimensional information landscape
US7400322B1 (en) Viewport-based desktop rendering engine
US5596694A (en) Method and apparatus for indicating a change in status of an object and its disposition using animation
Hughes et al. Computer graphics: principles and practice
EP1462998B1 (en) Markup language and object model for vector graphics
Dachsbacher et al. Implicit visibility and antiradiance for interactive global illumination
CA2501516C (en) Visual and scene graph interfaces
US7692658B2 (en) Model for layout animations
DE60100452T2 (de) Dynamische einstellung von muster zum pixel filterung in antwort auf benutzereingang und/oder sensoreingang
JP4698893B2 (ja) 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
C14 Grant of patent or utility model
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model