`(12) Patent Application Publication (10) Pub. No.: US 2005/008.8447 A1
`Hanggie et al.
`(43) Pub. Date:
`Apr. 28, 2005
`
`US 2005.008.8447A1
`
`(54) COMPOSITING DESKTOP WINDOW
`MANAGER
`(76) Inventors: Scott Hanggie, Redmond, WA (US);
`Victor Tan, Kirkland, WA (US);
`Gerardo Bermudez, Redmond, WA
`(US); Gregory D. Swedberg, Bellevue,
`WA (US); Mark Richard Ligameri,
`Snohomish, WA (US); Greg Scott
`Melander, Redmond, WA (US)
`Correspondence Address:
`BANNER & WITCOFF LTD.,
`ATTORNEYS FOR MICROSOFT
`1001 GSTREET, N.W.
`ELEVENTH STREET
`WASHINGTON, DC 20001-4597 (US)
`(21) Appl. No.:
`10/691,450
`(22) Filed:
`Oct. 23, 2003
`Publication Classification
`
`(51) Int. Cl." ............................ G09G 5/36; G06F 12/02;
`
`(52) U.S. Cl. ......................... 345/545; 34.5/543; 34.5/522;
`345/547; 34.5/530; 34.5/581;
`345/619; 34.5/501; 34.5/629;
`34.5/582; 34.5/592; 34.5/589
`
`(57)
`
`ABSTRACT
`
`A method and System for rendering a desktop on a computer
`using a composited desktop model operating System are
`disclosed. A composited desktop window manager, upon
`receiving content information from application programs,
`draws the window to a buffer memory for future reference,
`and takes advantage of advanced graphics hardware and
`visual effects to render windows based on content on which
`they are drawn. The windows may also be rendered based on
`environment variables including virtual light Sources. The
`frame portion of each window may be generated by pixel
`Shading a bitmap having the appearance of frosted glass
`based on the content of the desktop on top of which the
`frame is displayed. Legacy Support is provided So that the
`operating System can draw and render windows generated
`by legacy applications to look consistent with non-legacy
`application windows.
`
`
`
`-6s Type Fite Folder
`
`ra. ---an core ---a ------roc-
`
`site type. Date Modified
`& My Pictures
`Ras, Type, file folder
`
`--
`
`APPLE 1006
`
`1
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 1 of 7
`
`US 2005/0088447 Al
`
`YSLNIYd
`
`88}
`
`681
`
`SdAWVadS
`
`
`
`Vauv1¥001
`
`MYOMLAN
`
`08
`
`aLOWS3Y
`
`YALNdWOS
`
`aLOWSY
`
`NOILLVOIIddV
`
`SWVH5DOud
`
`AOVSYSLNI
`SOVAYSLNI
`
`MYOMLAN
`
`LIAdNI¥3aSN
`
`A)El
`
`LINN|WdsHdl¥3dONILWH3d0';InginoO3IA
`
`[oefo.a,0el-
`ONISS300Udel|€8I02}.
`~SNb9P|SHIrhsy.7~y7eZ\19l9S|.~S7a
`
`|Yaldvay
`
`JOVANIWALSAS
`
`291.WVYDOud|WWY9O0UdH3SHLO|NOILVONddV|DNILWYSdO
`SolliHOLINOWye48h
`81.0017
`
`:|
`
`
`$1ishLeh.{vivawvy90ud
`
`/ -ATaVAOWSYATEVAOWSY-NON
`
`
`
`
`.AMOWAW“IOA-NONAYOWAIN“TOA-NON
`
`
`
`
`
`JOVAYSINIJOVAYALNI
`
`Or!
`
`.NOIMLVOMdd¥
`
`_SWVH5DO0ud
`
`
`
`WVd90udYSHLO
`
`SJINGOW.
`
`2
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 2 of 7
`
`US 2005/0088447 A1
`
`191
`
`Application
`Software
`
`190
`
`Compositing Desktop Window Manager
`190a (CDWM)
`190b
`Application
`Subsystem
`Programming
`Programming
`Interface
`Interface
`
`UlObject
`
`
`
`
`
`
`
`192
`Legacy Graphical User
`Interface Subsystem
`Legacy Window? 192a
`Manager
`Legacy Graphics
`Device interface
`
`192b
`
`Theme Manager
`M
`
`194
`
`Universal Compositing Engine (UCE)
`Programming
`interface
`
`Resource
`Manager
`
`1940
`Rendering
`Module
`
`
`
`
`
`
`
`
`
`3D Graphics Interface
`(Direct3D, OpenGL, etc)
`
`- 195
`
`196 - VideoDriver
`Device Object
`
`VideoDriver
`Device Object
`
`- 196
`
`197
`
`Display Device
`FIG. B
`
`- 197
`Display Device
`
`3
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 3 of 7
`
`US 2005/008.8447 A1
`
`COMPOSITING-AWARE
`APPLICATIONS
`
`LEGACY
`APPLICATIONS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`APPLICATION CREATES A
`COMPOSITED WINDOW WITH
`APPLICATION-SPECIFIED
`CONTENT WIACDWMAP
`
`
`
`
`
`CDWMCREATES AND
`MANAGES WINDOW AND
`CONTENT OBJECT
`
`
`
`nonenes arranese wanteerian-A
`
`APPLICATIONNOTIFIES
`CDWM OF VISUALUPDATE TO
`WINDOW OR CONTENT
`
`
`
`
`
`
`
`
`
`CDWM REQUESTSLEGACY
`SUBSYSTEM TO REDIRECT
`WINDOW CONTENT TO
`MEMORY SURFACE
`
`resE"
`
`LEGACYSUBSYSTEM
`NOTIFIES CDWM OF VISUAL
`UPDATE TO CONTENT
`SURFACE
`
`209
`
`
`
`WINDOWICONTENT
`SIZE UPDATE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`COWMRESIZES FRAME
`MESH, QUEUESUPDATE
`PRIMITIVE REOUEST TOUCE
`
`CDWMUPDATES WINDOW
`TRANSFORM(S), QUEUES
`TRANSFORM UPDATE
`REQUEST TOUCE
`
`22
`
`225
`
`
`
`CDWMRESIZESCONTENT
`MESH, QUEUESUPDATE
`PRIMITIVE REQUEST TOUCE
`
`
`
`FIG.2
`
`UCE DEQUEUES CDWM
`UPDATES INSYNC WITH
`VIDEO REFRESH CYCLE,
`RENDERS TO APPROPRIATE
`DISPLAY DEVICE(S)
`
`4
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 4 of 7
`
`US 2005/0088447 A1
`
`
`
`s
`
`CS
`E
`O
`
`t
`CD
`
`c |
`
`5
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 5 of 7
`
`US 2005/0088447 A1
`
`401
`
`RECEIVE INITIAL
`CONTENTUPDATE
`NOTIFICATION FROM
`LEGACY WINDOW
`MANAGER
`
`REEMENT
`RECQUEST FROM
`APPLICATION
`
`411
`
`403
`
`RETRIEVE DEFAULT
`MESH FROM THEME e-N
`MANAGER
`
`DERIVETEXTURE FROM
`405 NREDIRECTION BUFFER
`FROM LEGACY WINDOW
`MANAGER
`
`
`
`
`
`
`
`413
`
`PECIFIED2
`
`Y
`
`EGE
`PECIFIED2
`
`
`
`415
`
`407
`
`409
`
`REMOVE LEGACY
`FRAME AND BORDER
`AREAS
`
`Y
`
`
`
`
`
`CUSTOM
`RETRIEVE DEFAULT
`MATERIAL PROPERTIES-N- (MATERAL PROPERIES
`FROM THEME MANAGER
`SPECIFIED?
`
`417
`
`FIG. 4
`
`
`
`
`
`Y
`
`ASSOCIATEAPPLICABLEl
`m
`TEXTURE ANDMATERIAL-N /19
`PROPERTIES WITH
`APPLICABLE MESH
`
`SEND CONTENT UPDATE
`REQUEST TOUCE
`
`421
`
`6
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 6 of 7
`
`US 2005/0088447 A1
`
`
`
`Date Modified
`
`$2. Type. File Folder
`
`617 619
`
`
`
`613
`
`New Application
`
`603
`
`7
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 7 of 7
`
`US 2005/0088447 A1
`
`
`
`705C
`
`705d
`X
`&
`
`701
`
`8
`
`
`
`US 2005/0O88447 A1
`
`Apr. 28, 2005
`
`COMPOSITING DESKTOP WINDOW MANAGER
`
`FIELD OF THE INVENTION
`0001. The invention relates generally to computer graph
`ics and computer operating Systems. More specifically, the
`invention provides a 3D compositing desktop window man
`ager, with intrinsic Support for composition-agnostic legacy
`applications, for managing and rendering the desktop onto a
`Single or multiple computer displays for an operating Sys
`tem.
`
`BACKGROUND OF THE INVENTION
`0002 Computer operating systems typically have a shell
`that provides a graphical user interface (GUI) to an end-user.
`The shell consists of one or a combination of Software
`components that provide direct communication between the
`user and the operating System. The graphical user interface
`typically provides a graphical icon-oriented and/or menu
`driven environment for the user to interact with the operat
`ing System, and is often based on a desktop metaphor. More
`Specifically, the graphical user interface is designed to model
`the real world activity of working at a desk. The desktop
`environment typically occupies the entire Surface of a single
`display device, or may span multiple display devices, and
`hosts Subordinate user interface objects Such as icons,
`menus, cursors and windows.
`0003) Among the types of rendered objects hosted by the
`desktop environment are visually delineated areas of the
`Screen known as windows. A window is typically dedicated
`to a unique user activity, and is created and managed by
`either a third party Software application or a System appli
`cation. Each window behaves and displayS its content inde
`pendently as if it were a virtual display device under control
`of its particular application program. Windows can typically
`be interactively resized, moved around the display, and
`arranged in Stacked order So as to fully or partially overlap
`one another. In Some windowing environments, a window
`can assume discreet Visual or behavioral States, Such as
`minimized in size to an icon or maximized in size to occupy
`the entire display Surface. The collection of desktop win
`dows are commonly assigned a top to bottom order in which
`they are displayed, known in the art as the Z-order, whereby
`any window overlies all other windows lower than itself
`with respect to Z-order occupying the same projected posi
`tion on the Screen. A Single, Selected window has the “focus’
`at any given time, and is receptive to the users input. The
`user can direct input focus to another window by clicking the
`window with a mouse or other pointer device, or by employ
`ing a System-defined keyboard Shortcut or key combination.
`This allows the user to work efficiently with multiple appli
`cation programs, files and documents in a manner Similar to
`the real world Scenario of managing paper documents and
`other items which can be arbitrarily Stacked or arranged on
`a physical desktop.
`0004. A drawback to many prior graphical user interface
`desktop implementations is their limited capacity to present
`Visually rich content or exploit enhancements in graphical
`rendering technology. Such enhancements include real-time
`rendering of physically modeled (lit, shaded, textured, trans
`parent, reflecting, and refracting) two and three-dimensional
`content and Smooth, high-performance animations. In con
`trast to the limited Services available for utilizing graphical
`
`rendering enhancements on the desktop, Visually rich con
`tent is possible within certain application programs running
`windowed or full Screen within the graphical user interfaces
`of WindowS(R) brand operating Systems and like operating
`System shells. The types of application programs that present
`Such content are video games with real time 3D animation
`and effects, advanced graphical authoring tools Such as ray
`tracers and advanced 2D and 3D publishing applications.
`Since the Visual output of these programs is either restricted
`to the content area of its application window(s) or rendered
`full-screen to the exclusion of other windows and the
`desktop itself, the rich graphical output of the application
`program in no way contributes to the presentation of the
`desktop environment.
`0005 Computer operating systems employ a software
`layer responsible for managing user interface objects Such as
`icons, menus, cursors, windows and desktops, arbitrating
`events from input devices Such as the mouse and keyboard;
`and providing user interface Services to Software applica
`tions. This software layer may be referred to as the Desktop
`Window Manager (DWM). The rendering logic, input event
`routing, and application programming interfaces (APIs) of
`the Desktop Window Manager (DWM) collectively embody
`user interface policy, which in turn defines the overall user
`experience of the operating System. A primary reason for the
`lack of rich, Visual desktops up to the present has been the
`methods with which DWMs manage and render the desktop.
`Prior DWM implementations employ an “invalidation”
`model for rendering the desktop that evolved primarily from
`the need to conserve Video and System memory resources as
`well as CPU and GPU bandwidth.
`0006. In the invalidation model, when a window is
`resized or moved, or when an application wishes to redraw
`all or part of a window, the affected portion of the display is
`“invalidated”. The DWM internally invalidates areas
`affected by a window Size or move, whereas an application
`attempting a redraw all or a portion of its own window
`instructs the operating System, via an API, to invalidate the
`specified area of its window. In either case, the DWM
`processes the invalidation request by determining the Subset
`of the requested region that is in actual need of an on-Screen
`update. The DWM typically accomplishes this by consulting
`a maintained list of interSecting regions associated with the
`target window, other windows overlying the target, clipping
`regions associated with the affected windows, and the Visible
`boundaries of the display. The DWM subsequently sends
`each affected application a paint message specifying the
`region in need of an update in a proScribed top-to-bottom
`order. Applications can choose to either honor or ignore the
`Specified region. Any painting performed by an application
`outside the local update region is automatically clipped by
`the DWM using services provided by a lower. level graphi
`cal rendering engine Such as the Graphics Device Interface
`(GDI).
`0007 An advantage of the invalidation-messaging model
`is conservation of display memory. That is, an invalidation
`based DWM only needs to maintain enough buffer memory
`to draw a Single desktop, without “remembering what
`might be underneath presently displayed content. However,
`because windows on the desktop are rendered in a top-down
`order, features Such as non-rectangular windows and rich 2D
`animations via GDI require CPU intensive calculations
`involving complex regions and/or extensive Sampling of the
`
`9
`
`
`
`US 2005/0O88447 A1
`
`Apr. 28, 2005
`
`display Surface (thereby limiting the potential for graphics
`hardware-based acceleration), whereas other features Such
`as transparency, Shadows, 3D graphics and advanced light
`ing effects are extremely difficult and very resource inten
`SVC.
`0008) By way of example, the Microsoft Windows(R XP
`window manager, historically known as USER, has served
`as the dominant component of the graphical user interface
`subsystem (now known as Win32) since the advent of the
`Windows(R brand operating system. USER employs the
`2-dimensional Graphics Device Interface (GDI) graphic
`rendering engine to render the display. GDI is the other
`major Subcomponent of Win32, and is based on rendering
`technology present in the original WindowS(R) brand oper
`ating system. USER renders each window to the display
`using an invalidation-messaging model in concert with GDI
`clipping regions and 2D drawing primitives. A primary
`activity of USER in rendering the desktop involves the
`identification of regions of the display in need of Visual
`update, and informing applications of the need and location
`to draw, as per the invalidation model of desktop rendering.
`0009. The next development in desktop rendering is a
`bottom-to-top rendering approach referred to as desktop
`compositing. In a compositing DWM, or CDWM, the desk
`top is drawn from the bottom layer up to the top layer. That
`is, the desktop background is drawn first, followed by icons,
`folders, and content Sitting directly on the desktop, followed
`by the folder(s) up one level, and so forth. By rendering the
`desktop from the bottom up, each iterative layer can base its
`content on the layer below it. However, desktop compositing
`is a memory intensive process because the CDWM main
`tains in memory a copy of each item drawn to the desktop.
`Prior to recent market changes and manufacturing tech
`niques that have made advanced Video hardware and com
`puter memory far more affordable, only commercial, expen
`Sive, high-end computing Systems have been able to
`implement compositing engines, Such as for preparing Spe
`cial effects for movies.
`0.010 The evolution of mid- and lower-end computer
`Video hardware has been driven in large part by the graphical
`Services available in popular operating Systems. However,
`the graphical Services available in popular operating Systems
`have not significantly advanced for a variety of reasons,
`including the need to maintain compatibility with older
`application Software and the limited capabilities of the
`affordable range of video hardware. More recently, however,
`real-time 3D computer games have overtaken operating
`Systems as the primary market incentive for evolving retail
`Video hardware, which has in a short time attained an
`exceptional level of Sophistication. Real time, hardware
`based 3D acceleration is now available to consumers at
`reasonable cost. Thus, graphics hardware features once
`considered highly advanced,. Such as accelerated texture and
`lighting algorithms, 3D transformations and the ability to
`directly program the GPU are readily available. At present,
`generally only game Software and highly specialized graph
`ics applications actively exploit Such features, and in order
`to do so they must bypass the legacy Win32 window
`manager (USER) and GDI.
`0.011) Another obstacle in implementing a compositing
`desktop model is that legacy applications written for use
`with an invalidation model DWM will not function property
`
`in a compositing environment. This is because the core
`rendering logic of the legacy application is based on the
`operating systems invalidation-model DWM APIs. That is,
`rather than render window content in direct response to user
`interaction or changes in internal State, the legacy applica
`tion will draw only upon receiving of a paint message
`generated either by the operating System or its own invali
`dation request. The most difficult remedy consists of devis
`ing a means by with the compositing DWM Surrogates the
`legacy GUI platform on behalf of the application. The
`Simpler alternatives consist of excluding the application
`from the composited desktop environment (an approach
`known in the art as "sand boxing”), or simply abandoning
`legacy application compatibility altogether.
`0012. Thus, it would be an advancement in the art to
`provide a rich, full featured operating System that renders a
`desktop using a compositing model, and to provide a desk
`top window manager that can take advantage of advanced
`graphics hardware. It would be a further advancement in the
`art to provide a desktop that uses advanced textures, light
`ing, and 3D transformations, yet Supports legacy applica
`tions originally written for use in an invalidation-modeled
`desktop manager.
`
`BRIEF SUMMARY OF THE INVENTION
`0013 The following presents a simplified summary of the
`invention in order to provide a basic understanding of Some
`aspects of the invention. This Summary is not an extensive
`overview of the invention. It is not intended to identify key
`or critical elements of the invention or to delineate the Scope
`of the invention. The following Summary merely presents
`Some concepts of the invention in a simplified form as a
`prelude to the more detailed description provided below.
`0014) To overcome limitations in the prior art described
`above, and to overcome other limitations that will be appar
`ent upon reading and understanding the present Specifica
`tion, the present invention is directed to a composited
`desktop providing advanced graphics and rendering capa
`bilities.
`0015. A first illustrative aspect of the invention provides
`Software and a computer implemented method for rendering
`a desktop window in an operating System where, when a
`compositing desktop window manager (CDWM) manages
`an application-rendered memory Surface comprising win
`dow content, the CDWM uses this pre-rendered surface to
`display the content along with that of other windows on the
`composited display. Specifically, the CDWM uses the redi
`rected display Surface for a window, or a portion thereof, as
`a texture applied to a 2D or 3D mesh primitive, which is in
`turn forwarded to the low-level graphics engine for render
`ing. This illustration includes the rendering of a 3D window
`frame backing the application-generated content portion of
`the window. The composited window frame consists of
`Separate texture(s) mapped to a separate, resizable 3D mesh
`primitive, which is forwarded to the graphics rendering
`engine together with optional parameters to a pixel shader
`routine that the CDWM may have previously loaded into the
`graphics display device, to produce the appearance of a
`frosted glass slab backed by a drop Shadow. Additional
`illustrative aspects of the invention provide for legacy
`Support for applications designed for use with invalidation
`model desktop window managers.
`
`10
`
`
`
`US 2005/0O88447 A1
`
`Apr. 28, 2005
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0016 A more complete understanding of the present
`invention and the advantages thereof may be acquired by
`referring to the following description in consideration of the
`accompanying drawings, in which like reference numbers
`indicate like features, and wherein:
`0017 FIG. 1A illustrates an operating environment that
`may be used for one or more aspects of an illustrative
`embodiment of the invention.
`0018 FIG. 1B illustrates the distribution of function and
`Services among components in an illustrative embodiment of
`a composited desktop platform.
`0.019
`FIG. 2 illustrates a compositing method according
`to an illustrative aspect of the invention.
`0020 FIG. 3 illustrates a window according to an illus
`trative aspect of the invention.
`0021
`FIG. 4 illustrates a portion of a window compos
`iting method according to an illustrative aspect of the
`invention.
`0022 FIG. 5 illustrates a frosted glass framed window
`rendered according to an illustrative aspect of the invention.
`0023 FIG. 6 illustrates a window with a dynamic win
`dow anatomy.
`0024 FIG. 7 illustrates regions used during mesh resiz
`ing.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`In the following description of the various embodi
`0.025
`ments, reference is made to the accompanying drawings,
`which form a part hereof, and in which is shown by way of
`illustration various embodiments in which the invention
`may be practiced. It is to be understood that other embodi
`ments may be utilized and Structural and functional modi
`fications may be made without departing from the Scope and
`Spirit of the present invention.
`0026. The present invention provides a desktop window
`manager (DWM) that uses desktop compositing as its pre
`ferred rendering model. The inventive desktop window
`manager is referred to herein as a Compositing Desktop
`Window Manager (CDWM). The CDWM, together with the
`composition Subsystem, referred to as the Unified Compos
`iting Engine (UCE), provides 3D graphics and animation,
`Shadows, transparency, advanced lighting techniques and
`other rich Visual features on the desktop. The compositing
`rendering model used herein intrinsically eliminates the
`invalidation Step in rendering and minimizes or eliminates
`the need to transmit paint and other notification messages
`because the System retains Sufficient State information to
`render each window as required.
`Illustrative Operating Environment
`0027)
`0028 FIG. 1 illustrates an example of a suitable com
`puting system environment 100 in which the invention may
`be implemented. The computing system environment 100 is
`only one example of a Suitable computing environment and
`is not intended to Suggest any limitation as to the Scope of
`use or functionality of the invention. Neither should the
`computing environment 100 be interpreted as having any
`
`dependency or requirement relating to any one or combina
`tion of components illustrated in the exemplary operating
`environment 100.
`0029. The invention is operational with numerous other
`general purpose or Special purpose computing System envi
`ronments or configurations. Examples of well known com
`puting Systems, environments, and/or configurations that
`may be suitable for use with the invention include, but are
`not limited to, personal computers, Server computers, por
`table and hand-held devices Such as personal digital assis
`tants (PDAs), tablet PCs or laptop PCs; multiprocessor
`Systems, microprocessor-based Systems, Set top boxes, pro
`grammable consumer electronics, network PCs, minicom
`puters, mainframe computers, distributed computing envi
`ronments that include any of the above Systems or devices,
`and the like.
`0030 The invention may be described in the general
`context of computer-executable instructions, Such as pro
`gram modules, being executed by a computer. Generally,
`program modules include routines, programs, objects, com
`ponents, data Structures, etc. that perform particular tasks or
`implement particular abstract data types. The invention may
`also be practiced in distributed computing environments
`where tasks are performed by remote processing devices that
`are linked through a communications network. In a distrib
`uted computing environment, program modules may be
`located in both local and remote computer Storage media
`including memory Storage devices.
`0031. With reference to FIG. 1, an illustrative system for
`implementing the invention includes a general purpose
`computing device in the form of a computer 110. Compo
`nents of computer 110 may include, but are not limited to,
`a processing unit 120, a System memory 130, and a System
`buS 121 that couples various System components including
`the System memory to the processing unit 120. The System
`bus 121 may be any of several types of bus structures
`including a memory bus or memory controller, a peripheral
`bus, and a local bus using any of a variety of bus architec
`tures. By way of example, and not limitation, Such archi
`tectures include Industry Standard Architecture (ISA) bus,
`Micro Channel Architecture (MCA) bus, Enhanced ISA
`(EISA) bus, Video Electronics Standards Association
`(VESA) local bus, Advanced Graphics Port (AGP) bus, and
`Peripheral Component Interconnect (PCI) bus also known as
`Mezzanine bus.
`0032 Computer 110 typically includes a variety of com
`puter readable media. Computer readable media can be any
`available media that can be accessed by computer 110 and
`includes both volatile and nonvolatile media, removable and
`non-removable media. By way of example, and not limita
`tion, computer readable media may comprise computer
`Storage media and communication media. Computer Storage
`media includes both volatile and nonvolatile, removable and
`non-removable media implemented in any method or tech
`nology for Storage of information Such as computer readable
`instructions, data Structures, program modules or other data.
`Computer Storage media includes, but is not limited to,
`RAM, ROM, EEPROM, flash memory or other memory
`technology, CD-ROM, digital versatile disks (DVD) or other
`optical disk Storage, magnetic cassettes, magnetic tape,
`magnetic disk Storage or other magnetic Storage devices, or
`any other medium which can be used to Store the desired
`
`11
`
`
`
`US 2005/0O88447 A1
`
`Apr. 28, 2005
`
`information and which can accessed by computer 110.
`Communication media typically embodies computer read
`able instructions, data Structures, program modules or other
`data in a modulated data Signal Such as a carrier wave or
`other transport mechanism and includes any information
`delivery media. The term "modulated data Signal” means a
`Signal that has one or more of its characteristics Set or
`changed in Such a manner as to encode information in the
`Signal. By way of example, and not limitation, communi
`cation media includes wired media Such as a wired network
`or direct-wired connection, and wireleSS media Such as
`acoustic, RF, infrared and other wireleSS media. Combina
`tions of the any of the above should also be included within
`the Scope of computer readable media.
`0033. The system memory 130 includes computer stor
`age media in the form of Volatile and/or nonvolatile memory
`such as read only memory (ROM) 131 and random access
`memory (RAM) 132. A basic input/output system 133
`(BIOS), containing the basic routines that help to transfer
`information between elements within computer 110, such as
`during start-up, is typically stored in ROM 131. RAM 132
`typically contains data and/or program modules that are
`immediately accessible to and/or presently being operated
`on by processing unit 120. By way of example, and not
`limitation, FIG. 1 illustrates operating System 134, applica
`tion programs 135, other program modules 136, and pro
`gram data 137.
`0034. The computer 110 may also include other remov
`able/non-removable, Volatile/nonvolatile computer Storage
`media. By way of example only, FIG. 1 illustrates a hard
`disk drive 141 that reads from or writes to non-removable,
`nonvolatile magnetic media, a magnetic disk drive 151 that
`reads from or writes to a removable, nonvolatile magnetic
`disk 152, and an optical disk drive 155 that reads from or
`writes to a removable, nonvolatile optical disk 156 Such as
`a CD ROM or other optical media. Other removable/non
`removable, Volatile/nonvolatile computer Storage media that
`can be used in the exemplary operating environment
`include, but are not limited to, magnetic tape cassettes, flash
`memory cards, digital versatile disks, digital Video tape,
`Solid state RAM, Solid state ROM, and the like. The hard
`disk drive 141 is typically connected to the system bus 121
`through an non-removable memory interface Such as inter
`face 140, and magnetic disk drive 151 and optical disk drive
`155 are typically connected to the system bus 121 by a
`removable memory interface, such as interface 150.
`0035. The drives and their associated computer storage
`media discussed above and illustrated in FIG. 1, provide
`Storage of computer readable instructions, data Structures,
`program modules and other data for the computer 110. In
`FIG. 1, for example, hard disk drive 141 is illustrated as
`Storing operating System 144, application programs 145,
`other program modules 146, and program data 147. Note
`that these components can either be the same as or different
`from operating System 134, application programs 135, other
`program modules 136, and program data 137. Operating
`System 144, application programs 145, other program mod
`ules 146, and program data 147 are given different numbers
`here to illustrate that, at a minimum, they are different
`copies. A user may enter commands and information into the
`computer 110 through input devices such as a keyboard 162
`and pointing device 161, commonly referred to as a mouse,
`trackball or touch pad. Other input devices (not shown) may
`
`include a microphone, joystick, game pad, Satellite dish,
`Scanner, or the like. These and other input devices are often
`connected to the processing unit 120 through a user input
`interface 160 that is coupled to the system bus, but may be
`connected by other interface and bus structures, Such as a
`parallel port, game port or a universal Serial bus (USB). A
`monitor 184 or other type of display device is also connected
`to the System buS 121 via an interface, Such as a video
`interface 183. Computer 110 may also include a digitizer
`185 for use in conjunction with monitor 184 to allow a user
`to provide input using a stylus input device 186. In addition
`to the monitor, computerS may also include other peripheral
`output devices such as speakers 189 and printer 188, which
`may be connected through an output peripheral interface
`187.
`0036) The computer 110 may operate in a networked
`environment using logical connections to one or more
`remote computers, Such as a remote computer 180. The
`remote computer 180 may be a personal computer, a Server,
`a router, a network PC, a peer device or other common
`network node, and typically includes many or all of the
`elements described above relative to the computer 110,
`although only a memory Storage device 181 has been
`illustrated in FIG. 1. The logical connections depicted in
`FIG. 1 include a local area network (LAN) 171 and a wide
`area network (WAN) 173, but may also include other
`networkS. Such networking environments are commonplace
`in offices, enterprise-wide computer networks, intranets and
`the Internet.
`0037. When used in a LAN networking environment, the
`computer 110 is connected to the LAN 171 through a
`network interface or adapter 170. When used in a WAN
`networking environment, the computer 110 typically
`includes a modem 172 or other means for establishing
`communications over the WAN 173, Such as the Internet.
`The modem 172, which may be internal or external, may be
`connected to the System buS 121 via the user input interface
`160, or other appropriate mechanism. In a networked envi
`ronment, program modules depicted relative to the computer
`110, or portions thereof, may be stored in the remote
`memory Storage device. By way of example, and not limi
`tation, FIG. 1 illustrates remote application programs 182 as
`residing on memory device 181. It will be appreciated that
`the network connections shown are exemplary and other
`means of establishing a communications link between the
`computerS may be used.
`0038 Illustrative Embodiments
`0039 The invention may use a compositing desktop
`window manager (CDWM) to draw and maintain the desk
`top display using a composited desktop model, i.e., a bot
`tom-to-top rendering methodology. The CDWM may main
`tain content in a buffer memory area for future reference.
`The CDWM composes the desktop by drawing the desktop
`from the bottom up, beginning with the desktop background
`and proceeding through overlapping windows in reverse Z.
`order. While composing the desktop, the CDWM may draw
`each window based in part on the content on top of which
`the window is being drawn, and based in part on other
`environmental factors (e.g., light Source, reflective proper
`ties, etc.). For example, the CDWM may use the alpha
`channel of an ARGB for