Patent Publication Number: US-2021181827-A1

Title: Partial panel screen dimming

Description:
RELATED APPLICATION 
     This application is a continuation-in-part application which claims priority under 35 USC 120 to U.S. application Ser. No. 16/800,944, filed Feb. 25, 2020, entitled SOFTWARE BASED PARTIAL DISPLAY DIMMING, and to PCT Application number PCT/CN2020/086735, filed Apr. 24, 2020, entitled PARTIAL PANEL SCREEN DIMMING, which designated various states including the United States. The Specifications of U.S. application Ser. No. 16/800,944 and PCT Application number PCT/CN2020/086735 are hereby fully incorporated by reference, in their entirety. 
    
    
     BACKGROUND 
     The present disclosure relates to the fields of computing and electronic devices, and more specifically to the reduction of electrical power consumed by a display of an electronic device. 
     In many electronic devices, such as laptop and notebook computers and mobile devices such as smart phones, a display of the electronic device is one of the highest power consuming components of the electronic device. These types of electronic devices are typically powered by battery power during use at least some of the time. Thus, this relatively high-power consumption of the display in such electronic devices reduces the battery life when the electronic device is being operated on battery power, where the battery life is the time for which the battery can power the electronic device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a functional diagram illustrating a display power-reduction system and process according to one embodiment of the present disclosure; 
         FIG. 2  illustrates multiple displays in which the process of  FIG. 1  may change characteristics of multiple windows being presented on each display to reduce power consumption of the displays according to one embodiment; 
         FIG. 3  is a flowchart illustrating a desktop composition process according to one embodiment; 
         FIG. 4  is a flowchart illustrating a graphics driver process that performs partial display dimming when called by the desktop composition process of  FIG. 3  according to an embodiment; 
         FIG. 5  is a flowchart illustrating a dimming shader process called by the graphics driver process of  FIG. 4  when partial display dimming is enabled; 
         FIG. 6  is a flowchart illustrating a query plugin process utilized by the dimming shader process of  FIG. 5  to process inputs identifying regions of the display to be dimmed; 
         FIG. 7  is a sequence diagram illustrating operation of the various software components that implement a display power-reduction process according to the embodiments of  FIGS. 3-6 ; 
         FIG. 8  is a functional block diagram of an example computer system illustrating a sample environment in which embodiments of the present disclosure may be implanted. 
         FIG. 9  shows example displays implementing partial display dimming in a single-window mode and a multi-window mode, in accordance with various embodiments. 
         FIG. 10  shows example displays that include user interface features to control the areas to be dimmed and areas to be masked, in accordance with various embodiments. 
         FIG. 11  shows an example of a software architecture to implement a mask over multiple application windows that appear on a desktop, in accordance with various embodiments. 
         FIG. 12  shows an example of multiple unmasked windows, in accordance with various embodiments. 
         FIG. 13  shows an example of multiple desktops with masks and applications, in accordance with various embodiments. 
         FIG. 14  shows another example of multiple desktops with masks and applications, in accordance with various embodiments. 
         FIGS. 15A and 15B  show two examples of a display with various levels of shading of dimming on the display by implementing a mask, in accordance with embodiments. 
         FIGS. 16A, 16B, and 16C  show an example of a mask applied to dim areas of the display, with various levels of user interaction based on the transparency of the mask, in accordance with embodiments. 
         FIG. 17  shows various examples of masks applied to dim areas of the display, in accordance with embodiments. 
         FIG. 18  shows examples of displays with masks having different levels of transparency to dim areas of the display, in accordance with embodiments. 
         FIG. 19  shows an example of power savings expectations for non-focus areas that are partially or fully dimmed, in accordance with embodiments. 
         FIG. 20  shows an example of a computer with two displays where masks are used to dim areas of the two displays, in accordance with embodiments. 
         FIG. 21  shows another example of a computer with two displays where masks are used to dim areas of the two displays, in accordance with embodiments. 
         FIG. 22  shows another example using a foldable display, in accordance with various embodiments. 
         FIG. 23  shows an example process flow to dim a display using programmatic hardware commands, in accordance with embodiments. 
         FIG. 24  shows an example process flow for applying a mask layer to implement dimming on a display, in accordance with embodiments. 
         FIG. 25  shows a detailed process flow for dimming and area selection for multiple focus window and single focus window, in accordance with embodiments. 
         FIG. 26  shows another detailed process flow for dimming and area selection for multiple focus window and single focus window, in accordance with embodiments. 
         FIG. 27  shows a process for partial panel screen dimming, in accordance with embodiments. 
         FIG. 28  shows a non-transitory computer readable storage medium that includes instructions to implement one or more processes to cause partial panel screen dimming. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of the present disclosure. Such examples and details are not to be construed as unduly limiting the elements of the claims or the claimed subject matter as a whole. It will be evident to one skilled in the art, based on the language of the different claims, that the claimed subject matter may include some or all of the features in these examples, alone or in combination, and may further include modifications and equivalents of the features and techniques described herein. 
     Embodiments described herein may be directed to methods, apparatus, and techniques to implement software-based partial panel screen dimming to save the backlight power and extend system battery life. In embodiments, during operation, electronic devices incorporated with the technology of the present disclosure may use as little as 50% or less of the power required for backlighting compared to legacy implementations. As a result, system battery life may be extended by 30% or more. In embodiments, a mask may be to apply to a display, and identifying one or more regions on the display with different transparency levels. These different transparency levels of the mask may be used for dimming graphics on a display. The mask for dimming may be subsequently sent to a graphics composition system for display on one or more displays. These techniques may be applied using a software-based approach. 
     Embodiments may include systems, techniques, methods, apparatus and/or device to receive an input selecting one or more areas of a display of the computing device, leaving one or more other areas of the display unselected, and to apply a masking layer to mask either pixels of the one or more selected areas or pixels of the one or more unselected areas to cause the masked pixels to be dimmed, to reduce power consumption by the display. Embodiments may further include where the one or more of the selected areas include a focus area of interest, and to apply the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed. Embodiments may further include where the focus area includes an active application window. Embodiments may further include modification of the masking layer, in response to the selection of the focus area or in response to changing dimensions of the focus area. 
     Embodiments may further include application of the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed, including application of the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed non-uniformly. Embodiments may further include receiving of the input selecting the one or more areas of the display from a user input device of the computing device. Embodiments may further include where the masking layer includes transparency layers associated with the pixels to be dimmed, and application of the masking layer comprises alpha blending the transparency layers associated with the pixels to be dimmed to respectively dim the pixels. 
     In legacy implementations, the display is one of the highest power consuming components in a notebook, laptop, phone, or other portable computing system having one or more displays. In legacy computing or audiovisual devices, display power may consume 44%+/− of the system power consumption. In these legacy devices, backlight power may consume 50% or more of that. Different legacy display technologies may consume higher power, for example on organic light-emitting diode (OLED) or high dynamic range (HDR) types of panels. In embodiments, minimizing the panel backlight power will extend battery operated use of laptops, notebooks, or other portable computing systems that use displays. In addition, embodiments may also help extend operational use of the device and the life of batteries or other power sources within the device. 
     Embodiments described herein may be accomplished using a software approach at an application level, may operate on existing hardware and graphics driver stacks. These embodiments may manipulate the display in the input stage, in contrast to the output stage that requires specialized hardware components. Embodiments implemented through software provide more flexibility for adapting to different operating systems and to different display panels, such as to 6 bit/8-bit LCD and OLED panels. Embodiments implemented through software may also support different display form factors such as single, dual (physical and virtual, such as foldable displays), and secondary displays. Note: as used herein, display and screen may be used interchangeably. 
     The advantage of implementing embodiments in software include decreased cost by not requiring specialized hardware. These embodiments may only use a basic display driver for support, for example a graphics driver. These embodiments are not deeply coupled with a graphics driver, or composition layer, and have no system hardware dependency such that architectural changes to system configurations will not affect the implementation of the embodiments. In addition, embodiments may require only a minimal set of operating system (OS) support such as pixel blending and mouse event handling. For example, on a Windows® platform, embodiments may not require any extra changes to the OS or display drivers. Embodiments may function as a simple background application. 
     In contrast with legacy implementations provide dimming on the hardware side or the graphic driver side, embodiments described herein may not be deeply coupled with the graphics driver or composition layer of the computing device, and may have no system hardware dependency. For example, implementations may not be impacted by any architectural changes to graphics driver or hardware of the computing device. Embodiments may just add an input layer to the composition system. The graphics input is naturally supported. This is in contrast to a hardware or driver specific solution, where output is usually protected and less accessible due to security concerns for the device. For example, the output buffer for displaying passwords should prevent access from third party driver or software. For example, the output buffer for displaying digital rights management (DRM)-protected video should prevent access from a third party driver or software. 
     Embodiments described herein have the ability to manipulate display content, in addition to manipulating flexible features sets built into the user interface (UI) that may take care of software presets and/or user prompt interactions. As a result, embodiments may be able to instantly or nearly instantly enable or disable partial screen dimming function on the display, define focus or non-focus areas on a display, implement various dimming levels, which may be referred to as transparency levels, on areas of the display. In addition, embodiments may restrict unintended user actions that may result in unintended exposure of areas on the display. 
     Embodiments using a software approach for partial panel screen dimming may also provide an end-user with additional privacy control. For example, when the user is sharing a display the user may want to completely dim everything other than the a particular area of the display, for example for use over a videoconferencing system. In addition, during presentation of a display to others, the end user may want to dim various portions of the screen to highlight areas to focus on during the presentation. 
     Embodiments may have little to no dependency on the architecture of the computing system, and may require only a minimal set of operating system support. Specifically, for Windows™ platforms, embodiments may not require any extra changes to the operating system or display driver. Embodiments may work as a simple background application. In contrast with legacy implementations which operate on the output stage, embodiments described herein may just add an input layer to the composition system. The graphics input of a device is naturally supported whereas the output is usually protected and less accessible due to security concerns. 
       FIG. 1  is a functional diagram illustrating a display power-reduction system  100  according to one embodiment of the present disclosure. In operation, the system  100 , which may also be described as a process  100 , may receive user inputs  102  and based on these user inputs, the system controls the rendering or display of content on a display  104  inside or outside one or more focus areas  106  on the display. In embodiments, these user inputs  102  may include a keyboard/mouse, eye tracking, touchpad or a touch screen, sensors, identification of an active window on the display  104 , voice commands, system power policies, or other inputs. In embodiments, the system  100  may also control dimming of the display  104  in one or more non-focus areas  108  of the display  104  to thereby reduce power consumption of the display, as will be explained in more detail below. 
     In embodiments, system  100  having one or more focus areas  106  of the display  104  may remain active, either being viewed by the user or are the most likely to be viewed by the user. These focus areas  106 , as a result, may be maintained at a configured brightness. The system  100  may determine these focus areas  106  based on the user input  102 .system  100 . In embodiments, the brightness or the amount of dimming with respect to a brightness may be applied to the inactive or non-focus areas  108  of the display  104 . In embodiments, non-focus areas  108  may be areas not being viewed or are less likely as being viewed by the user. In embodiments, the dimming may include becoming completely opaque, or completely darkened. In embodiments, these system  100 non-focus areas  108  may be based on the user inputs  102 . This maintaining of the intensity or brightness of the focus areas  106  while dimming the non-focus areas  108  on the display may be referred to as “partial dimming” in the present application. 
     The user inputs  102  utilized in the display power-reduction system  100  may include a wide variety of different types of inputs provided by or received from a user, or through settings or from software running in the environment in which the system  100  is being implemented. The system  100  would typically be implemented in a portable electronic device such as, for example, a smart phone, tablet computer, or laptop computer, but is not limited to being implemented in these types of electronic devices. The display power-reduction system  100  may be implemented in any other suitable type of electronic device including a display and which may benefit from reducing the power consumption of the display. In such an environment, the user inputs  102  received in the display power-reduction system  100  may include cursor information received from a mouse, keystroke information received from a keyboard, touch information received from a touch screen of the display  104 , a position of or movement of the eyes of the user indicating a location on the display where the user is looking, voice commands from the user or a power policy setting of the electronic device including the display, software running on the electronic device, or through manual input from the user. In some embodiments, where the display  104  includes a touch screen, the system  100  may identify the focus area or areas  106  based on locations on the display  104  that are touched (or not touched) by the user. Alternatively, in some embodiments the system  100  may determine the focus area  106  based on where a cursor is positioned (or not positioned) on the display  104 . These user inputs  102  are provided by way of example, and the display power-reduction system  100  is not limited to utilizing only some or all these user inputs, but may utilize other inputs in addition to or in place of these example user inputs. 
     In some embodiments, the user inputs  102  also include an input that enables and disables execution of the display power-reduction system  100 . For example, where the user inputs  102  include a power policy setting, the system  100  may be activated or enabled once a charge level of a battery of the electronic device including the display  104  drops below a selected charge percentage. Similarly, once the charge level of the battery reaches a selected threshold after being charged, the system  100  may then be deactivated or disabled. In some embodiments, the user inputs  102  may include an ON/OFF parameter that is manually selectable or input by the user to thereby enable the user to manually enable and disable execution of the display power reduction system  100 . This allows the user to manually select execution of the system  100  independent of the other user input  102 . For example, where the user is almost done with a task being performed on the electronic device and the battery reaches a level that causes the system  100  to be operated, the user may, through the ON/OFF parameter, disable the process and finish the task under normal operating conditions of the electronic device. 
     In the display power-reduction system  100 , once the user inputs  102  are collected or received, these inputs are processed by a desktop composition module (DCM)  110  to control partial dimming of the display  104 . The DCM  110  is a software component may execute as part of (or an add on to) an operating system (OS) of the electronic device including the display  104 , executes as part of (or an add on to) a graphics driver of the electronic device, or executes as part of (or add on to) both the OS and graphics driver. The DCM  110  implements the partial dimming of the display  104  and part of this overall process includes compositing windows manager functionality that composites contents or images of multiple applications executing on the electronic device into a desktop screen or image to be displayed on the display  104 . Where the electronic device includes more than one display  104 , as will be described in more detail below with reference to  FIG. 2 , the DCM  100  composites images from the running applications into a desktop image that is displayed on these multiple displays. 
     The operation of a compositing windows manager, such as the desktop windows manager (DWM) in the Windows operation system, and a graphics driver will be understood by those skilled in the art, and thus these software component will not be described in detail herein. Aspects of the operation of the graphics driver and compositing windows manager that are part of the overall operation of the DCM  110  will, however, now be briefly described to enable a better understanding of aspects of the partial dimming of the display  104  implemented through the DCM in the system  100 . As seen in  FIG. 1 , the electronic device in which the system  100  is implemented includes graphics hardware  112 , which includes a graphics processing unit (GPU) (not shown) of the device. The graphics driver is a software component that allows the OS, as well as programs or applications executing on the electronic device, to control the graphics hardware  112  to display desired images on the display  104 . 
     Each application executing on the electronic device is displayed in a corresponding window on the desktop displayed on the display  104 . An image to be displayed by each executing application is stored in a corresponding off-screen buffer associated with each window on the display  104 . During execution of the applications, the images stored in the corresponding off-screen buffers are occasionally updated and the compositing windows manger thereafter processes each of the updated images as part of generating a corresponding composite image to be displayed as the desktop on the display  104 . The processing of these respective images in the off-screen buffers may include applying 2D and 3D effects, and may include operations such as blending, fading, scaling, rotation, duplication, bending and contortion, shuffling, blurring, redirecting applications, translating windows into one of a number of displays and virtual desktops, and other graphics-related operations, as will be understood by those skilled in the art. The graphics hardware  112  generates the composite image that is then stored in a display framebuffer  114  as seen in  FIG. 1 , with this stored composite image being stored in either dedicated memory or system memory (not shown) and thereafter being displayed as the desktop on the display  104 . 
     Returning to the description of the DCM  110 , the DCM includes either a modified compositing windows manager, a modified graphics driver, or a modified compositing manager and graphics driver, to implement partial dimming on the display  104 . Each of the compositing windows manger and graphics driver is a software component, and thus modification of these components includes programming instructions added to one or both of these components to implement the partial dimming functionality. In operation, the DCM  100  receives the user inputs  102  and from these user inputs determines one or more focus areas  106  on the display  104  that are to remain active (e.g., the intensity or brightness in these focus areas are maintained). The DCM also determines, based on the user input  102 , one or more non-focus areas  104  of the display  104  which are to be dimmed (e.g., the intensity or brightness in these non-focus areas are to be reduced or dimmed). The DCM  110  thereafter, through execution of the modified compositing windows manager, modified graphics driver, or modified compositing windows manager and graphics driver, dims the one or more non-focus areas  108  of the display to be dimmed to reduce a power consumption of the display  104 . 
     The specific way the DCM  110  controls the dimming of the non-focus areas  108  on the display  104  will depend on the specific type of the display. For example, where the display  104  is an organic LED (OLED) display, the DCM may dim (e.g., reduce the intensity or brightness of) at least some of the pixels of the display  104  in the one or more non-focus areas  108  of the display to be dimmed. This dimming of the non-focus areas  108  may include changing a color of at least some of the pixels of the display  104  in the one or more non-focus areas  108 . The color of these pixels may, for example, be changed to a darker color, such as blue or black. Where the display  104  includes segmented LED backlighting, the dimming may include turning OFF one or more segments of the backlighting of the display. For example, the display  104  may be an LCD with mini LED backlighting where dimming is performed by controlling groups of the mini LEDs. 
       FIG. 2  illustrates multiple displays  200  and  202  in which the system  100  of  FIG. 1  may change characteristics of multiple windows W 1  W 2 , W 3 , W 4  being presented on the multiple displays to reduce overall power consumption of the displays according to one embodiment. The windows W 1 -W 3  are presented on the display  200  and window W 4  on display  202 . In such a multiple display electronic device, the system  100  may implement partial dimming on each of the display  200 ,  202 . Furthermore, in such a multiple display device one of the displays  200 ,  202  may not be utilized by a user at certain times. For example, assume the window W 4  is not being displayed on the display  202  such that no windows are presented on this display. In this situation, the dimming performed by the system  100  may include dimming the entire display  202 . The partial dimming implemented by the system  100  may include dimming the entire display for one or more of the displays  200 ,  202  in a multiple display device. 
       FIG. 2  also illustrates that dimming performed by the system  100  in each of the windows W 1 -W 4  may vary in different embodiments. In the example to be discussed, assume the window W 4  is not displayed on the display  202  such that no windows are present on this display. In this situation, the windows W 1 -W 3  are present on the display  200  and the window W 2  is the active window (e.g., is the focus area on the display  200 ). The windows W 1  and W 3  are inactive or non-focus areas on the display  200  in this example. The system  100  will accordingly dim the windows W 1  and W 3 .  FIG. 2  shows two examples of how this dimming within a given inactive window (e.g., in non-focus areas) may be performed. In the window W 3 , the entire window is dimmed. Thus, each of the pixels in the window W 3  is set to black or changed to some other darker color to reduce the power consumption of the display  200  due to displaying the window W 3 . Where the display  200  includes segmented LED backlighting, dimming window W 3  may include turning off one or more segments of the backlighting of the display. The window W 1  shows another possible way of dimming an inactive window corresponding to a non-focus area of the display. The window W 1  includes a border around the perimeter of the window that is not dimmed but remains illuminated by the DCM  110  ( FIG. 1 ) while an interior of the window W 1  inside this border is dimmed. 
     Other embodiments include other ways of dimming inactive windows (e.g., non-focus areas) on a display. For example, dimming inactive windows or non-focus areas occurs in different ways in further embodiments, such as by changing colors in the inactive windows or non-focus areas, or through gradient dimming within the inactive windows or non-focus areas, or through gradient dimming at edges between the one or more focus areas and the non-focus areas. The inactive windows or non-focus areas may be defined through eye tracking to identify a moving focus area (active window or windows) and non-focus areas (inactive window or windows) in the other areas of the display. 
     In other embodiments, the size of the entire screen being displayed can be shrunk to a smaller area (focus area) on the display, with the remaining area (non-focus area) on the screen being dimmed or turned OFF. In other embodiments a window or windows associated with a given app are defined as the active window or windows and thereby as the focus area that is not dimmed, or is dimmed in a particular manner, while the windows of other apps are defined as non-focus areas and are accordingly dimmed. 
     In another embodiment, portions of each active window of a given app may also be dimmed such as by dimming an edge portion of each active window for the given app, which is illustrated for the window W 4  in  FIG. 2 . Thus, where the window W 4  is an active window of a particular app running on an electronic device, this active window W 4  may be dimmed around the edges of the window as shown. Content being presented by the app is displayed on the interior portion of the active window W 4  in this embodiment, which is represented by the interior white portion of the window W 4 . The dimming around the edge of the active window W 4  could alternatively be a gradient dimming, or this dimming could be done through displaying a particular color in the edge portion of the window, or through other suitable dimming techniques that reduce power consumed by the display  202  in displaying the window W 4 . 
     In another embodiment, a user may provide manual input, such as through touch input, voice input, or keystrokes, to instantly enable the display power reduction system  100  on the corresponding electronic device. The user could similarly disable the system  100  through manual input in this embodiment. Also, in this embodiment, the user could provide other manual input after enabling the system  100  to thereby provide various inputs that control the operation of the system  100 , such as providing levels of dimming to be provided. In another embodiment, the user may also manually define focus and non-focus areas, or active and non-active windows through suitable manual input such as touch input, voice input, or keystrokes. For example, the user could through a first type of touch stroke on the display define a focus area or areas and through a second type of touch stroke define non-focus areas on the display. 
       FIG. 3  is a flowchart illustrating a desktop composition process  300  that is part of the display power-reduction system  100  according to one embodiment. The process  300  is an example of a process executed by the windows compositing manager, which in the example of  FIG. 3  is the DWM in the Windows OS.  FIGS. 3-7  illustrate an example embodiment of the DCM  110  implemented in the Windows OS such that the compositing windows manager is DWM and the partial dimming is implemented through a modified graphics driver of the electronic device. The desktop composition process  300  starts at  302  and proceeds immediately to  304  where the DWM makes a Present call, where Present is a function of the DWM that calls the graphics driver. Next, the process  300  at  306  and  308  receives from the graphics driver the partial dimming modified image data of each of the windows being displayed on the desktop. At  308 , the process  300  provides the composite image as modified by the partial dimming modified image data to the display framebuffer  114  ( FIG. 1 ) for display on the display  104 . 
       FIG. 4  is a flowchart illustrating a graphics driver process  400  corresponding executed by the graphics driver in response to the Present call from the DWM executing the desktop composition process  300  of  FIG. 3 . The process  400 , at  402 , starts and then proceeds to  404  in which the graphics driver generates commands for programing the graphics hardware  112  ( FIG. 1 ). Next, at  406 , the process  400  determines whether partial dimming of the display  104  is enabled. If the determination at  406  is negative, the process  400  proceeds to  408  and the programmed hardware commands are submitted to the graphics hardware  112 . Next, the process  400  at  410  terminates. Where the determination at  406  is positive, the process at  412  executes a dimming shader program or process to perform partial dimming of the desktop image, as will be described in more detail below with reference to  FIG. 5 . The process  400  thereafter terminates at  410 . 
       FIG. 5  is a flowchart illustrating a dimming shader process  500  called by the graphics driver process  400  of  FIG. 4  when partial display dimming is enabled as determined at  406  of the process  400 . The process  500  starts at  502  and proceeds to  504  where a query function is executed in the form of a query plugin in the example embodiment of  FIG. 5 . The query plugin obtains user inputs  102  from the OS and utilizes these inputs to determine which areas on the display  104  are focus areas  106  (e.g., are not to be dimmed) and which areas are non-focus areas  108  (e.g., are to be dimmed). Next, the process  500  at  506  maps input and output surfaces using data from the query plugin executed at  504  and these mapped input and output surfaces are utilized to modify the composited desktop image to perform partial dimming on this image. At  508  the process  500  programs the graphics hardware  112  ( FIG. 1 ) to perform the determined partial dimming. The process  500  then terminates at  510 . 
       FIG. 6  is a flowchart illustrating a query plugin process  600  executed by the query plugin executed by the process  500  at  504 . The process  600  starts at  602  and to  604  at which the process receives user input  102  in the form of notifications from the OS of the electronic device. The OS maintains information on the size and location of opened windows on the display  104 , and the process  600  at  604  retrieves this information as well for use by the graphics driver programming the graphics hardware  112  to perform the desired partial dimming. Next, at  606  the process  600  provides the retrieved user inputs  102  and from the OS to the dimming shader process  500  for use in partial dimming of the display  104 . 
       FIG. 7  is a sequence diagram illustrating operation of the various software components of  FIGS. 1-6  that implement the desktop composition process  300  of  FIG. 3  including partial dimming implemented by the graphics driver in this embodiment. In the embodiment of  FIG. 7 , the white boxes illustrate existing components and operation while the gray shaded boxes illustrate new components included to perform the desired partial dimming. Along the top of the sequence diagram of  FIG. 7  are shown the pertinent software components, namely desktop composition module  700 , graphics driver  702 , plugin  704  and graphics hardware  706 . Each of these components  700 - 706  corresponds to components previously described with reference to  FIGS. 1-6 . 
     As shown in  FIG. 7 , the desktop composition module  700  load the graphics driver  702  at  708  and at  710  the graphics driver initializes the plug in  704 . At this point, the partial dimming is not enabled since the partial dimming is only utilized in the electronic device when necessary. As a result, at  712  when the desktop composition module  700  initially makes a Present call to the graphics driver  702 , the Present call at  714  from the graphics driver to the graphics hardware  706  results in programming of the graphics hardware in a conventional manner to display the composite desktop image on the display  104  ( FIG. 1 ). 
     At  716 , the plugin  704  determines that partial dimming is to be performed and provides a notification to the graphics driver  702  indicating partial dimming is now enabled. As a result, at  718 , when the desktop composition module  700  makes a Present Call to the graphics driver  702 , a call to the plug in  704 , which is indicated as a Present Callback at  720 , is made and the plugin  704  returns at  722  dimming inputs to the graphics driver  702 . These dimming inputs include the notifications retrieved from the OS as discussed above with reference to  FIG. 6 . Next, at  724  the graphics driver  720  makes a Present call to program of the graphics hardware  706  to perform the required partial dimming and display the composite desktop image on the display  104  ( FIG. 1 ) including this partial dimming. At  726 , the plugin  704  provides a notification that partial dimming to be disabled, such as would typically occur when the battery of the electronic device has been recharged, and because of this, or for some other reason, the partial dimming is no longer required. For example, the user may manually disable partial dimming, as discussed above. After partial dimming has been disabled at  726 , when the desktop composition module  700  makes another Present call at  728  to the graphics driver  702 , and the graphics driver makes a Present call at  730  that results in programming of the graphics hardware  706  at  730  in a conventional manner to display the composite desktop image on the display  104  ( FIG. 1 ). 
       FIG. 8  is a functional block diagram illustrating an example of a computing system  800  to implement the display power-reduction techniques discussed herein with reference to the embodiments of  FIGS. 1-7 . The computing system  800  may be, for example, a mobile device such as a smart phone, laptop computer, ultrabook, tablet computer, a desktop computer, or a server or other type of computer system that would benefit from the display power-reduction techniques of the present application. The computer system  800  would typically be a mobile device running on battery power, which would then utilize the display power-reduction techniques of the present application to extend the life of battery for a given charge by lowering the power consumption of the system. The computer system  800  need not be a mobile device, however, where there is a need to reduce the power consumption of the system even though the deice is not being powered through battery power. Finally, the computer system  800  of  FIG. 8  illustrates an example of a suitable computing system environment in which embodiments of the present disclosure may be implemented. The computing system  800  is an example of one suitable computing environment should not be considered to suggest any limitation as to the implementations of embodiments of the present disclosure. 
     In the example embodiment of  FIG. 8 , the computing system  800  includes a processor  802 , such as a central processing unit, which is configured to execute stored instructions. A memory device  804  stores instructions that are executable by the processor  802 , and may be any suitable type of memory such as read only memory (ROM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory (FLASH), or a combination these and other different types of memory. The memory device  804  stores instructions executed by the processor  802 , including instructions of OS and graphics driver GD loaded into memory, and instructions executed by the processor to implement the display power-reduction processes of  FIGS. 1-7 . The processor  802  is coupled to the memory device  804  through a bus  806  of the computer system  800 . The processor  802  may be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations. Furthermore, the computing system  800  may include more than one processor  802  and more than one memory device  804 . 
     The computing system  800  further includes a graphics processing unit (GPU)  808 , and the processor  802  is coupled through the bus  806  to the GPU  808 . The GPU  808  performs any number of graphics functions and actions within the computing system  800 , such as rendering or manipulating graphics images, graphics frames, videos, or the like, to be displayed to a user of the computing system  800 . As described above with reference to  FIG. 1 , the desktop composition module in some embodiments may be implemented as part of the graphics driver GD of the computer system  800 , and this graphics driver controls programming and operation of the GPU  808 . 
     An image capture device  810 , such as a camera, scanner, infrared sensor, or other type of suitable device, is also coupled to the bus  806  to communicate with the processor  802  and memory device  804 . The processor  802  is coupled through the bus  806  to one or more displays  812 , which may include displays that are internal to or “built-in” component of the computing system  800 . The displays  812  may also include display screens that are external to the computing system  800 . Examples of such a computing system  800  include mobile computing systems, such as cell or smart phones, tablets, 2-in-1 computers, notebook computers and the like. The display devices  812  may include a computer monitor, television, or projector, among others, that is externally connected to the computing system  800 . In some examples of the computing system  800 , the display devices  812  may be head-mounted display devices having a display capacity via projection, digital display, filtering incoming light, and the like. 
     The processor  802  is also be connected through the bus  806  to an input/output (I/O) interface  814  configured to connect the computing system  800  to one or more I/O devices  816 . The I/O devices  816  may include, for example, a keyboard, a pointing device such as a touchpad or a touchscreen, a storage device, and other types of electronic devices. The I/O devices  816  may include built-in components of the computing system  800  or may be devices that are externally connected to the computing system. In some cases, the I/O devices  816  are touchscreen devices integrated within a display device, such as one or more of the display devices  812 . 
     The computing system  800  may also include another storage device or devices  818 , which may include a physical memory such as a hard drive, an optical drive, a thumb drive, an array of drives, or any combinations thereof. The storage device  818  may also include remote storage drives. A network interface controller (NIC)  820  connects the computing system  800  to a network  822 , which may be a wide area network (WAN), local area network (LAN), the Internet, or the like. The computing system  800  is powered through a power supply unit (PSU)  824  that communicates with the processor  802  through the bus  806  to communicate control signals or status signals to the PSU. The PSU  824  includes a rechargeable power source such as a battery in some embodiments, and is coupled to a power source  826  external the computing system  800  to receive electrical power, charge the rechargeable power source when present, and to supply provide electrical power to the other components in the computing system  800 . The block diagram of  FIG. 8  is not intended to indicate that the computing system  800  must include all the components shown. Furthermore, the computing system  800  may include any number of additional components not shown in  FIG. 8  based on the specific implementation or utilization of the computing system. 
     Embodiments Using Software Implementation with Mask Layer 
       FIG. 9  shows example displays implementing partial display dimming in a single-window mode and a multi-window mode, in accordance with various embodiments. Display  900   a  shows an example of a single-window mode on the computing display. In embodiments, the computing display may be a display controlled by the Microsoft Windows™ operating system. An active window  902 , which also may be referred to as a focus window having a foreground focus, is viewable on the display  900   a.  In embodiments, the active window  902  is not dimmed. 
     The portions of display  900   a  outside of the active window  902  are dimmed by applying a mask layer  904 . The mask layer  904  may have varying levels of transparency associated with each pixel underneath the mask layer  904 . This may result in dimming the portions of the display  904  ranging from slightly dimmed to completely opaque. This may be desirable when a user may not want to have other people view any applications or other data underneath the mask layer  904 , and just expose the active window  902 . In embodiments, a user may wish to dim non-focus areas that the user does not want to pay attention to. 
     In other embodiments, a user may be traveling or may not have any means to charge the device with the display and the user may want to reduce the battery drain by darkening the area of the display underneath the mask  904 . For OLED displays, masked pixels with less intensity would use less power, thus power consumption for non-focus dimmed area is reduced. And because the total display power reduction is proportional to the size of the dimmed area, in embodiments up to 45-60% panel backlight power may be saved using this approach. Additional, this may help extend the battery life for computing devices with displays. 
     Display  900   b  shows an example of a multi-window mode on a computing display. Here, windows  906 ,  908 ,  910  may be focus areas that are not to be dimmed, with the remainder of the display  900   b  to be dimmed by a mask layer. This may be useful for users wanting to work on multiple windows simultaneously. Here, the user can select multiple windows as preferred. In embodiments, the system will keep all these windows in focus and dim the rest of the areas on screen. Outside the windows  906 ,  908 ,  910 , a mask layer may be applied to dim or completely obscure other areas of the display  900   b.    
     In embodiments, the mask layer may be an input mask later with different transparency levels (e.g. alpha of each pixel) with a combination of identifying region(s) to go under the masked layer for dimming, and region(s) to go above the masked layer for full visibility to the graphics composition system. The composition system and the underling graphics system of the computing device does not need to be changed. This is described further below. 
       FIG. 10  shows example displays that include user interface features to control the areas to be dimmed and areas to be masked, in accordance with various embodiments. Display  1002  may be similar to display  900   a  or  900   b  of  FIG. 9 , showing a Microsoft Windows™ desktop. An icon  1004  may be used to launch an application that has a focus window, such as focus window  902  of  FIG. 9 . The desktop  1002  may also include another icon  1006  that, when selected by a user, allows the user to provide input to the partial dimming system to control various aspects of how a mask layer is applied and is modified based upon the users interaction with the display  1002 . 
     For example, if a user right clicks on the icon  1006 , a context menu  1008  may appear that allows the user to select various mask layer themes such as a “dark mode,” or specific areas such as a taskbar, to which a mask and dimming features of the mask are to be applied. 
     In another example, rolling wheel on a mouse device used to display  1002 , may have various functions from which to select. For example, rolling the mouse wheel up or down to change the level of dimming applied to non-focus areas, from no dimming to completely opaque. 
     In another example, clicking on the icon  1006  may allow the user to select single or multi-window mode using icon  1014 , as discussed with respect to displays  900   a,    900   b  of  FIG. 9 . In addition, screen brightness  1018  and partial dimming  1016  may also be adjusted by the user. The example shown in  FIG. 10  are non-limiting embodiments of a partial example of customizations that may be made by a user. These customizations, or other customizations not shown herein, may be identified and input to the partial dimming system using other techniques. 
       FIG. 11  shows an example of a software architecture to implement a mask over multiple application windows that appear on a desktop, in accordance with various embodiments. The diagram in  Figure. 11  describes an embodiment of a partial dimming system  1102  with various components. These components may include a main program  1104  with which the partial dimming system  1102  may interact, along with the system tray  1108  which may be independently dimmable, and a setting panel  112 , which may be similar to functionality described above with respect to icon  1006  of  FIG. 10 . 
     A floating user interface control  1106  may be used to identify where the level of various applications  1120 ,  1124 ,  1126  are in relation to the desktop  1128  and the mask  1122 . A mask control  1110  may be used to modify the dimensions, the shape, and various transparency levels of pixels onto which the mask  1122  is applied. Mask control  1110  may also be used to either instantiate the mask  1122  or to remove the mask  1122 . 
     The event receiver  1114  may be used to identify the application, such as application of  1120 , that currently receives focus. This information may be used by the partial dimming system  1102  to modify the configuration of the mask  1122  in order to allow the application with focus, such as application  1120 , to not be dimmed. The battery trigger  1116  may be used to identify a battery charge level, and provide this input to the partial dimming system  1102  in order to automatically implement the mask  1122  in order to save battery power by applying a mask to dim non-focus areas on the desktop  1128 . 
     It should be noted that the application of the mask  1122  given the various levels of the applications  1120 ,  1124 ,  1126  are used to dim portions of the desktop  1128  that otherwise would display at full brightness. Because the partial dimming system operates above the hardware level, lower levels of the computing system may be unaware of the mask  1122  or application layers. 
       FIG. 12  shows an example of multiple unmasked windows, in accordance with various embodiments. Whereas  FIG. 11  dealt with a single application  1120  being the focus area that is undimmed,  FIG. 12  shows an example of two applications  1220 ,  1224  that are focus areas and are undimmed. As shown, the partial dimming system  1202 , which may be similar to the partial dimming system  1102  of  FIG. 11 , shows two applications  1220 ,  1224  that are above the mask layer  1222 , and as a result are not dimmed. As shown, a third application  1226  that is at a layer between the mask layer  1222  and the desktop  1228 , will be dimmed by the mask  1222 . 
       FIG. 13  shows an example of multiple desktops with masks and applications, in accordance with various embodiments. Three different desktops represented by desktop  1   1320 , desktop  2   1330 , and desktop  3   1340  may be desktops displayed on different display devices (not shown). These different display devices may be part of a folding display, a laptop with multiple displays, or another computing device that may be driving multiple displays as described in more detail below. The partial dimming system  1302  may be similar to partial dimming system  1202  of  FIG. 12  or partial dimming system  1102  of  FIG. 11 . 
     As shown, the partial dimming system  1302  may include an application programming interface (API)  1304  that is able to coordinate, in conjunction with mask control  1306  and the event receiver  1308 , the dimensions and properties of the various masks  1328 ,  1336 ,  1342 ,  1344  across the various displays. Desktop  1320  may include an application  1326  that is a focus area that is in a layer above the mask layer  1328 . Applications  1322 ,  1324  are in layers below the mask layer  1328 , and therefore these applications are dimmed. In addition, any graphics on the desktop  1320  that are covered by the mask layer  1328  will also be dimmed. 
     The second display may include an application  1332  that is a focus area and above the mask layer  336  such that the application window  1332  will be undimmed. The application  1334  below the mask layer  1336  will be dimmed, as well as any graphics displayed on the desktop  1330  that are covered by the mask  1336 . The third display is an example of multiple masks. Here, multiple masks  1342 ,  1344  may be applied over desktop  3   1340  to provide partial dimming of the desktop  1340 . 
       FIG. 14  shows another example of multiple desktops with masks and applications, in accordance with various embodiments. Similar to  FIG. 13 , three different desktops represented by desktop  114   20 , desktop  2   1430 , and desktop  314   40  may be desktops displayed on different display devices (not shown) the partial dimming system  1402  may be similar to the partial dimming system  1302  of  FIG. 13 . 
     As shown, applications  1424 ,  1422  may both be focus areas that appear in layers above mask layer  1428 . Application  1426 , that is non-focus area that appears in a lower layer, will be dimmed by the mask  1428  along with non-focused areas of desktop  1420 . 
     Regarding desktop  2   1430 , the top layer includes a mask  1438  that is above a focus application  1432 . Here, only the portions of application  1432  that are covered by mask  214   38  will be dimmed. Mask  314   36  will completely dim application  1434 , as well as corresponding areas of desktop  214   30 . Here, the mask control  1406  is using a same mask  1428 ,  1436  that are applied both to desktop  1   1420  of the first display and desktop  2   1430  of the second display. In embodiments, the masks described with respect to  FIG. 13  and  FIG. 14  are not necessarily limited to Windows-based areas, but rather could be any interested area of any shape 
       FIGS. 15A and 15B  show two examples of a display with various levels of shading or dimming on the display by implementing a mask, in accordance with embodiments. Diagram  1500 a shows an example of a input mask layer  1502  that is applied (or added) over a display image  1504 . The transparent mask  1502  includes an area  1512  that is not masked. The display image  1504  may be example of a Windows user interface, with areas  1506 ,  1508  that show windows controlled by two different applications. 
     The display image  1504  is dimmed by adding an input mask layer  1502  with different transparency levels with a combination of identifying region(s), such as areas  1506 ,  1508 , to go under the mask layer for dimming, and region(s), such as area  1512 , to go above the mask layer for full visibility to the graphics composition system. The blended result is shown in composition  1520  with areas  1506   a,    1508   a  dimmed but still accessible by the user, for example if the user were to mouse click in the areas, and an area  1512   a  undimmed. In other embodiments, the areas  1506   a,    1508   a  may not be available to the user, for example if the user were to mouse click in those areas. In embodiments, an undimmed area may be referred to as a focus area. The composition system and the underling graphics system of the computer system and the display do not need any changes. 
     Modifying the final composited desktop surface is way to dim the display. Mathematically, applying a mask works as the dim function below. However, there is an alternative algorithm based on the blend formula: 
         dim (pixel)=pixel*α=blend(0,pixel,1−α) while blend( a,b,xα )= a*xα+b *(1 −x α)
 
     Pixel blending is a common graphics operations in modern graphics systems. By adding a mask layer  1502  as input with alpha (a) transparency, any level of dimming effect may be achieved at final composition stage  1520 . Note: in embodiments, the different transparency levels may be represented by the alpha (a) of each pixel, and the alpha value of different pixels could be different. 
     Diagram  1500   b  shows an example of an opaque mask  1532 , with cut out area  1542 . In embodiments, if the mask layer  1532  is fully opaque, then all layers below it  1536 ,  1538  do not need second time rendering. Thus, not only the content of masked area is invisible, but the actual rendering operation could be skipped. As a result, in embodiments, adding an input mask layer may bring extra graphics computation power saving which cannot be achieved in the final composition stage  1550 . In this example, only the area  1542   a  would need to be rendered and updated. Other areas only need one time rendering, and no update is needed because it is kept as a darker color or black. 
     These and other embodiments allow many ways to define undimmed and dimmed regions by user inputs or software preset. The undimmed regions such as an Active Application Window(s), predefined fixed or moving areas on display will be defined as voids of mask layer to allow full visibility, and the rest of the areas to be dimmed, either partially or completely. And the input determination from the user may include touch devices, mouse, keyboard, voice control, eye tracking, system power policies, etc. as described with respect to  FIG. 1 . 
     In contrast to the output stage dimming, as described with respect to  FIGS. 1-8 , tracks the focus area and/or dimmed area. This partial panel screen dimming, which may also be referred to as input stage dimming, does not need to maintain this information (focus region and/or dimmed region) explicitly. The defined dimmed region(s) under the mask layer are automatically dimmed, the defined undimmed region(s) above the mask layer are automatically undimmed. And furthermore, the depth (layer) of the windows are managed by existing algorithms built-in the OS. For example, the dimming area selection can be achieved by normal application window activation and deactivation. Because embodiments may only define a mask and voids to separate the undimmed and dimmed areas, not capturing any display content may lessen concerns for privacy protection. In addition, on systems that output buffer is protected, output stage dimming may not be easily achieved, unless low level driver or hardware changes involved. 
     In embodiments, implementation of partial panel screen dimming work on the application level. User interactions within dimmed display area can naturally be received and further processed. In contrast with output stage dimming, neither low level graphics driver nor desktop composition module would take care of this interactions. 
     With respect to  FIG. 15 , embodiments that implement partial panel screen dimming include two primary functionalities. First, to define an input mask layer and manage its transparency and depth. Second, to monitor and manage user interactions within the dimming area. The input mask can be within a single layer or distributed to multiple layers. The shape of the mask can be arbitrary, e.g. it does not need to be a square area. 
       FIGS. 16A, 16B, and 16C  show an example of a mask applied to dim areas of the display, with various levels of user interaction based on the transparency of the mask, in accordance with embodiments. User interface  1650  shows a computer screen with multiple applications running and includes an application window  1652  on top of the background application windows. User interface  1654  shows a computer screen similar to interface  1650 , however a transparent mask  1656  has been applied, where the mask  1656  has an open area  1652  to allow the top application to be viewed without dimming. In embodiments, both the top application and background applications may be selected by a user, for example by using a keyboard or a mouse. 
     User interface  1658  shows a computer screen similar to interface  1650 , however an opaque mask  1660  has been applied, where the mask  1660  has an open area  1652  to allow the top application to be viewed without dimming. In embodiments, only the top application is able to be viewed through the open area  1652 , and may be selected and interacted with by a user. 
     Note that in embodiments, a region of the user interface  1650 / 1654 / 1658  may include areas, for example the upper right-hand corner, for a user to double-click to exit the application of the mask. In other embodiments, there may be features, such as an auto hide slider bar that may be used to adjust dimming of the non-focus areas. 
       FIG. 17  shows various examples of masks applied to dim areas of the display, in accordance with embodiments. Screen  1702  shows a selected or active application  1704  as the focus display only, with the rest of the display dimmed. Screen  1706  shows a defined box area  1708  as the focus display only, with the rest of the display dimmed. Screen  1710  shows an application window  1712  partially dimmed, where the white/brighter areas are also dimmed. The application window icon bar, non-user interactive regions can be dimmed to darker color or black. 
     Screen  1714  shows a window  1716  where the window size has shrunk and is displayed only, with the other areas being dimmed. The shrunk display position can be anywhere on the panel. 
       FIG. 18  shows examples of displays with masks having different levels of transparency to dim areas of the display, in accordance with embodiments. Screen  1802  is shown not dimmed, with application  1804  running in a top window. Screen  1806  shows a mask  1808  applied at  50 % transparency, leaving application  1804  with focus and normal brightness. Screen  1810  shows a mask  1812  applied at 100% transparency, or opaque, leaving application  1804  with focus and normal brightness. The dimming areas can be one or multiple regions, and does not have to be on an application windows focus—it could be anywhere on the screen. For example, it can also be on the edges. 
       FIG. 19  shows an example of power savings expectations for non-focus areas that are partially or fully dimmed, in accordance with embodiments. Diagram  1900   a  shows a display  1902  that has an active area  1904  that is not dimmed, but where other non-focus areas  1906  on the display  1902  are dimmed at a 50% level, or where the mask is at a 50% transparency. In this example, the base brightness is between 105 nits to 395 nits, with the power savings of 1.86 watts (W) to 6.8 W. Diagram  1900   b  shows a display  1908  that has an active area  1904  that is not dimmed, but where other non-focus areas  1910  on the display  1908  are dimmed at 100% level. 
     Where the mask is opaque. In this example, the base brightness is between 105 nits to 395 nits, with the power savings of 2.37 W to 8.64 W. This example included a test configuration of an OLED 4K 15.6″ single display. The power savings included approximately 50% plus the backlight power savings of (1.86 W-8.64 W), and approximately 30% system battery life extension. A different panel may give different savings values. 
     With respect to expected or estimated power saving examples, the following may apply. When the partial dimming is applied in a browsing scenario where more than one internet explorer (IE) browser window is opened, the top most IE window is in focus while the rest of the screen is not in focus. The rest of the screen which is not in focus including the out-of-focus IE windows are dimmed. 
     Experimental analysis shows the comparison of the panel backlight power for a 15.6″ 4K OLED panel which is set to 105 nits and 395 nits respectively for two sets of scenarios and the backlight power instrumented for power measurement. For each OLED panel brightness setting, three experiments were done. The first experiment does not apply partial dimming. The second experiment applies 100% dimming to the out-of-focus area. The third experiment applies 50% dimming to the out-of-focus area. 
     Results shows 100% dimming gives &gt;50% panel backlight power savings and 50% dimming gives &gt;40% panel backlight power savings on this OLED panel with an average &gt;50% savings. 
       FIG. 20  shows an example of a computer with two displays where masks are used to dim areas of the two displays, in accordance with embodiments. Computer  2002  includes two displays, an upper display  2004  and a lower display  2006 . Computer  2008  shows the upper display  2004  with a mask  2010  applied to completely dim the upper display  2004 . Computer  2012  shows a mask  2014  applied to the upper display  2004  to dim the upper display  2004  except for application  2016 . Computer  2018  shows a mask  2014  applied to the upper display  2004 , and a second mask  2020  applied to the lower display  2006  to cause only the application in the window  2022  to be visible. The display remaining on can also be partially dimmed. 
       FIG. 21  shows another example of a computer with two displays where masks are used to dim areas of the two displays, in accordance with embodiments. Diagram  2100   a  shows a computer  2102  that includes two displays, an upper display  2102  and a lower display  2106 . Diagram  2100   b  shows an opaque mask  2108  applied to the lower display  2106  so that only the upper display  2104  can be seen. Diagram  2100   c  shows an opaque mask  2110  applied to a portion of the upper display  2102 , so that only a top portion of the upper display  2104  may be viewed. 
       FIG. 22  shows another example using a foldable display, in accordance with various embodiments. Foldable display device  2202  may include two separate displays, a first display  2204  and a second display  2206  during operation of the foldable display  2202 . In embodiments, in other operations, for example when the foldable display device  2202  is completely open, there may be just one large display substantially encompassing a side of the foldable display device  2202 . 
     As shown, the partial screen dimming system may be used to apply a mask layer  2208  to the graphics displayed on the first display  2204 , and applying a very transparent mask  2210  to the graphics displayed on the second display  2206 . In other examples, no mask  2212  may be applied to the graphics of the first display  2204 , leaving it bright, where an opaque mask  2214  may be applied to the graphics displayed on the second display  2206  causing the second display  2206  to be completely dimmed. 
       FIG. 23  shows an example process flow to dim a display using programmatic hardware commands. Process  2300  shows an example of a process that requires specialized hardware, which may be similar to the processes described with respect to  FIGS. 1-8  above. After program hardware commands are received, then an inquiry may be made whether partial dimming is enabled. If it is enabled, dimming shader is applied and the resulting images submitted to hardware. 
     At block  2302 , the process may start. At block  2304 , the process may determine and/or program hardware commands to be sent to a hardware display driver of the computing system. At block  2306 , a determination may be made whether partial dimming using hardware controls is enabled. If not, control passes to block  2310 . If so then at block  2308 , a dimming shader process may be invoked that identifies commands to be sent to the hardware to accomplish dimming on one or more displays. At block  2310 , commands are submitted to the hardware display driver, and the process ends at  2312 . 
       FIG. 24  shows an example process flow for applying a mask layer to implement dimming on a display, in accordance with embodiments. In contrast to process  2300 , process  2400  is a high-level overview process for implementing one or more embodiments of partial panel screen dimming using software and is not dependent on specific hardware. 
     At block  2402 , the process starts. At block  2404 , the process determines whether partial dimming is enabled. If not, the process moves to block  2408 . If so, then a block  2406  the process identifies and adds an input mask layer at the software level to combine with the graphics on the display. At block  2408 , the resulting graphics that includes the input mask layer is sent to hardware composition for the resulting image to be displayed. In embodiments, the input mask may be within a single layer, or distributed to multiple layers. At block  2410 , the process ends. 
       FIG. 25  shows a detailed process flow for dimming and area selection for multiple focus window and single focus window, in accordance with embodiments. Process  2500   a  represents a common application workflow, with which process  2500   b  and  2500   c  may interact. Process  2500   b  includes a set of actions to be taken in order to make a dimming area selection for a multiple focus window mode, for example where multiple areas of the display are active and accessible by the user. Process  2500   c  includes a set of actions to be taken in order to make a dimming area selection for single focus window mode. 
     Process  2500   a  may begin with a normal application window. The process may listen to user input, receive, and process the received user input. The input may be received after the results of process  2500   b  or  2500   c.  In embodiments, the switch between multiple window mode in single window mode may be done through a user preference setting, for example a design switch button on a user interface. The application window may subsequently be deactivated by losing focus, and subsequently enter an idle state. Subsequent to the idle state, the application window may be activated by capturing focus again, or the application may exit. 
     Process  2500 b is an embodiment for a dimming area selection for multiple focus window mode. The process may start a full-screen and transparent window mask, which may be similar to mask  1502  or  1532  of  FIG. 15 . Subsequently, the process may deactivate the mask. Subsequently, the process may listen to mouse clicks. The process may subsequently capture a mouse down event and open a mouse tunnel. Subsequently, the process may forward the mouse down event to bottom layers. Subsequently, the process may activate an application below the mask which got focus. In embodiments, this application is identified based on mouse location. Subsequently, the application is brought above the mask layer and be activated and made visible to the user. Subsequently, the process may close up the mouse tunnel upon a mouse up event, and then go back to the action of listen to mouse clicks, and end the dim the area selection process for above application. Subsequently, the event handling process for the activated application is restored to normal. 
     Process  2500   c  is an embodiment for a dimming area selection for a single focus window mode. The process may start a full-screen and transparent window mask, which may be similar to mask  1502  or  1532  of  FIG. 15 . Subsequently, the process may deactivate the mask. Subsequently, the process may listen to mouse clicks. Subsequently, the process may capture a mouse down event. Subsequently, the process may bring the mask itself to the topmost, so that open windows are masked. 
     Subsequently, the process may open a mouse tunnel. Subsequently, the process may forward to mouse down event to bottom layers. Subsequently, the application below the mask which got focus is activated. Subsequently, the application may be brought above the mask, so that only a single window is undimmed after this stage, which is also the input focused window and the activated window. Subsequently, the process may close up the mouse tunnel on a mouse up event. Subsequently, the process returns to the action of listening for mouse clicks, and the dimming area selection is finished for the above application. Subsequently, the event handling of the activated application is restored to normal. 
       FIG. 26  shows another detailed process flow for dimming and area selection for a multiple focus window and a single focus window, in accordance with embodiments. In embodiments, a common application workflow  2602 , may be incorporated as part of the dimming area selection for multiple focus windows mode process  2632 , as well as the dimming area selection for single focus window mode  2662 . 
     Embodiments discussed further below, an application window may be activated by mouse clicking is built-in and supported by Windows operating system. For example, if any in active window is clicked, then that window is activated immediately. In embodiments, bringing the activated window to topmost layer is the default behavior. 
     The common application workflow process  2602  may be implemented by one or more of the processes, techniques, apparatus, or systems described herein. At block  2604 , the process may start with a normal application window. At block  2606 , the process may listen to user input and processes. In embodiments, this may include receiving user input from a user operating a computer device with the display. In embodiments, it may include receiving handling processes for the application restored to normal from block  2650  of dimming area selection for multiple focus window mode  2632 . In other embodiments, this may include receiving handling processes for the application restored to normal from block  2680  of dimming area selection for single focus window mode  2662 . 
     At block  2610 , the process may identify a window deactivated by losing focus. In embodiments, this may be based upon user input directing focus to another window on the display. At block  2612 , the process may idle. At block  2608 , the process may reactivate the window by capturing focus again, and proceed to block  2606 . At block  2614 , the process may identify an application exit, for example based on user input, and close the window. 
     With respect to dimming area selection for multiple focus windows  2632 , this process may be implemented by one or more of the processes, techniques, apparatus, or systems described herein. At block  2634 , the process may start a full-screen and transparent window, including mask layer. At block  2636 , the process may deactivate the mask. At block  2638 , the process may bypass mouse events to bottom layers. At  2640 , the process may activate an application window that is below the mask, and at block  2642  the application may be identified by a mouse location. 
     At block  2644 , the process may bring the application above the mask layer, which at block  2646  the selected application may be unmasked. At block  2648 , the process may finish updating the dim area, and at block  2650  the process may include event handling for the application to be restored to system default behavior. The process may then proceed to block  2606 . 
     With respect to dimming area selection for a single focus window  2661 , this process may be implemented by one or more of the processes, techniques, apparatus, or systems described herein. At block  2664 , the process may start a full-screen and a transparent window, including mask layer. At block  2666 , the process may deactivate the mask. At block  2668 , the process may bypass mouse events to bottom layers. 
     At  2670 , the process may activate an application window that is below the mask. At block  2672 , the process may bring the application window above the mask. At block  2676 , the process may move the mask to a layer just under the activated application so that only one application is unmasked. At block  2678 , the process may finish updating the dim area, and at block  2680 , the process the process may include event handling for the application to be restored to system default behavior. The process may then proceed to block  2606 . 
       FIG. 27  shows a process for partial panel screen dimming, in accordance with embodiments. Process  2700  may be performed using hardware, software, and techniques described herein with respect to  FIGS. 1-26 . 
     At block  2702 , the process may include receiving, by a software component of a computing device, an input selecting one or more areas of a display of the computing device, leaving one or more other areas of the display unselected. 
     At block  2704 , the process may further include applying, by the software component, a masking layer to mask either pixels of the one or more selected areas or pixels of the one or more unselected areas to cause the masked pixels to be dimmed, to reduce power consumption by the display. 
     Other techniques may be used for dimming the backlight outside a region of focus. These techniques may be implemented as a multistage operation, and may be related to the processes described herein, and in particular with respect to  FIGS. 25-26 . 
     First stage. In the first stage, the pixel values outside the region of focus are changed. This is done during the desktop composition stage. 
     One of the inputs to the dimming operation is the dim level that the user can configure. The user can also specify if the user desires a foveated dimming. In this case, the user can specify a dim gradient so that non-uniform dimming can be achieved. The algorithm can be extended to use other inputs not limited to the above. 
     The region of focus can be user-specified and fixed. It could also be determined by active windows without explicit input for natural user experience. 
     For every pixel in the Desktop Composited surface that is outside the region of focus, the shader or the algorithm uses the aforementioned inputs to change the &lt;R,G,B&gt; color components of the pixel so that they are darker than they were before this operation. This ends the first stage. 
     Second stage. In the second stage, the panel backlight is adjusted based on the frame that is displayed. 
     On pixel backlight panels, such as OLED panels, backlight adjustment is individually done by the panel. Based on the pixel value, the backlight is adjusted in such a way that the user doesn&#39;t notice the change. For darker values, the backlight can be reduced individually to a greater extent. 
     On global backlight panels such as LCD panels which do not support a per pixel panel backlight adjustment, power saving features like Intel® Display Power Saving Technology (DPST) or Content Adaptive Brightness control (CABC) etc. can be used. In DPST or CABC, depending on the percentage of dark pixels in the frame being displayed and upon meeting a set threshold for that, either the display hardware (in the case of DPST) or the timing controller (TCON) in the panel (in the case of CABC) change the backlight settings of the panel in such a way that the user doesn&#39;t notice the change when the backlight is reduced. This ends the second stage. 
     In either case, when the panel is OLED or LCD, the first stage causes the pixels outside the region of focus to be darker which triggers the backlight reduction in the panel causing partial panel dimming, which ultimately brings the panel backlight power savings. The same techniques can be for a system that has more than one single display 
       FIG. 28  shows a non-transitory computer readable storage medium that includes instructions to implement one or more processes to cause partial panel screen dimming. Diagram  2000  shows a non-transitory computer readable storage medium  2002 , the may be implemented in embodiments described herein. For example, the computer readable storage medium may be stored within computing system  800  of  FIG. 8 , in particular the memory  804  or other storage  818 . The computer readable storage medium  2002  may contain programming instructions  2004  that may be executed by processor  802  of  FIG. 8 . 
     EXAMPLES 
     Each of the following non-limiting examples may stand on its own, or may be combined in various permutations or combinations with one or more of the other examples. 
     Example 1 is a method, comprising: determining one or more areas of a display to remain active in response to received user input; determining one or more areas of the display to be dimmed in response to the received user input; and dimming the one or more areas of the display to be dimmed to reduce a power consumption of the display. 
     Example 2 is the subject matter of Example 1, wherein the received user input comprises at least one of: cursor information received from a mouse; keystroke information received from a keyboard; touch information received from a touch screen; a position of the eyes of the user indicating a location on the display where the user is looking; a voice command from the user; manual input received from a user; or a power policy setting of an electronic device including the display. 
     Example 3 is the subject matter of any one or more of Examples 1-2, wherein the display comprises a plurality of pixels, and wherein dimming the one or more areas of the display to be dimmed comprises dimming at least some of the pixels of the display in the one or more areas of the display to be dimmed. 
     Example 4 is the subject matter of any one or more of Examples 1-3, wherein dimming at least some of the pixels of the display in the one or more areas of the display to be dimmed comprises changing a color of at least some of the plurality of pixels of the display in the one or more areas of the display to be dimmed. 
     Example 5 is the subject matter of any one or more of Examples 1-4, wherein changing a color of at least some of the plurality of pixels of the display in the one or more areas of the display to be dimmed comprises changing the color to black or darker color. 
     Example 6 is the subject matter of any one or more of Examples 1-5, wherein the display includes a plurality of displays and wherein dimming one or more areas of the display to be dimmed comprises dimming one or more areas on each of the plurality of displays. 
     Example 7 is the subject matter of any one or more of Examples 1-6, wherein dimming one or more areas on each of the plurality displays comprises turning off one or more of the plurality of displays. 
     Example 8 is the subject matter of any one or more of Examples 1-7 further comprising enabling and disabling dimming the one or more areas of the display to be dimmed in response to received user input. 
     Example 9 is a non-transitory machine-readable medium storing a program executable by at least one processing unit of an electronic device including a display, the program comprising sets of instructions for: determining one or more areas of the display to remain active in response to received user input; determining one or more areas of the display to be dimmed in response to the received user input; and dimming the one or more areas of the display to be dimmed to reduce a power consumption of the display. 
     Example 10 is the subject matter of Example 9, wherein the program comprises a set of instructions in a desktop composition module of the electronic device. 
     Example 11 is the subject matter of any one or more of Examples 9-10, wherein the electronic device executes the Windows operating system, and wherein the desktop composition module comprises the desktop windows manager (DWM) of the Windows operating system. 
     Example 12 is the subject matter of any one or more of Examples 9-11, wherein the program comprises a set of instructions in a graphics driver of the electronic device. 
     Example 13 is the subject matter of any one or more of Examples 9-12, wherein the program further comprises a set of instructions of a plugin of the graphics driver. 
     Example 14 is the subject matter of any one or more of Examples 9-13, wherein the plugin comprises a set of instructions for receiving, from an operating system of the electronic device, the received user input. 
     Example 15 is a system, comprising: one or more displays; a set of processors; and a non-transitory computer-readable medium storing a set of instructions that when executed by at least one processor in the set of processors cause the at least one processor to: determine one or more areas of the one more displays that are to remain active in response to user input; determine one or more areas of the one more displays that are to be dimmed in response to the user input; and dim the one or more areas of the one or more displays to be dimmed to reduce a power consumption of the one or more displays. 
     Example 16 is the subject matter of Example 15, wherein the set of instructions stored in the non-transitory computer-readable medium comprise instructions in a desktop composition module of the system. 
     Example 17 is the subject matter of any one or more of Examples 15-16, wherein the non-transitory computer-readable medium stores instructions of the Windows operating system, and wherein the desktop composition module comprises the desktop windows manager (DWM) of the Windows operating system. 
     Example 18 is the subject matter of any one or more of Examples 15-17, wherein the set of instructions stored in the non-transitory computer-readable medium further comprise a set of instructions of a graphics driver of the system. 
     Example 19 is the subject matter of any one or more of Examples 15-18, wherein the set of instructions stored in the non-transitory computer-readable medium include a plugin of the graphics driver. 
     Example 20 is the subject matter of any one or more of Examples 15-19, wherein the graphics driver includes a dimming shader program and the dimming shader program includes the plugin comprising a set of instructions for receiving, from an operating system of the system, the user input. 
     Example 21 is a computer implemented method for operating a display, the method comprising: receiving, by a software component of a computing device, an input selecting one or more areas of a display of the computing device, leaving one or more other areas of the display unselected; and applying, by the software component, a masking layer to mask either pixels of the one or more selected areas or pixels of the one or more unselected areas to cause the masked pixels to be dimmed, to reduce power consumption by the display. 
     Example 22 includes the method of example 21, wherein the one or more of the selected areas include a focus area of interest, and the applying comprises applying the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed. 
     Example 23 includes the method of example 22, wherein the focus area includes an active application window. 
     Example 24 includes the method of example 22, further comprising modifying, by the software component the masking layer, in response to the selection of the focus area. 
     Example 25 includes the method of example 24, further comprising modifying, by the software component the masking layer, in response to changing dimensions of the focus area. 
     Example 26 includes the method of example 22, wherein the applying of the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed comprises applying the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed non-uniformly. 
     Example 27 includes a method of example 21, wherein the receiving of the input selecting one or more areas of the display comprises receiving the input selecting the one or more areas of the display from a user input device of the computing device. 
     Example 28 includes the method of any one of examples 21-27, wherein the masking layer includes transparency layers associated with the pixels to be dimmed, and the applying comprises alpha blending the transparency layers associated with the pixels to be dimmed to respectively dim the pixels. 
     Example 29 is a computer readable media comprising instructions that cause a computing device, in response to execution of the instructions by one or more processors of the computing device, to operate a display dimming engine to: receive an input selecting one or more areas of a display of the computing device, leaving one or more other areas of the display unselected; and apply a masking layer to mask either pixels of the one or more selected areas or pixels of the one or more unselected areas to cause the masked pixels to be dimmed, to reduce power consumption by the display. 
     Example 30 includes the computer readable media of example 29, wherein the one or more of the selected areas include a focus area of interest, and to apply comprises to apply the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed. 
     Example 31 includes the computer readable media of example 30, wherein the focus area includes an active application window. 
     Example 32 includes the computer readable media of example 11, further comprising to modify the masking layer, in response to the selection of the focus area. 
     Example 33 includes the computer readable media of example 31, further comprising to modify the masking layer, in response to changing dimensions of the focus area. 
     Example 34 includes the computer readable media of example 30, wherein to apply the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed comprises to apply the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed non-uniformly. 
     Example 35 includes the computer readable media of example 29, wherein to receive the input selecting one or more areas of the display comprises to receive the input selecting the one or more areas of the display from a user input device of the computing device. 
     Example 36 includes the computer readable media of any one of examples 29-35, wherein the masking layer includes transparency layers associated with the pixels to be dimmed, and to apply comprises alpha blending the transparency layers associated with the pixels to be dimmed to respectively dim the pixels. 
     Example 37 is a computing apparatus comprising: means for receiving an input selecting one or more areas of a display of the computing device, leaving one or more other areas of the display unselected; and means for applying a masking layer to mask either pixels of the one or more selected areas or pixels of the one or more unselected areas to cause the masked pixels to be dimmed, to reduce power consumption by the display. 
     Example 38 includes the computing apparatus of example 37, wherein the one or more of the selected areas include a focus area of interest, and means for applying comprises means for applying the masking layer to mask pixels of the one or more unselected areas to cause the masked pixels to be dimmed. 
     Example 39 includes the computing apparatus of example 37, wherein the focus area includes an active application window. 
     Example 40 includes the computing apparatus of any one of examples 37-39, further comprising means for modifying the masking layer, in response to the selection of the focus area. 
     The above description illustrates various embodiments of the present disclosure along with examples of how aspects of the particular embodiments may be implemented. The above examples should not be deemed to be the only embodiments and are presented to illustrate the flexibility and advantages of the particular embodiments covered by the following claims. Based on the embodiments described in the present disclosure, other arrangements, embodiments, implementations and equivalents may be employed without departing from the scope of the present disclosure.