`a2) Patent Application Publication (10) Pub. No.: US 2005/0088447 Al
`(43) Pub. Date: Apr. 28, 2005
`
`Hanggie etal.
`
`US 20050088447A1
`
`(54) COMPOSITING DESKTOP WINDOW
`MANAGER
`
`(52) US. Che
`
`(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 G STREET, N.W.
`ELEVENTH STREET
`WASHINGTON, DC 20001-4597 (US)
`
`(21) Appl. No.:
`
`10/691,450
`
`(22)
`
`Filed:
`
`Oct. 23, 2003
`
`Publication Classification
`
`(51)
`
`Int. Ch? oe G09G 5/36; GO6F 12/02;
`GO6T 1/00; GO6T 15/00; GO6T 1/60;
`G09G 5/00; GO6F 15/00; GO9G 5/02
`
`caccecccssecteessien 345/545; 345/543; 345/522;
`345/547; 345/530; 345/581;
`345/619; 345/501; 345/629;
`345/582; 345/592; 345/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 windowto 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 mayalso 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 windowsgenerated
`by legacy applications to look consistent with non-legacy
`application windows.
`
`503
`
`"® Axon Statin Ge Po B
`
`
`
`ep Type:File Folder
`
`ee
`1.
`SteType, LateModified
`<> My Pictures
`QeType: File Folder
`
`APPLE 1006
`
`APPLE 1006
`
`1
`
`
`
`Patent Application Publication Apr. 28,2005 Sheet 1 of 7
`
`US 2005/0088447 Al
`
`YALNIYd
`
`88}
`
`681
`
`SuaWVadS
`
`VauvWO01
`
`MYOMLAN
`
`08
`
`ALOWSY
`
`YALNdWOO
`
`aLOWSd
`
`NOILLVOMddV
`
`SWVYDOud
`
`
`
`LINN|WudSHdlddd.ONILWH3d0'
`
`Lemeeeebene.xcorre7O&t.
`|81021.
`~~7~y7el19h9S|.~NL7a
`
`|YaLdvaVy
`
`
`WLOleSaTNaoOwSWVYDOYd|WALSAS
`
`791WYYDOUd|WYHDOUdH3HLO|NOLLWONddv|DNILYHadO
`7~Olb4YOLINOWSteh
`SSNbOblSProl
`0017
`
`JOVAYSLNI
`
`81
`
`Or!
`
`.NOILVOMdd¥
`
`_SWVH5DOud
`
`WALSAS
`
`JOVSYS1NI
`MYOMLAN
`LAdNIHSN
`SOVAYSLNI
`
`.AYOWSW“IOA-NONaTaVAOWSY
`
`AYOWAW“IOA-NON
`ATEVAOWSY-NON
`
`WVdSO0udYAHLO
`
`SIINGOW
`
`JOVIYFINI
`
`FOVAYALNI
`
`
`
`|WLVdWWu90ud
`
`2
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 28,2005 Sheet 2 of 7
`
`US 2005/0088447 Al
`
`190
`
`
`
`Compositing Desktop Window Manager
`Legacy Graphical User
`190a
`(CDWM)
`190b
`
`
`Interface Subsystem
`
`
`Legacy Window)r192a
`Subsystem
`Application
`
`Application
`
`Programming
`Programming
`Manager
`
`Software
`
`Interface
`Interface
`Legacy Graphics}-192b
`Device Interface
`
`191
`
`UI Object
`
`
`
`
`
`192 |
`
`
`
`
`
`
`
`ee
`Universal Compositing Engine (UCE)
`
`Theme Manager
`~
`
`Programming
`Interface
`
`
`
`— 194
`—L
`Request
`|
`Resource
`
`Manager|. Queue
`
`Rendering
`Module
`
`"3D Giaphics Interface
`(Direct3D, OpenGL,etc)
`
`(7198
`
`
`
`196~(Video Driver Video Driver|~196):
`
`,
`Device Object
`Device Object
`
`"
`
`Display Device :
`
`oe
`Display Device
`
`FIG. 1B
`
`3
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 3 of 7
`
`US 2005/0088447 Al
`
`COMPOSITING-AWARE
`LEGACY
`APPLICATIONS
`APPLICATIONS
`
`CDWM REQUESTS LEGACY
`APPLICATION CREATES A }
`
`
`COMPOSITED WINDOW WITH |
`SUBSYSTEM TO REDIRECT
`APPLICATION-SPECIFIED
`WINDOW CONTENT TO
`
`CONTENT VIA CDWM API
`MEMORY SURFACE
`
`
`
`
`
`
`LEGACY SUBSYSTEM
`
`NOTIFIES CDWMOFVISUAL
`UPDATE TO CONTENT
`SURFACE
`
`=|
`APPLICATION NOTIFIES
`
`
`CDWM OFVISUAL UPDATETOF
`
`WINDOW OR CONTENT
`
`CDWM CREATES AND
`MANAGES WINDOW AND
`-
`CONTENT OBJECT
`Ed
`
`WINDOW/CONTENT
`
`
`
`207
`
`209
`
`225
`
`
`
`CDWM UPDATES WINDOW
`TRANSFORM(S), QUEUES
`
`
`a)
`TRANSFORM UPDATE
`
`REQUEST TO UCE
`
`
`
`
`CDWM RESIZES FRAME
`MESH, QUEUES UPDATE-
`PRIMITIVE REQUEST TO UCE
`
`221
`
`
` CDWM RESIZES CONTENT
`
`
`MESH, QUEUES UPDATE-
`
`PRIMITIVE REQUEST TO UCE
`
`
`
`UCE DEQUEUES CDWM
`UPDATESIN SYNC WITH
`VIDEO REFRESH CYCLE,
`RENDERS TO APPROPRIATE
`DISPLAY DEVICE(S)
`
`4
`
`
`
`File
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 4 of 7
`
`US 2005/0088447 Al
`
`FIG.3
`
`—_
`
`©Eo
`
`O
`LL
`
`|_|WindowCaption Edit
`
`c®w
`
`o =
`
`5
`
`
`
`Patent Application Publication Apr. 28,2005 Sheet 5 of 7
`
`US 2005/0088447 Al
`
`401
`
`403
`
`405 _,
`
`
`
`RECEIVEINITIAL
`CONTENT UPDATE
`NOTIFICATION FROM
`LEGACY WINDOW
`MANAGER
`
`RETRIEVE DEFAULT
`MESH FROM THEME
`MANAGER |
`
`N
`
`
`
`DERIVE TEXTURE FROM
`REDIRECTION BUFFER
`
`FROM LEGACY WINDOW
`
`
`
`- MANAGER
`
`
`
`RECEIVECONTENT
`INITIAL UPDATE
`REQUEST FROM
`APPLICATION
`
`
`
`Y
`
`
`
`att
`
`413
`
`415
`
`407
`
`409
`
`("REMOVE LEGACY
`FRAMEAND BORDER
`AREAS
`
`Y
`
`RETRIEVE DEFAULT)
`MATERIAL PROPERTIES
`FROM THEME MANAGER
`
`fe-n
`
`417
`
`419
`
`
`
`
`CUSTOM
` MATERIAL PROPERIES
`
`
`SPECIFIED?
`
`
`ASSOCIATE APPLICABLE}
`TEXTURE AND MATERIAL/-
`
`PROPERTIES WITH
`APPLICABLE MESH
`
` 421
`
`SEND CONTENT UPDATE
`REQUESTTO UCE
`
`6
`
`
`
`Patent Application Publication Apr. 28, 2005 Sheet 6 of 7
`
`US 2005/0088447 Al
`
` §03—\=
`-
`. © "My Documents
`
`\
`
`iSte"Type «CateModified
`a My Pictures
`SeeType: File Folder
`
`
`
`* My Documents
`
`
`617
`
`619
`
`136s
`
`New Application
`
`603
`
`607
`
`601
`
`7
`
`
`
`Patent Application Publication Apr. 28,2005 Sheet 7 of 7
`
`US 2005/0088447 Al
`
`705¢
`‘.
`ra
`\
`:
`
`;
`
`705d
`oN
`ra
`\
`{
`
`“ft
`
`|
`—
`707
`FOBpeteirennnnnneatfeeeenecerenrrfocen
`
`nl
`
`|
`
`
`
`705b-ONiagrsecben
`
`
`8
`
`
`
`US 2005/0088447 Al
`
`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 environmentfor 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
`environmenttypically 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.
`
`rendering enhancements on the desktop, visually rich con-
`tent is possible within certain application programs running
`windowedorfull screen within the graphical user interfaces
`of Windows® brand operating systems and like operating
`system shells. The types of application programsthat 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 programsis eitherrestricted
`to the content area ofits 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 userinterface 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 bereferred to as the Desktop
`Window Manager (DWM). Therenderinglogic, 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 manageand renderthe desktop.
`Prior DWM implementations employ an “invalidation”
`modelfor rendering the desktop that evolved primarily from
`the need to conserve video and system memory resources as
`well as CPU and GPU bandwidth.
`
`[0003] Amongthe types of rendered objects hosted by the
`desktop environment are visually delineated areas of the
`screen known as windows. A windowis typically dedicated
`to a unique user activity, and is created and managed by
`In the invalidation model, when a window is
`[0006]
`either a third party software application or a system appli-
`resized or moved, or when an application wishes to redraw
`cation. Each window behaves and displays its content inde-
`all or part of a window,the affected portion of the display is
`pendently as if it were a virtual display device undercontrol
`
`“invalidated”. The DWM_internally invalidates areas
`of its particular application program. Windowscantypically
`affected by a window size or move, whereas an application
`be interactively resized, moved around the display, and
`attempting a redraw all or a portion of its own window
`arranged in stacked order so as to fully or partially overlap
`instructs the operating system, via an AFI, to invalidate the
`one another. In some windowing environments, a window
`can assume discreet visual or behavioral states, such as
`specified area of its window. In either case,
`the DWM
`processes the invalidation request by determining the subset
`minimized in size to an icon or maximizedin size to occupy
`of the requested region that is in actual need of an on-screen
`the entire display surface. The collection of desktop win-
`update. The DWMtypically accomplishesthis by consulting
`dows are commonly assigned a top to bottom order in which
`a maintained list of intersecting regions associated with the
`they are displayed, knownin the art as the Z-order, whereby
`target window, other windowsoverlying the target, clipping
`any window overlies all other windows lower than itself
`regions associated with the affected windows,andthe visible
`with respect to Z-order occupying the same projected posi-
`boundaries of the display. The DWM subsequently sends
`tion onthe screen. A single, selected window hasthe “focus”
`each affected application a paint message specifying the
`at any given time, and is receptive to the user’s input. The
`region in need of an update in a proscribed top-to-bottom
`user can direct input focus to another window byclicking the
`order. Applications can chooseto either honor or ignore the
`window with a mouseor other pointer device, or by employ-
`specified region. Any painting performed by an application
`ing, a system-defined keyboard shortcut or key combination.
`outside the local update region is automatically clipped by
`This allows the user to workefficiently with multiple appli-
`the DWM usingservices provided by a lower. level graphi-
`cation programs,files and documents in a mannersimilar to
`cal rendering engine such as the Graphics Device Interface
`the real world scenario of managing paper documents and
`(GDI).
`other items which can bearbitrarily stacked or arranged on
`a physical desktop.
`
`[0004] A drawback to manyprior graphical user interface
`desktop implementationsis their limited capacity to present
`visually rich content or exploit enhancements in graphical
`rendering technology. Such enhancementsincludereal-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
`
`[0007] An advantageof the invalidation-messaging model
`is conservation of display memory. Thatis, 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 windowsonthe desktop are rendered in a top-down
`order, features such as non-rectangular windowsand rich 2D
`animations via GDI
`require CPU intensive calculations
`involving complex regions and/or extensive sampling of the
`
`9
`
`
`
`US 2005/0088447 Al
`
`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-
`sive.
`
`[0008] By way of example, the Microsoft Windows® 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® 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® 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 backgroundis drawnfirst, followed by icons,
`folders, and contentsitting directly on the desktop, followed
`by the folder(s) up one level, and so forth. By rendering the
`desktop from the bottom up, eachiterative layer can baseits
`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 drawnto the desktop.
`Prior to recent market changes and manufacturing tech-
`niques that have made advanced video hardware and com-
`puter memoryfar moreaffordable, only commercial, expen-
`sive, high-end computing systems have been able to
`implement compositing engines, such as for preparing spe-
`cial effects for movies.
`
`in a compositing environment. This is because the core
`rendering logic of the legacy application is based on the
`operating system’s invalidation-model DWM APIs. Thatis,
`rather than render window contentin 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 managerthat can take advantage of advanced
`graphics hardware. It would be a further advancementin 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 summaryof 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 orto 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 overcomeotherlimitations 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.
`
`[0010] The evolution of mid- and lower-end computer
`video hardware has been driven in large part by the graphical
`[0015]Afirst illustrative aspect of the invention provides
`services available in popular operating systems. However,
`software and a computer implemented methodfor rendering
`the graphical services available in popular operating systems
`a desktop window in an operating system where, when a
`have not significantly advanced for a variely of reasons,
`compositing desktop window manager (CDWM) manages
`including the need to maintain compatibility with older
`an application-rendered memory surface comprising win-
`application software and the limited capabilities of the
`dow content, the CDWM usesthis pre-rendered surface to
`affordable range of video hardware. More recently, however,
`display the content along with that of other windowson the
`real-time 3D computer games have overtaken operating
`composited display. Specifically, the CDWMusesthe redi-
`systems as the primary market incentive for evolving retail
`rected display surface for a window,or a portion thereof, as
`video hardware, which has in a short
`time attained an
`a texture applied to a 2D or 3D meshprimitive, which is in
`exceptional level of sophistication. Real time, hardware-
`based 3D acceleration is now available to consumers at
`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 mayhavepreviously 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.
`
`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 GPUare 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.
`
`{0011] Another obstacle in implementing a compositing
`desktop model is that legacy applications written for use
`with an invalidation model DWM will not function property
`
`10
`
`10
`
`
`
`US 2005/0088447 Al
`
`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 environmentthat
`may be used for one or more aspects of an illustrative
`embodimentof the invention.
`
`FIG.1Billustrates the distribution of function and
`[0018]
`services among components in an illustrative embodiment of
`a composited desktop platform.
`
`FIG.2 illustrates a compositing method according
`[0019]
`to an illustrative aspect of the invention.
`
`FIG.3 illustrates a window accordingto anillus-
`[0020]
`trative aspect of the invention.
`
`FIG.4 illustrates a portion of a window compos-
`{0021]
`iting method according to an illustrative aspect of the
`invention.
`
`FIG.5 illustrates a frosted glass framed window
`[0022]
`rendered accordingto an illustrative aspect of the invention.
`
`FIG.6 illustrates a window with a dynamic win-
`[0023]
`dow anatomy.
`
`[0024]
`ing.
`
`FIG.7 illustrates regions used during meshresiz-
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`In the following description of the various embodi-
`[0025]
`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.
`
`[0027]
`
`Illustrative Operating Environment
`
`FIG.1 illustrates an example of a suitable com-
`[0028]
`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
`
`dependencyor requirementrelating 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 consumerelectronics; 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
`implementparticular abstract data types. The invention may
`also be practiced in distributed computing environments
`wheretasks are performed by remote processing devicesthat
`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, anillustrative 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 notlimitation, 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 ComponentInterconnect (PCT) bus also knownas
`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 modulesor 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
`
`11
`
`
`
`US 2005/0088447 Al
`
`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 computerstor-
`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 ROMorother 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 memoryinterface, such as interface 150.
`
`[0035] The drives and their associated computer storage
`media discussed above andillustrated 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 sameas 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. Auser may enter commandsand information into the
`computer 110 through input devices such as a keyboard 162
`and pointing device 161, commonlyreferred 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 busstructures, 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 beinternal or external, may be
`connected to the system bus 121 via the user inputinterface
`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
`meansof 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, 1.e., a bot-
`tom-to-top rendering methodology. The CDWM may main-
`tain content in a buffer memory area for future reference.
`The CDWM composesthe desktop by drawing the desktop
`from the bottom up, beginning with the desktop background
`and proceeding through overlapping windowsin 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 ARGBformattexture to provide transparency
`
`12
`
`12
`
`
`
`US 2005/0088447 Al
`
`Apr. 28, 2005
`
`to a window, and may selectively emphasize portions of
`window content (e.g., the frame) based on a virtual light
`source.
`
`[0040] The CDWM mayreside as part of the operating
`system 134, 144, or may reside independently of the oper-
`ating system, e.g., in other program modules 136, 146. In
`addition, the CDWM may rely upon a lower level graphics
`c