1. Field of the Invention
The present invention is directed generally to the control of a computer display and, more particularly, to a system and method for controlling a computer display between multiple environments.
2. Description of the Related Art
Computer security is an ever increasing area of concern for computer users. Frequent reports of computer viruses and operating system flaws point to weaknesses in security that can be exploited by unscrupulous individuals. While virus protection software and computer firewalls provide protection in a network environment, the display of confidential information on a computer system remains as a potential weakness in computer security. Accordingly, it can be appreciated that there is a significant need for techniques that protect the display of data on a computer and permit the display of data from multiple environments within the computer. The present invention provides this, and other advantages, as will be apparent from the following detailed description and accompanying figures.
The present invention is embodied in a system and method that permits a computer display to share display space between multiple environments. In an exemplary embodiment, a system operates in a processor using a memory to display data from multiple environments on a display device having a total display area. The system comprises a first environment comprising computer instructions stored in the memory and executed by the processor, with the first environment having data for display on the display device. The system also comprises a second environment comprising computer instructions stored in the memory and executed by the processor, the second environment having data for display on the display device, and a display controller to communicate with both the first and second environments to permit sharing of the total display area to thereby display first environment display data and second environment display data on the display device.
In one embodiment, the first environment is an operating system executed by the processor. The second environment may be a kernel executed by the processor in addition to the operating system. Alternatively, the second environment may be a second operating system executed by the processor in addition to the first operating system.
In exemplary embodiment, the display controller reduces a portion of the display area used by the first environment to display the second environment display data on the display device. The display controller may use a first predetermined portion of the total display area to display the first environment display data and a second predetermined portion of the total display area to display the second environment display data on the display device. In one embodiment, the first and second predetermined portions equal the total display area of the display device.
Alternatively, the display controller may use a first predetermined area of display of the first environment display data in a second predetermined. area of display of the second environment on the display device.
The system may further comprise an input device operable by a user to toggle the focus between the first environment and the second environment. The display controller is responsive to the input device to thereby toggle the display device to display first environment display data when the focus is toggled to the first environment and to display second environment display data when the focus is toggled to the second environment.
As will be discussed in greater detail herein, a display controller disclosed herein can be configured to operate in multiple environments and to arbitrate the allocation of display space on a display device between the multiple environments. The term environment, as used herein, refers to a microkernel, kernel, multiple kernels, applets, applications, operating systems or virtual machines. In a typical implementation, multiple environments are executing on a computer system and need display capability and a mechanism for arbitrating and apportioning the display between the multiple environments. The multiple environments may be any of the environments described above, such as multiple kernels, a first operating system main kernel, multiple operating systems, or the like. In addition, a computer system may include multiple display devices. In this event, it is necessary to arbitrate and apportion the display space in the multiple display devices to the multiple environments.
The techniques may be implemented in a system 100 illustrated in the functional block diagram of
The storage device(s) 106 may include one or more well known storage devices, such as a hard disk drive, optical storage drive (e.g., CD, CD±R, CD±R/W, DVD, DVD±R, and/or DVD±R/W, tape drive, RAM disk, or the like). The system 100 is not limited by the specific components used to implement storage device(s) 106.
The system 100 also includes a number of conventional input-output (I/O) devices 110. The I/O devices 110 may include, but are not limited to, a keyboard 112, cursor control device 114 (e.g., a mouse, trackball, joystick, or the like), a printer 116 and an audio output device 118. The operation of these I/O devices 110 is well known in the art and need not be described in greater detail herein.
Also illustrated in the functional block diagram of
The various components described above are coupled together by a bus system 126, which may include an address bus, data bus, control bus, power bus, and the like. For the sake of clarity, those various busses are illustrated in
The display controller 120 functions as more than a simple interface device to convert graphics data for delivery to the hardware display adapter 121. The display controller 120 functions as an arbitrator to identify data from multiple environments and to allocate display space to those multiple environments. The display controller 120 detects activation of a second environment and adjusts display parameters of the existing environment display to accommodate the second environment display data. If the second environment is deactivated, the display controller 120 can subsequently readjust the display parameters to accommodate only the first environment.
In the embodiment of
The display controller 120 determines the display requirements for the first and second environment and provides that information to the respective APIs to permit proper rendering into the allocated display space. Thus, each environment will properly render display data for its allocated display space. The rendered data is provided to the OEM display driver via the display controller 120. One advantage of the software implementation shown in
In general, the environment or application in a particular environment that currently has focus is the environment or application that will receive the largest display area from the display controller 120 if a larger display area is required for proper rendering. The term “focus” is used herein to refer to systems with multiple environments wherein the active environment is deemed to have the focus. Input events (e.g., a keyboard event) are generally associated with the environment having focus. In certain operating systems, such as a Windows® operating system, the active window has focus.
Each environment or each application within an environment may have a needed or requested area for proper display. The display controller 120 may access a management storage area 124 with a list of applications in the environment and the ability for the display area to change, thus allowing the application the requested display area to properly render data. In other embodiments, the management storage area 124 may contain a list of predetermined display areas, a list of display locations or set of resolutions in a table for access by the display controller 120. In a software implementation of the display controller 120, the management storage area 124 may reside in the memory 104 (see
In the embodiment illustrated in
In this embodiment, the display controller 120 functions as an arbitrator to detect activity associated with a particular environment and knows which display space to use. For example, the display controller 122 determines that environment No. 2 is active and directs output to the appropriate display space allocated for the second environment. The display controller 120 determines environment activity in a variety of manners. For example, the user may manually toggle back and forth between one environment and another. Alternatively, the display controller 120 determines which environment currently has the focus. For example, the user may have manipulated the cursor from the first environment to the second environment. The display controller 120 can readily determine, by virtue of the position of the cursor on the video display 122, which environment is active. In this manner, the display controller determines the appropriate allocation of display space on the video display 122.
A registration process may be used to communicate the display requirements for the first and second environments to the display controller 120 for storage in the management storage area 124. The registration process will be described in greater detail below. In an exemplary embodiment, the second environment does not load or execute until a request is received to toggle to the second environment. The request may come from the user or from an application.
At step 206, the second environment requests display space. The user may manually request activation of the second environment. Alternatively, a number of different techniques for toggling between the first environment and the second environment are described herein. As described above, the display controller 120 may retrieve display parameters for the second environment from the management storage area 124. Alternatively, the system can accommodate a dynamic request for display space. In this embodiment, the dynamic request may include parameters for the amount of space required, display location and/or the display resolution required for effective display of data associated with the second environment. Other display parameters may include cursor type, size, shape, movement, display background color, texture, desktop size, and the like. Such display parameters are known in the art and can be readily altered when switching between environments.
At step 208, the display controller 122 reduces the size and possibly the location of the primary operating system display. In a multiple display system, such as that illustrated in
No. 1122 and the video display No. 2124.
A number of different known techniques may be used to alter the allocated display space. For example, U.S. Pat. No. 6,018,332, entitled “Overscan User Interface,” issued on Jan. 25, 2000, and assigned to the assignee of the present invention, describes the use of an overscan area for the display of data associated with a second environment. An alternative embodiment is described in U.S. Pat. No. 6,330,010, entitled *Secondary User Interface,” issued on Dec. 11, 2001, and assigned to the assignee of the present invention. That patent describes a technique by which operating system parameters are altered in a manner transparent to the operating system to alter display area and thereby create an additional space on a desktop for display of data associated with second environment. Another example is described in U.S. Pat. No. 6,661,435, entitled “Secondary User Interface,” issued on Dec. 9, 2003, and assigned to the assignee of the present invention. That patent describes a technique by which a video device driver operates without communicating via the operating system display interface to apportion the video display and thereby create an area of the video display that is capable of displaying output that is not obscured by output from the operating system display interface.
In step 210, the display controller 120 passes memory location, size and any other display parameters needed by the second environment to properly render second environment display data. Other examples of display parameters have been provided above. These parameters are returned to the portion of each environment which is responsible for rendering the data for the display. In one example, the portion of an environment responsible for rendering the display is a graphics device interface (GDI). In another example, a Windows® operating system has a redraw or “repaint” command that may be used in rendering a display. By passing these parameters back to the rendering portion of each environment, each environment is assured of rendering its own output data so that it will be properly rendered in the allocated display space.
In step 214, the display controller 120 manages the display parameters for rendered outputs so that both environment displays appear in parallel or in a complementary manner on the display device 122 or on the display devices 122 and 126 of
As previously discussed, a number of different techniques may be used to toggle between the multiple environments.
At step 224, the display controller 120 determines which environment currently has focus. As is known to those skilled in the art, focus refers to the environment or portion of the display actively being used. For example, the display controller 120 can determine, on the basis of location of the cursor on the display device 122, which environment is active or has focus. In step 226, the display controller 120 determines the display requirements for the first and second environments. In a typical implementation, the environment having the focus will receive priority in the allocation of display space on the video display 122 (see
In step 228, the display controller 120 returns display parameters to each environment so they can properly render the associated display data and the process ends at 230. In this manner, the environment currently having the focus is given priority by virtue of the larger resolution or display space allocation. As previously discussed, the display space, locations and resolution requirements may be provided to the display controller 120 for storage in the management storage area 124 (see
In step 254, the environment may present the display controller with an icon representative of the environment. In step 256, the display controller 120 uses the icon provided in step 254 or simply a text string representative of the environment. In step 258, the display controller places the icon and/or text string into a toggle bar. In step 260, the multiple environments are now accessible for the user and the process ends at 262.
With respect to
In step 284, the display controller 120 (see
In step 288, the display controller 120 passes parameters to the second environment to permit proper rendering of the second environment display data and the process ends 290. In this manner, the display controller 120 alters the display parameters for the first environment to accommodate the addition of display space for use with the second environment.
environment 1 and environment 2 on the display device 122. In
The foregoing described embodiments depict different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to inventions containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should typically be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, typically means at least two recitations, or two or more recitations).
This application is a continuation of U.S. patent application Ser. No. 12/554,706 filed Sep. 4, 2009, which was a continuation of U.S. patent application Ser. No. 10/864,726 filed Jun. 9, 2004 (now abandoned), which was a continuation-in-part of U.S. patent application Ser. No. 09/724,978 filed Nov. 28, 2000 (now U.S. Pat. No. 6,892,359), which was a continuation-in-part of U.S. patent application Ser. No. 09/666,032 filed Sep. 20, 2000, which claims the benefit of priority to U.S. Provisional Patent Application Ser. No. 60/248,438 filed Feb. 18, 2000, all of which are incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | 12554706 | Sep 2009 | US |
Child | 12985292 | US | |
Parent | 10864726 | Jun 2004 | US |
Child | 12554706 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09924978 | Aug 2001 | US |
Child | 10864726 | US | |
Parent | 09666032 | Sep 2000 | US |
Child | 09924978 | US |