Prioritization of background display during animation
18 claims: 6 independent, 12 dependent
- 1A multitasking data processing system that superimposes and displays an animated image generated by a first process on at least one other image generated by a second process. A means for determining whether the animated image makes a pre-hidden area of the other image visible, and A means for assigning a first priority value, which is relatively lower than the second priority value assigned to the second process, to the first process, and Including When the animated image exposes the other image, the second process is performed with a relatively higher priority than the first process so that the other image can be used for display. A system characterized by that. 【請求項1】第1プロセスによって生成されたアニメートされたイメージを、第2プロセスによって生成された少なくとも1つの他のイメージに重ね合わせて表示するマルチタスク・データ処理システムにして、 前記アニメートされたイメージが前記他のイメージの予め隠されたエリアを可視的にするかどうかを決定するための手段と、 前記第2プロセスに割り当てられた第2優先順位値よりも相対的に低い第1優先順位値を前記第1プロセスに割り当てるための手段と、 を含み、 前記アニメートされたイメージが前記他のイメージを露出する時、前記他のイメージが表示のために使用可能になるように前記第1プロセスよりも相対的に高い優先順位で前記第2プロセスを実行することを特徴とするシステム。
- 8The animated image is generated by a second process in a computer-executed way for displaying the animated image generated by the first process on a multitasking data processing system. In a way that overlays on at least one other image A step of determining whether the animated image makes a pre-hidden area of the other image visible, and A step of assigning a first priority value, which is relatively lower than the second priority value assigned to the second process, to the first process, and a step of assigning the first priority value to the first process. Including The multitasking data processing system is relatively higher than the first process so that when the animated image exposes the other image, the other image becomes available for display. A method characterized in that the second process is executed in priority order. 【請求項8】第1プロセスによって生成されたアニメートされたイメージをマルチタスク・データ処理システム上に表示するためのコンピュータ実行される方法にして、前記アニメートされたイメージは第2プロセスによって生成される少なくとも1つの他のイメージに重ね合わされる方法において、 前記アニメートされたイメージが前記他のイメージの予め隠されたエリアを可視的にするかどうかを決定するステップと、 前記第2プロセスに割り当てられた第2優先順位値よりも相対的に低い第1優先順位値を前記第1プロセスに割り当てるステップと、 を含み、 前記マルチタスク・データ処理システムは、前記アニメートされたイメージが前記他のイメージを露出する時、前記他のイメージが表示のために使用可能となるように、前記第1プロセスよりも相対的に高い優先順位で前記前記第2プロセスを実行することを特徴とする方法。
- 9The determination step comprises storing an initial priority level for each of the first process and the second process prior to displaying the animated image. Item 8. The method according to item 8. 【請求項9】前記決定するステップは、前記アニメートされたイメージの表示の前に、前記第1プロセス及び前記第2プロセスの各々に対する初期優先順位レベルを記憶するステップを含むことを特徴とする請求項8に記載の方法。
- 11The tenth aspect of the invention comprises the step of resetting the first process and the second process to the initial priority level following the display of the animated image. The method described. 【請求項11】前記割り当てるステップは、前記アニメートされたイメージの表示に続いて前記第1プロセス及び前記第2プロセスを前記初期優先順位レベルにリセットするステップを含むことを特徴とする請求項10に記載の方法。
- 13A claim comprising the step of determining whether a plurality of other images generated by the plurality of corresponding processes are displayed in the area hidden by the animated image. Item 12. The method according to item 12. 【請求項13】複数の対応したプロセスによって生成された複数の他のイメージが前記アニメートされたイメージによって隠されている前記エリアに表示されるかどうかを決定するステップを含むことを特徴とする請求項12に記載の方法。
- 15A data structure stored on a computer-readable medium that overlays the animated image produced by the first process on at least one other image produced by the second process. Make it a computer system A means for determining whether the animated image makes a pre-hidden area of the other image visible, and A means for assigning a first priority value, which is relatively lower than the second priority value assigned to the second process, to the first process, and Including The data processing system has a higher priority than the first process so that when the animated image exposes the other image, the other image can be used for display. A computer system characterized by performing the second process. 【請求項15】第1プロセスによって生成されたアニメートされたイメージを、第2プロセスによって生成される少なくとも1つの他のイメージに重ね合わせて表示させるコンピュータ読取可能な媒体に記憶されたデータ構造を含むコンピュータ・システムにして、 前記アニメートされたイメージが前記他のイメージの予め隠されたエリアを可視的にするかどうかを決定するための手段と、 前記第2プロセスに割り当てられた第2優先順位値よりも相対的に低い第1優先順位値を前記第1プロセスに割り当てるための手段と、 を含み、 データ処理システムは、前記アニメートされたイメージが前記他のイメージを露出する時、前記他のイメージが表示のために使用可能となるように、前記第1プロセスよりも相対的に高い優先順位で前記前記第2プロセスを実行することを特徴とするコンピュータ・システム。
Independent claims6
90 paragraphs, as filed
Description: TECHNICAL FIELD [Detailed description of the invention]
【0001】
INDUSTRIAL APPLICABILITY The present invention relates to a data processing system for creating a display of a non-standard composite object in a physical aspect in a graphical user interface (GUI). More specifically, when the animation image no longer obscures the display area hidden by the image during the animation sequence, a process is utilized that allows the area to be refreshed quickly and efficiently.
【0002】
Object-Oriented Programming is a known technique for encapsulating data and methods into programming entities called objects. By protecting certain methods and data through public interfaces, object-oriented programs can prevent each component from being transformed into another component that provides the required functionality with minimal reprogramming. For more background information on object-oriented technology, see the following references: "Object Oriented Design with Applications" by Grady Booch (The Benjamin / Cummins Publishing Company, 1990) and B. Meyer. See "Object Oriented Software Construction" (Prentice Hall, 1988).
Generally, in a graphical user interface, everything is present by a window containing items such as size borders, rectangular clients, menus, title bars, and so on. These items are not found on a physical object such as a telephone or book on the user's desk. Current data processing technologies are moving towards displaying these physical objects on computer screens. It is highly desirable to have real-life objects spawned on the GUI desktop exactly as users experience them in real life.
With advances in computer systems such as highly available high frequency microprocessors and multiprocessing operating systems, software animation is becoming more and more common. When performing software animation, it is important to remove the old (existing) image and display the new image as quickly as possible. Otherwise, the visual effect will be weakened and you will not be able to obtain a true sense of life.
Software animation generally results from a single foreground process. In this case, the animation steps are as synchronous as possible when using multithreaded operating systems such as Windows and OS / 2 operating systems. For example, the animation area may be in the foreground process relative to the window client area.
0006 However, if the animation area is on the desktop, there are multiple processes. For example, like the desktop itself, there may be one program running in each window opened on the desktop. Each of these processes competes for time slices on its processor. During the animation sequence, some parts of the screen will be displayed intermittently and then hidden by the animation image. If the animation process is on a window that contains a word processor, the animation thread (process) will conflict with threads from that word processor for overlapping screen areas. In a normal system, word processing threads and animation sequence threads would be treated equally when competing for processor time slices. Therefore, the performance of the animation sequence is degraded by it competing with the word processing thread. This causes an inconsistent recovery of the animation thread resulting from conflicts with other processes when the window needs painting.
A particular example of this is a real-life telephone-like desktop object that includes a drawer. Each object is a child of that desktop, like any other window application that runs on it. When the user selects the drawer handle on the phone, the drawer moves in and out on the desktop. So everything underneath that drawer will need a paint operation (painting as a drawer when the drawer is opened and painting the basic process when the drawer is closed). When an animation process is occurring, it is (at any time) possible for the basic process to acquire and paint a time slice that makes the animation inconsistent and inconsistent. This gives the animation sequence a poor, variable and unrealistic look to the user.
【0008】
PROBLEM TO BE SOLVED: To solve a problem. Therefore, when a user tries to manipulate an image of a "real mode" type, there is a need for a system and a method for giving a very attractive and lifelike realistic animation sequence. Exists.
【0009】
Means for Solving Problems In contrast to prior art, the present invention causes realistic movements on a computer display when a user manipulates a physical object to initiate an animation sequence. Provide systems and methods that enable this.
Generally speaking, the present invention provides systems and methods for harmonizing (synchronizing) animation sequences and background processes. That is, the movement of the animation must be coordinated with the paint in the base window. For example, when an animation movement causes a base window to appear, the speed at which the animation movement is occurring must be substantially equal to the speed at which the base window is painted. A mechanism is used to adjust the thread priority of the animation thread.
When the animation is about to start, the priority of the animation thread is set to a priority below normal (BELOW_NORMAL). There, the animation process is carried out. The animation thread is then reset to the NORMAL priority. Since the priority of the animation thread is subnormal, other competing processes will react faster during the animation process (due to their higher priority). This will cause other processes to update (paint) their client areas faster. Each change of another process to the client area will result in an update to that area as the other process will likely have a higher priority with respect to the animation sequence. Therefore, in the previous example, the word processing thread would have a higher priority than the animation thread, refreshing its display area more often, giving it a more attractive appearance for subsequent animation movements. Will.
Therefore, according to the above summary, the objects, features, and advantages of the present invention will be apparent to those skilled in the art from the following description and claims made in connection with the accompanying drawings. Will.
【0013】
BEST MODE FOR CARRYING OUT THE INVENTION The telephone object of the present invention is a design of a user interface for a new physical aspect of the user interface style. It is formed using C ++ and implements a reusable framework. The shortcut feature allows the property page of the shortcut icon on the phone to assign a shortcut key. This will allow the user to access the phone at any time. For example, a shortcut key will bring the phone to the top when it is covered by another window. Also, when the user presses a shortcut key, the telephone will automatically answer whether it is ringing or not.
Further, one embodiment of the telephone object of the present invention will allow the object to be fully visible during movement and sizing. This dynamic display of objects during sizing can be achieved by using a software program such as "Plus" from Microsoft. It is also possible to display a conventional outline box when resizing.
During dialing, the user can insert a pause by inserting a comma (,) for a two second pause or by inserting a semicolon (;) to wait for another dial tone. it can.
Telephone numbers are often made up of easy-to-remember names or acronyms, but are difficult to dial on an actual telephone (eg, 1-800-CALLIBM). For the telephone object of the present invention, the user can type characters on the keyboard. The present invention converts those characters into a desired telephone number and automatically dials that number.
The telephone object of the present invention can also combine a number keyed in by the user with a speed dial number. For example, if 9 must be dialed to get an extension, the user can enter the number 9 and then select the speed dial button.
The present invention is practiced to allow the user to close an "object" when required by a particular operating system. However, the present invention supports operating systems when the user does not need to close the object. In a preferred embodiment, the telephone object of the present invention supports object closing required by the majority of current operating systems such as Windows 95 (available from Microsoft). This close and other functions are performed through the pop-up menu. There, the phone object is selected (for example, clicking the first mouse button on that object to see the pop-up menu, and then clicking the second button on the option that should be selected by the user. By).
The telephone object of the present invention was designed to work in much the same way as a physical telephone placed in a desk, wall, car, or pocket. But unlike a physical telephone, it works through a computer. The present invention utilizes very good features such as the computer remembering the name and number when finding the number in a short time and entering (dialing) it. The present invention allows the user to answer and make calls without having to pick up the physical handset.
One of the differences between the present invention and other telephone applications is that the telephone object of the present invention is always a real telephone, regardless of how the user is currently interacting with the telephone object. It is to display the image of the vessel. Moreover, the objects of the invention do not require a window boundary around them. It's on the right side of the desktop. It is recognizable in any size and can be made as large or small as desired without interfering with its function. Even when the object is displayed as an icon, it can be used to answer a call or manually dial a number using the keyboard.
The user can manually dial the number by clicking the mouse on the keypad of the telephone object or by using the number keys on the computer. (You can also type letters to replace phone numbers, such as 1-800-CALLIBM). When the called person answers, the call begins. The telephone object of the present invention uses a microphone and a speaker provided in the user's computer system so that a free conversation is possible. When the user ends the telephone conversation, he clicks on the handset portion of the object to hang up.
To receive an incoming call, the user responds by reselecting the handset portion of the object and initiating a conversation.
The present invention also includes a speed dial function. The speed dial can be set during a telephone conversation or after the call ends. The speed dial can be set to allow access to frequently called numbers or emergency numbers. To set the speed dial function, click on the handle of the drawer provided at the bottom edge of the phone object. The drawer will slide open to indicate the area where the speed dial can be set. That is, type the name of the person or entity for which speed dial access is desired, fill the number field with the desired phone number, and press the Add Name button. Its name and number will appear on the entry field in the list. Next, the Speed Dial Set (Set Speed) Press the Dial) key. In response, the speed dial button will flash. Select the button to which you want to assign this speed dial number. The name and number entered by the user will appear next to the speed dial button to which it is associated. When the speed dial number is set, the user selects the drawer handle to return the drawer to its original position.
The telephone object of the present invention can display both a number pad and a speed dial button as it first appeared, or, in a simpler state, an overview of basic functions. To change these displays, a toggle switch located just above the speed dial button on the phone object is selected. To expand or contract a phone object, the user can move the mouse pointer over any edge of the phone object. The pointer will turn into a diagonally oriented sizing pointer. While this new pointer is pointing, press the left mouse button and drag the edge of the phone object to resize it. No matter how it is done, the phone object is still available.
In a preferred embodiment, the invention is practiced in a C ++ programming language using object-oriented programming techniques. C ++ is a compiled language. These programs are written in human-readable scripts, which are fed to other programs called compilers to generate machine-readable numeric codes. The numeric code can be loaded into a computer and can be executed directly by that computer. The C ++ language allows software developers to easily use programs written by others, although there is considerable control over program reuse to prevent their destruction or improper use. It has the characteristic of making it. The C ++ language is well known and many articles and texts detailing the language are available.
As is known to those skilled in the art, object-oriented programming techniques involve the definition, creation, use, and instruction of "objects". These objects are data elements and routines, or software entities that contain methods for manipulating those data elements. Data and related methods are treated as one entity by the software and can be created, used and deleted as such. Data and functionality allow objects to model their physical equivalent entities by their attributes represented by their data elements and their actions represented by their methods.
Objects are defined by creating "classes". The "class" is not the object itself, but acts as a template that tells the compiler how to construct the actual object. For example, a class can specify the number and type of data variables and steps involved in the ability to manipulate the data. An object is actually created programmatically by a special feature called a constructor that constructs the object using the corresponding class definition and additional information such as arguments given when the object is created. Objects are destroyed by a special feature called a destructor.
[0028] Many benefits come from the three basic characteristics of object-oriented programming techniques: encapsulation, polymorphism, and inheritance. Objects can be designed to conceal or encapsulate all or part of internal data structures and internal functions. More specifically, when designing a program, the program developer considers all or any of the data variables and all or any of the related methods to be "private" (ie, for use only by the object itself). Objects can be defined. Other data or methods can be declared "public" (ie, available for use by other software programs). Access to private variables and methods by other programs can be controlled by defining public methods that access the object's private data. Public methods form the interface between private data and external programs. Attempts to write program code that directly accesses private variables will cause the compiler to error when compiling the program. This error stops the compilation process and prevents the program from running.
Polymorphism allows objects and functions that have the same overall format but manipulate different data to function differently to produce consistent results. For example, the addition method can be defined as variable A + variable B, i.e. (A + B). The same format can be used whether A and B are numbers, letters, or dollars and cents. However, the actual program code that performs the addition can be very different depending on the type of variable, including A and B. Therefore, three separate method definitions are written, one definition for each type of variable (numbers, letters, and dollars). After the methods are defined in them, the program can then refer to its addition method by its common format (A + B), and at compile time, the C ++ compiler examines the type of variable, It will determine which of the two methods should be used. The compiler will then substitute the appropriate functional code.
A third feature of object-oriented programming is inheritance, which allows existing programs to be reused. Inheritance allows software developers to define classes and related objects that will be created later through the class hierarchy. Specifically, a class can be specified as a subclass of another base class. A subclass inherits and has access to all public features of its base class as if these features appeared in that subclass. Alternatively, a subclass can override some or all of the features it inherits, or by defining new features of some or all of the features it inherits in the same format. It can be fixed.
Creating new subclasses, borrowing the functionality of other classes, allows software developers to easily customize existing code to meet their specific requirements.
Although object-oriented programming offers significant improvements in other programming concepts, program development still takes considerable time and effort, especially if no existing software program is available to modify. I need to spend. Therefore, a set of predefined interrelated classes to create a set of objects and additional miscellaneous routines that are all related to performing tasks commonly encountered in a particular environment. Is sometimes given. Such predefined classes and libraries are commonly referred to as "frameworks" and in particular provide a pre-built structure as a basis for writing working application programs.
For example, a framework for a user interface can provide a set of predefined graphical interface objects for creating windows, scrollbars, menus, etc., these graphical interfaces. Support for objects and "default" behavior can be provided. Many frameworks are based on object-oriented techniques, so predefined classes can be used as base classes, embedded default behavior can be inherited by developer-defined subclasses, and developers can use the framework. Can be modified or overridden to allow extensions and customized solutions to be created with expertise in a particular area. This object-oriented method provides a great advantage over traditional programming because the programmer does not modify the original program, but rather extends the functionality of the original program. In addition, the framework provides systematic guidance and modeling, while at the same time giving developers the freedom to provide specific actions specific to the problem domain.
Thus, one of ordinary skill in the art will understand how to practice the present invention using object-oriented programming techniques, as described above.
With reference to FIG. 1, representative data processing systems that can be used in connection with the present invention are shown. A central processing unit (CPU) 10 such as the PowerPC microprocessor available from IBM (PowerPC is a trademark of IBM) is interconnected by a system bus 12 to various other components. The operating system 41 runs on the CPU 10 and is used to provide control and to coordinate the functions of the various components shown in FIG. The operating system 41 is one of a commercially available operating system such as DOS, or an OS / 2 operating system available from IBM (OS / 2 is a trademark of IBM). You may. The program application 40 runs in association with the operating system 41 and supplies the operating system 41 with output calls that perform various functions to be performed by the application 40.
A read-only memory (ROM) 16 is connected to the CPU 10 via the system bus 12. It includes a basic input / output system (BIOS) that controls basic computer functions. The random access memory (RAM) 14, the I / O adapter 18, and the communication adapter 34 are also interconnected to the system bus 12. Note that there are software components that include the operating system 41, and that the application program 40 is loaded into RAM 14, which is the main memory of that computer system. The I / O adapter 18 may be a disk storage device 20, a small computer system interface (SCSI) adapter that communicates with a hard disk drive. The communication adapter 34 interconnects the system bus 12 with an external network, the data processing system with other such systems via a local area network (LAN), wide area network (WAN), etc. Allows you to communicate.
Further, the input / output device is connected to the system bus 12 via the user interface adapter 22 and the display adapter 36. The keyboard 24, trackball 32, mouse 26, and speaker 28 are all interconnected to the system bus 22 via the user interface adapter 22. The display adapter 36 includes a frame buffer 39, which is a storage device that holds a display of each pixel on the display screen 38. The image can be stored in the frame buffer 39 for display on the monitor 38 through various components such as a digital analog converter (not shown). By using the I / O device described above, the user can enter information into the system via the keyboard 24, trackball 32, or mouse 26, and the user via the speaker 28 and the display 38. Information from the system can be output.
With reference to FIG. 2, reference number 111 specifies the window as a whole. The window 111 includes a border having a frame 113 that forms the outer border of the window. The frame 113 includes a title bar 115 and an action bar 117. The rest of the window 111 consists of a client area 119, which area 119 is distributed with a plurality of icons including a folder icon 121 and a printer icon 123 called "Project X".
The title bar 115 includes a window title 125 that identifies the window, a system menu icon 127, and a window sizing icon 129. The system menu icon 127 allows the user to display a pull-down menu containing actions that the user can perform in that window. Such actions are related to the window itself, not to the objects displayed in that window. For example, actions include movement (MOVE), which allows the user to reposition the window on the screen, minimization, which reduces the size of the window (MINIMIZE), and maximization, which enlarges the window to the size of the screen (MINIMIZE). MAXIMIZE) is included. The window sizing icon 129 provides a fast way to use the mouse or pointing device 133 to perform minimization and maximization actions without the need for menus.
Action bar 117 contains a list of application actions indicated in that window. Each action in its list in that action bar has an associated pull-down menu to list the individual actions contained within each general action listed in action bar 117. For example, the "File" pull-down allows the user to process a file through actions that manipulate the file in an integrated manner. The individual actions included in the "File" action include newization (NEW), which allows the user to create new files, and storage (SAVE), which writes existing files to storage.
Proceeding to FIG. 3, in addition to the window 111, there is an object window 131. The object window 131 contains the contents of the "project X" folder represented by the icon 121. The window 131 was opened by manipulating the pointer 133 to open the icon 121.
The window 131 is the same as the window 111 in that it includes a frame 135, a title bar 137, an action bar 139, and a client area 141. The client area 141 is distributed with a plurality of document icons and a plurality of chart icons including the Chart 1 icon 143. The title bar 137 of the window 131 includes a title bar mini icon 145 which is a copy of the "Project X" icon 121. The window title bar mini-icon 145 is located in the title bar 137 rather than in the client area 141 of the window 131, but can be operated directly by the user.
With reference to FIG. 4, the workplace window 111, in which the object window 131 is opened so that the user can interact with the document associated with the project X, is shown again. A further window 200 in the form of a "real mode" window is also opened. In this example, the real object 200 is a representation of a telephone. It can be seen that the telephone object 200 is surrounded by an irregularly shaped frame 210 that surrounds the object. It will be apparent to those skilled in the art that FIG. 4 shows a telephone object as just one example. Accordingly, the present invention is not limited to telephone objects, but is intended for all physical modes of objects that can be created using the systems and methods of the invention.
It can be seen that the telephone object 200 includes a handset 202, a speed dial function 206, and a toggle switch 208. Further, it can be seen that the window 200 of the telephone object has an irregular shape and contains curved and rounded edges that have been found to be extremely difficult to represent on the display of a data processing system. For example, it can be seen that the area 204 is not a part of the telephone object 200, but is substantially surrounded by the distance between the handset of the telephone object 200 and the main body.
0045 Furthermore, it should be noted that the telephone object 200 is not merely a bitmap display of the telephone, but a functional window similar to the workplace window 111 and the object window 131. For example, the telephone can be answered when an incoming call is received by clicking on the handset 202. In addition, the telephone number can be dialed by selecting one of the names associated with the speed dial function. The entry portion 212 allows the user to enter a number to be dialed when making an unset outgoing call for speed dialing. The volume control 214 is provided as a slide switch that allows the user to control the volume that can be heard by other parties who participated in the telephone call using the object 200. When the object 200 is a working telephone in a physical embodiment, the above-mentioned functions are given as an example of the types of control devices available that should be used. Of course, other features will exist when the object emulates items of other physical aspects such as facsimile machines, compact disc players, etc.
[0046] Therefore, when considering the functional elements of object 200, it can be seen that this phone represents an operational window as well as windows 111 and 131. However, the physical object 200 does not include control items such as action bar 117, title bar 137, window sizing icon 129, and the like. That is, the functionality provided in a normal window by items such as the title bar, action bar, and pull-down menu is in this case provided by functional control of the physical aspect of the telephone. For example, to make a call, the user clicks on the handset 202 when using the present invention. In a legitimate, life-like call, the user would physically pick up the handset to start speaking. Therefore, there is a direct correlation between the actions performed by the user of the present invention and the actions performed by the person making the telephone call on the physical telephone. Of course, the actions given by the telephone object 200 can be performed on non-realistic objects through the use of action bars, pull-down menus, and selection of various operational actions, but this usual technique is: It will require additional user action and time before the desired result is obtained (making a phone call).
Proceeding to FIGS. 5-7, three distinct telephone objects 200 at various stages of operation are shown. FIG. 5 shows the telephone object 200 substantially described above in connection with FIG. Therefore, it would not be necessary to revisit FIG. 5 here.
0048 FIG. 6 is an extended version of the telephone object 200, indicated by reference number 201. In addition to the various components shown by the telephone object 200 in FIG. 5, object 201 includes a numeric entry pad 218 that allows the user to enter a telephone number to be called. In addition, the entry pad 218 includes a redial button, a flash button, and a mute button to perform other functions associated with the physical form of the telephone. The toggle switch 208 used to represent various representations of the telephone object 201, such as changes between 2D and 3D objects, is shown again. The handset 202a is shown in the active state because it is tilted to face the user and is not shown as resting on the cradle 203. A pull-out drawer handle 216 is shown that allows additional functionality to be given to the user of telephone object 201. Drawer 228 is opened by selecting the arrow associated with the pull-out drawer handle 216. In this case, the functions included in the drawer 228 relate to setting the speed dial number and button 206.
The name field 220 allows the user to enter the name of a person to be added to one of the speed dial buttons 206. The number field 222 allows the user to enter a telephone number that should be associated with the person's name pre-filled in the field 220. The name and phone number are then included in the list box 226 that correlates the name and phone number. The function key 224 allows the user to associate the entered name and telephone number with one of the speed dial buttons 206. Further, the function button 224 allows the user to select various operations such as dialing a person added to the speed dial function, or the user deletes the person's name and telephone number from the speed dial function. Equally possible. At the end of the speed dial activity, the user selects drawer handle 216. The drawer is then closed so that the telephone object 201 of FIG. 7 returns to the appearance shown in FIG. 6 as described above.
With reference to FIG. 8, a systematic block diagram of application 40 running on operating system 41 is shown. Application 40 can include one of the word processing applications such as WordPerfect, Word, WordPro and the like. The application 40 interacts with the operating system 41 via an application programming interface (API). The operating system 41 can include one of the Windows operating systems available from Microsoft and the OS / 2 operating system available from IBM. Application 40 calls various functional routines contained in operating system 41. These routines are shown as Module 50 included in their operating system.
For Windows operating systems, module 50 can be characterized as a dynamic link library (DLL) that interprets calls from application 40 and responds to them to perform desired functions. For example, application 40 can generate a draw triangle command. The operating system 41 then sends this command to the appropriate module 50 that performs the draw triangle function. The appropriate module 50 outputs a hardware instruction for executing a draw triangle command to the data processing system 1. The operating system 41 and the data processing system 1 interact through a hardware interface. The compiler outputs those hardware instructions to the data processing system 1, specifically, the central processing unit 10. Therefore, those instructions are decoded and executed in various processing or execution units (not shown) in the CPU.
As shown in FIG. 1, the data processing system 1 includes a frame buffer 39 provided in the display adapter 36. The frame buffer 39 is a storage device that holds information about each pixel of the display screen 38. The information in the flake buffer 39 that corresponds to each individual pixel will cause that pixel to be painted with a particular color or shadow. Therefore, the information stored in the frame buffer 39 is supplied to the monitor 38 for display to the user of the data processing system.
More specifically, the frame buffer 39 can store information about the window 51 to be displayed on the display 38. A normal window 51 would include elements such as a title bar 52, a border 53, a sizing element 56 such as an arrow, and the like. Next, the triangle 54 displayed inside the window 51 is shown by illuminating the pixels 55 to form the triangular shape requested by application 40. The present invention provides a window in the form of a physical object that does not include the border 53, the title bar 52, and the frame 57 of the window 51.
In a typical graphical user interface (GUI), everything is given in window format. In these GUIs, a window consists of a rectangular item containing a size boundary, a rectangular client, a menu, and a title bar. The rectangular client is generally a window such as the object window 131 described above in connection with FIG. The above items are not found in physical objects such as telephones, books, fax machines, etc. on the user's desk. Ideally, the physical objects that appear on the GUI desktop should be as similar as possible to those found in real life.
In order to create a real object on the GUI desktop, the creation of an image of the object to be represented in some format, such as a bitmap, will be initiated. This image will represent approximately the same shape as a real object.
As a first step in creating a bitmap image of a physical aspect object, any of the background pixels of that bitmap (pixels that are not part of the physical aspect object) are found in the physical aspect object. It is set to the same color that is different from the color of. Then, when the bitmap is loaded at run time, the bitmap is analyzed to create an area containing the area where the physical object is found in the bitmap. This region is a collection of a series of horizontal lines, each of which maps to a pixel in a physical object on that line in a bitmap.
If the client size is the same size as the bitmap, an application window (with a size border, title bar, menu bar, etc.) will be created on the desktop. That is, the rectangular client is large enough to enclose the bitmap. In that case, each of the four sides of the rectangular client is in light contact with the pixels of the bitmap image. There, the bitmap image will be drawn on the client.
The clipping area of the application window is set to be the same area created from the bitmap analysis. This feature may be included in a particular operating system. For example, a Windows 95 or Windows NT operating system uses the set Windows API. As a result of using this feature, everything except the area within the client, including the bitmap area, is clipped, thus removing the window size border, title bar, menu bar, etc. Now there is a real object, which is displayed on the GUI desktop.
[0059] With reference to FIG. 9, the workplace desktop window 111 and the object window 131 are shown. The object 201 of the above-mentioned physical embodiment in relation to FIGS. 6 and 7 is shown on both the desktop window 111 and the object window 131, that is, superimposed. The functional aspects of object 201 in the physical embodiment have been described above in connection with FIGS. 6 and 7, and will not be described again here for brevity. The real object 201 shown in FIG. 7 and described above is shown in FIG. Again, it can be seen that the object 201 is superimposed on both the object window 131 and the desktop window 111. Further, the drawer 228 is open by the user of the data processing system of the present invention. That is, with reference to FIGS. 6 and 7, the user selected the drawer handle 216 of FIG. 6 and pulled the drawer 228 to open as shown in FIG. The speed at which the drawer 228 is opened is controlled by the user's movements associated with the selection device, eg, the mouse. When the user wants the drawer 228 to be closed, the selection point of the drawer handle 216 is reselected and the drawer 228 is pushed in to close to obtain an image of the object 201 in physical mode as shown in FIG. .. By opening and closing the drawer 228, it can be seen that the portion 230 of the display is alternately concealed or exposed according to the state of the drawer 228. The peripheral line surrounding the portion 230 is indicated by the reference cipher 231.
Referring to FIG. 9, when the drawer 228 is closed, an icon representing document 3 and a portion of the icon representing chart 3 are displayed. However, as shown in FIG. 10, when the drawer 228 is opened, most of the icons representing document 3 and the icons representing chart 3 are hidden. Of course, there will be various intermediate stages between when the drawer 228 is fully closed and when it is fully opened. That is, when the user opens or closes the drawer 228, there will be a time when the drawer is partially closed to show only a portion of the document 3 icon. There are virtually an infinite number of stages between the fully open and completely closed positions. In these cases, the invention will calculate the various areas hidden by the drawer to determine which image is exposed.
Note that the present invention is intended to cover multiple images and expose the plurality of images when the drawer 228 is closed by the user. In this case, each of the processes that generate the newly exposed image will be assigned a processing priority value that has a higher association value than the drawer 228 priority value. This ensures that the process corresponding to the basic image has a higher priority at runtime than the process corresponding to the drawer 228. Therefore, when the user closes the drawer, the processing system will have already started executing the processes corresponding to its basic images, and these images will be visible and smooth and fluid. Will look like. Of course, the present invention will determine the number of images and the corresponding process for all newly exposed images in area 231 calculated for each drawer position selected by the user.
9 and FIG. 9 and FIG. 9 and FIG. 9 and the process and thread displaying the object 201 of the physical aspect and the process and thread displaying the object window 131 will compete for processing time in order to display the area 230 of FIG. It can be seen from FIG. Further, it is to those skilled in the art that when the object 201 and the object window 131 have the same priority, the thread relating to the drawer 228 can access the processing device while the object window 131 is idle idle. Will be clear. Therefore, when the drawer 228 is closed (for example), the area 230 cannot be painted in steps with the closing of the drawer 228. This is because the thread for the object window 131 tries to share the time slice of the processing device with the thread for the object 201, and the thread for the object 201, in particular, is delayed or synchronized with the closing of the drawer 228 by the user. This is because it does not.
To solve this problem, the present invention implements a priority scheme in which threads associated with a base window, eg, object window 131, have a higher priority with respect to threads associated with object 201 in the physical embodiment. To do. Therefore, when the drawer 228 is closed by the user, the basic process associated with the window 131 will be displayed even faster than the object 201 due to its higher relative priority.
[0064] This process is shown in FIG. There, in step 1, the method is initiated, and in step 2, the system is initialized to perform a software animation sequence. Step 3 determines if there is an area hidden under the animated window that is exposed during the animation sequence. That is, the animation sequence (ie, closing the drawer 228) will expose the portion 230. If the area is now exposed and there is no pre-hidden area, the process loops back to step 2 and continues. However, if there is an area that was previously hidden but is now exposed by the animation sequence, the process continues to step 4 and the current thread precedence of the animated window (eg, object 201 in FIG. 10). Determine the ranking. In step 5, the process sets the thread priority of its animated window to be lower than normal, and thus lower than the window to which the animated process is moving. Therefore, in step 6, the animation is performed. This method allows windows relatively below the animation window to be repainted quickly during animation because they have a relatively higher thread priority than the animated window. .. After executing the animation in step 6, the thread priority of the animated window is reset to its state just before executing the animation sequence as determined in FIG. Following step 7, the process of the invention continues to step 8 and ends.
Although some suitable embodiments have been shown and described, it goes without saying that many modifications and modifications can be made without departing from the technical scope of the invention.
In summary, the following items will be disclosed with respect to the configuration of the present invention.
(1) The animated image generated by the first process is made into a multitasking data processing system that is superposed on and displayed on at least one other image generated by the second process. A means for determining whether an image makes a pre-hidden area of the other image visible, and a first priority that is relatively lower than the second priority value assigned to the second process. The first, including means for assigning rank values to the first process, such that when the animated image exposes the other image, the other image becomes available for display. A system characterized in that the second process is executed with a higher priority than the process. (2) The means for determining the determination includes means for storing the initial priority level for each of the first process and the second process before displaying the animated image. The system according to (1) above. (3) The system according to (2) above, wherein the display screen of the multitasking data processing system includes means for painting the animated image. (4) The means for assigning is characterized by including means for resetting the first process and the second process to the initial priority level following the display of the animated image (4). The system according to 3). (5) The system according to (4) above, wherein the means for determining includes means for calculating an area of the other image hidden by the animated image. (6) The above, comprising means for determining whether a plurality of other images produced by the plurality of corresponding processes are displayed in the area hidden by the animated image. The system according to (5). (7) The means for assigning the first process so that when the animated image exposes the plurality of other images, the plurality of other images can be used for display. The system according to (6) above, wherein the system includes means for setting each of the plurality of corresponding processes to a priority value relatively higher than the first priority. (8) The animated image is generated by the second process at least one in a computer-executed way for displaying the animated image generated by the first process on a multitasking data processing system. In a method of overlaying on one other image, a step of determining whether the animated image makes a pre-hidden area of the other image visible, and a second assigned to the second process. The multitasking data processing system includes a step of assigning a first priority value, which is relatively lower than the priority value, to the first process, when the animated image exposes the other image. , A method comprising executing the second process in a relatively higher priority than the first process so that the other image can be used for display. (9) The determination step includes the step of storing the initial priority level for each of the first process and the second process before displaying the animated image (8). ). (10) The method according to (9) above, wherein the display screen of the multitasking data processing system includes a step of painting the animated image. (11) The step described in (10) above, wherein the assigning step includes a step of resetting the first process and the second process to the initial priority level following the display of the animated image. the method of. (12) The method according to (11) above, wherein the determining step includes a step of calculating an area of the other image hidden by the animated image. (13) The above (12) comprising determining whether a plurality of other images generated by the plurality of corresponding processes are displayed in the area hidden by the animated image. ). (14) The assigning step is the first step of the first process so that when the animated image exposes the plurality of other images, the plurality of other images can be used for display. (1) The method according to (13) above, which comprises a step of setting each of the plurality of corresponding processes to a priority value relatively higher than the priority. (15) A computer containing a data structure stored in a computer-readable medium that superimposes and displays an animated image generated by the first process on at least one other image generated by the second process. A means for the system to determine whether the animated image makes a pre-hidden area of the other image visible, and a second priority value assigned to the second process. The data processing system includes means for assigning a relatively low first priority value to the first process, the other image being displayed when the animated image exposes the other image. A computer system characterized in that the second process is executed with a relatively higher priority than the first process so that it can be used for. (16) The means for determining is characterized by including means for storing an initial priority level for each of the first process and the second process before displaying the animated image. The computer system according to (15) above. (17) The computer system according to (16) above, wherein the display screen of the data processing system includes means for painting with the animated image. (18) The means for assigning comprises the means for resetting the first process and the second process to the initial priority level following the display of the animated image (18). 17) The computer system according to.
【0068】
INDUSTRIAL APPLICABILITY According to the present invention, there is a system and a method that gives a very attractive, life-like and realistic animation sequence when a user tries to manipulate a "real-life" type image. ..
[Simple explanation of drawings]
FIG. 1 is a block diagram of a data processing system including a central processing unit (CPU) capable of carrying out the present invention.
FIG. 2 shows a typical GUI with a workplace window containing various objects contained on the user's workplace.
FIG. 3 is a more detailed view of the GUI of FIG. 2 opened by the user so that one of the objects on the workplace is displayed with a window associated with that particular object.
4 is another detailed display of the GUI of FIG. 2 showing a workplace window, a window corresponding to the open object of FIG. 3, and an object of the physical embodiment of the present invention.
FIG. 5 is a representation of one of the objects of the physical embodiment of the present invention in one functional state.
FIG. 6 is a representation of one of the objects of the physical embodiment of the invention in another functional state.
FIG. 7 is a representation of one of the objects of the physical embodiment of the present invention in yet another functional state.
FIG. 8 is a system diagram of various components that carry out the present invention.
9 shows a workplace window and an open window of FIG. 4 with a physical telephone object showing an area.
FIG. 10 is a workplace window of FIG. 9 with physical objects having different appearances to show a display area that is hidden during an animation sequence.
FIG. 11 is a portion of a flow chart of a process performed by the present invention to display a realistic animation sequence when a physical object is manipulated by a user.
FIG. 12 is another portion of a flow chart of a process performed by the present invention to display a realistic animation sequence when a physical object is manipulated by a user.
[Explanation of symbols] 111 Workplace window 113 frames 115 title bar 117 Action Bar 119 Client area 131 Object window 135 frames 141 Client area 200 phone object 206 speed dial function 208 toggle switch 210 frames 212 entry part 214 Volume controller
Continuation of front page (72) Inventor Craig Ardner Swareinge N Austin, Texas, United States Martha's Drive 8905 (56) References JP-A-3-222033 (JP, A) Japanese Patent Application Laid-Open No. 7-219499 (JP, A) (58) Surveyed field (Int.Cl.<sup>7</sup>, DB name) G06F 3/00 G06F 3/14 --3/153 G09G 5/00 --5/42
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10818060B2 | Cited by | United States of America | Applicant |
| US10650539B2 | Cited by | United States of America | Applicant |
| US11413536B2 | Cited by | United States of America | Applicant |
| US10322351B2 | Cited by | United States of America | Applicant |
| US10486068B2 | Cited by | United States of America | Applicant |
| US10500498B2 | Cited by | United States of America | Applicant |
| US10573065B2 | Cited by | United States of America | Applicant |
| US10463964B2 | Cited by | United States of America | Applicant |
| US10463971B2 | Cited by | United States of America | Applicant |
| US10421019B2 | Cited by | United States of America | Applicant |
| US10537809B2 | Cited by | United States of America | Applicant |
| US10668381B2 | Cited by | United States of America | Applicant |
| US11420122B2 | Cited by | United States of America | Applicant |
| US10376792B2 | Cited by | United States of America | Applicant |
| US11420119B2 | Cited by | United States of America | Applicant |
| US10561945B2 | Cited by | United States of America | Applicant |
| US10226703B2 | Cited by | United States of America | Applicant |
| US11278813B2 | Cited by | United States of America | Applicant |
| US10981051B2 | Cited by | United States of America | Applicant |
| US10284454B2 | Cited by | United States of America | Applicant |
| US11148063B2 | Cited by | United States of America | Applicant |
| US10702779B2 | Cited by | United States of America | Applicant |
| US10807003B2 | Cited by | United States of America | Applicant |
| US11213753B2 | Cited by | United States of America | Applicant |
| US10861079B2 | Cited by | United States of America | Applicant |
| US10232272B2 | Cited by | United States of America | Applicant |
| US10213682B2 | Cited by | United States of America | Applicant |
| US11305191B2 | Cited by | United States of America | Applicant |
| US11666831B2 | Cited by | United States of America | Applicant |
| US11439904B2 | Cited by | United States of America | Applicant |
| US11263670B2 | Cited by | United States of America | Applicant |
| US11040286B2 | Cited by | United States of America | Applicant |
| US10300390B2 | Cited by | United States of America | Applicant |
| US11192028B2 | Cited by | United States of America | Applicant |
| US10179289B2 | Cited by | United States of America | Applicant |
| US11563774B2 | Cited by | United States of America | Applicant |
| US10137376B2 | Cited by | United States of America | Applicant |
| US11351466B2 | Cited by | United States of America | Applicant |
| US10099140B2 | Cited by | United States of America | Applicant |
| US11351459B2 | Cited by | United States of America | Applicant |
| US11537209B2 | Cited by | United States of America | Applicant |
| US10286314B2 | Cited by | United States of America | Applicant |
| US10596471B2 | Cited by | United States of America | Applicant |
| US10974150B2 | Cited by | United States of America | Applicant |
| US11439909B2 | Cited by | United States of America | Applicant |
| US10898813B2 | Cited by | United States of America | Applicant |
| US11423556B2 | Cited by | United States of America | Applicant |
| US11310346B2 | Cited by | United States of America | Applicant |
| US11185784B2 | Cited by | United States of America | Applicant |
| US10055880B2 | Cited by | United States of America | Applicant |
| US11224807B2 | Cited by | United States of America | Applicant |
| US10627983B2 | Cited by | United States of America | Applicant |
| US10376781B2 | Cited by | United States of America | Applicant |
| US10137376B2 | Cited by | United States of America | Applicant |
| US11423605B2 | Cited by | United States of America | Applicant |
| US10286326B2 | Cited by | United States of America | Applicant |
| US10835818B2 | Cited by | United States of America | Applicant |
| US10694352B2 | Cited by | United States of America | Applicant |
| US11344808B2 | Cited by | United States of America | Applicant |
| US11524234B2 | Cited by | United States of America | Applicant |
| US10226701B2 | Cited by | United States of America | Applicant |
| US10709981B2 | Cited by | United States of America | Applicant |
| US10315113B2 | Cited by | United States of America | Applicant |
| US10864443B2 | Cited by | United States of America | Applicant |
| US10668367B2 | Cited by | United States of America | Applicant |
| US10905963B2 | Cited by | United States of America | Applicant |
| US10991110B2 | Cited by | United States of America | Applicant |
| US10981069B2 | Cited by | United States of America | Applicant |
| US10118099B2 | Cited by | United States of America | Applicant |
| US10987588B2 | Cited by | United States of America | Applicant |
| US11446582B2 | Cited by | United States of America | Applicant |
| US10857468B2 | Cited by | United States of America | Applicant |
| US10376793B2 | Cited by | United States of America | Applicant |
| US10765948B2 | Cited by | United States of America | Applicant |
| US11207596B2 | Cited by | United States of America | Applicant |
| US11524237B2 | Cited by | United States of America | Applicant |
| US11189084B2 | Cited by | United States of America | Applicant |
| US11097193B2 | Cited by | United States of America | Applicant |
| US11115712B2 | Cited by | United States of America | Applicant |
| US10245509B2 | Cited by | United States of America | Applicant |
| US10471348B2 | Cited by | United States of America | Applicant |
| US11117055B2 | Cited by | United States of America | Applicant |
| US10586380B2 | Cited by | United States of America | Applicant |
| JP3222033A | Cites | Japan | – |
| JP7219499A | Cites | Japan | – |
7 members in 6 offices
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 75307796 | United States of America | A |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| JPH10177467A | Japan | A | |
| KR19980041828A | Republic of Korea | A | |
| TW341688B | Taiwan Province of China | B | |
| SG55396A1 | Singapore | A1 | |
| US5920325A | United States of America | A | |
| JP3368188B2This record | Japan | B2 | |
| MY117864A | Malaysia | A |
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY |
Numbers
- Publication, DOCDB
- 3368188
- Publication, EPODOC
- JP3368188B
- Application
- 27625697
- Application, DOCDB
- 27625697
- Application, EPODOC
- JP19970276256
Titles
- English
- A multitasking data processing system and a method
Classification
- CPC, 1
- G06T13/00
- IPC, 7
- G06F3 14
- G06F3 048
- G06F3 0481
- G06T13 00
- G09G5 14
- G09G5 36
- G09G5 377
