throbber
(19) United States
`(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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket