Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR CONSTRUCTING AND STORING A SET OF OPERATIONS FROM COMMANDS INTENDED FOR DRAWING PICTURES ON THE SCREEN
Document Type and Number:
WIPO Patent Application WO/2001/061520
Kind Code:
A1
Abstract:
The object of the present invention is to create a method for constructing and storing a set of operations in which the operations, that do not take part in forming picture on the screen, are deleted. This method provides the possibility to reduce the total number of operations, which are stored in a buffer. Also disclosed is an arbitrary application (2), which makes API calls to operation system (4) in order to draw data on the screen (6). In the process of drawing these calls are intercepted by facility (8) of the application, which implements the present invention.

Inventors:
POREH ILLAN (US)
VAINDINER ALEX (IL)
SHPILBERG ILLYA (IL)
MAKAROV IGOR (IL)
TSIPLYEV BORIS (IL)
GREENBERG BEN ZION (IL)
DUBOVSKY ARKADY (IL)
AIZATULIN OLEG (IL)
MIKHEEV DMITRY (IL)
Application Number:
PCT/US2001/008571
Publication Date:
August 23, 2001
Filing Date:
February 20, 2001
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ANYSOFT LTD (US)
POREH ILLAN (US)
VAINDINER ALEX (IL)
SHPILBERG ILLYA (IL)
MAKAROV IGOR (IL)
TSIPLYEV BORIS (IL)
GREENBERG BEN ZION (IL)
DUBOVSKY ARKADY (IL)
AIZATULIN OLEG (IL)
MIKHEEV DMITRY (IL)
International Classes:
G06T11/60; (IPC1-7): G06F15/00; G06F17/30; G06T11/00
Foreign References:
US5734387A1998-03-31
US5664163A1997-09-02
US5859646A1999-01-12
US5889518A1999-03-30
Attorney, Agent or Firm:
GOODWIN PROCTER LLP (NJ, US)
Download PDF:
Claims:
CLAIMS
1. Method for constructing and storing a set of operations from commands intended for drawing pictures on the screen, the method comprising the steps: defining canvas i. e. bitmap in memory or window device context, defining source canvas i. e. the canvas from which data is taken, when command is executed, defining destination canvas i. e. the canvas to which the result of command execution is copied, determining new current drawing source and destination regions together with their source and destination canvases for each command, which is executed by application, converting the commands together with their drawing regions and canvases into operations, inserting consequently the operations into separate buffer facility, determining which of the operations present in the buffer facility have entirely overlapped destination drawing region, said destination region, which is entirely overlapped by source regions of inserted operations, determining operations with the overlapped destination drawing region, which are not linked with other operations, said operations with the overlapped destination drawing region are defined as passive operations, deleting of said passive operations from buffer facility.
2. The method of claim 1 where the said determining and deleting of the passive operations, is proceeded as follows: choosing for current source canvas record in buffer facility all destination region records which are linked with current source region record, finding among the chosen destination regions only those destination regions, which are entirely overlapped by current source region, choosing among the found destination regions only those, which do not intersect with other source regions and corresponding records of which do not have links, designating the operations with said region records as passive, deleting the passive operations and links to other regions from regions of those passive operations, proceeding of determining and deleting for source canvases of each passive operation, in turn, with the same steps of determining and deleting of passive operations on these canvases.
3. The method according to claims 1 to 2 as described above with reference to the enclosed specification.
Description:
TITLE Method for constructing and storing a set of operations from commands intended for drawing pictures on the screen.

FIELD OF THE INVENTION The present invention relates generally to drawing data on a computer screen and more particularly relates to method of inserting, maintaining, storing and deleting data, which is drawn on a computer screen, in a buffer.

CROSS REFERENCE OF RELATED APPLICATION (S)/CLAIM OF PRIORITY This application is an international counterpart to, and claims the benefit of, co- pending Israeli Patent Application Serial No. 134623, which was filed on February 20, 2000 and entitled"Method for constructing and storing a set of operations from commands intended for drawing pictures on the screen."Moreover, this application relates to United States Patent No. 5,889,518, United States Patent No. 5,903,269 and United States Patent No. 6,040,832, each of which is entitled,"Apparatus for and method of acquiring, processing and routing data contained in a GUI window." The entire disclosure of each of the forgoing patents and patent applications is incorporated by reference as if set forth at length herein.

DESCRIPTION OF PRIOR ART The method for constructing and storing a set of operations from commands intended for drawing picture on a computer screen was developed by Baum Engineering SRL (reference www. baum. ro). In this method commands-Application Programming Interface (API) function calls to drawing subsystem of OS Windows are intercepted and converted into data records-operations. These operations present the information relative to drawing commands used for putting images and text on the screen or on memory bitmaps.

Operations with drawing data are inserted into separate buffer-Screen Element Database (SED), which stores all the information, which is drawn on the screen. This information is presented as a set of primitives-text, bitmaps and brushes with attributes such as fonts colors etc. Internally, the SED keeps track of all the drawing surfaces including screen and memory bitmaps, to cope with off-screen drawing scenarios. SED contains the whole set of drawing operations, which were executed in OS Windows.

The drawback of this prior art method is that the number of operations stored in SED grows in time and can exhaust the resources of the operating system. Moreover, manipulation with large data arrays leads to total degradation of performance of operating system.

The object of the present invention is to create a method for constructing and storing a set of operations in which the operations, that do not take part in forming picture on the screen, are deleted. This method provides the possibility to reduce the total number of operations, which are stored in a buffer.

The method comprises defining canvas i. e. bitmap in memory or window device context, source canvas i. e. the canvas from which data is taken, when command is executed, and destination canvas i. e. the canvas to which the result of command execution is copied, determining new current drawing source and destination regions together with their source and destination canvases for each command, which is executed by application, converting the commands together with their drawing regions and canvases into operations, and inserting consequently the operations into a separate buffer facility. Those operations in buffer facility, which have entirely overlapped current destination drawing region (region, which is entirely overlapped by source regions of inserted operations) are determined. Among the abovementioned operations, only the operations that are not linked with other operations, i. e. operations without overlapped destination region, are defined as passive operations and deleted from the buffer facility.

Source and destination regions mentioned hereinabove are regions on bitmaps, which are utilized by current command.

The present invention will be understood more fully from the detailed description given hereinbelow and from the accompanying drawings of the preferred embodiment of the invention, which however, should not be taken to be limitative to the invention, but is for explanation and understanding only.

The essence of the invention is illustrated by the drawings, as follows: Figure 1 demonstrates block diagram of a proposed method in accordance with the present invention; Figures 2A and 2B demonstrate samples of geometrical relations between source and destination regions for two types of API calls; Figure 3 schematically demonstrates the structure of operation operative in accordance with a preferred embodiment of the present invention; Figure 4 demonstrates structure of database of the present invention; Figures 5A and 5B demonstrate intersection of regions on canvas and corresponding structure in database; Figure 6 demonstrates the block diagram of the method of inserting operation into database and determining and deleting passive operations in it ; Figure 7 demonstrates the block diagram of procedure of determining and deleting passive operations in database; Figures 8A and 8B are illustrative figures for procedure of determining and deleting passive operations in database; DETAILED DESCRIPTION OF THE INVENTION The present invention is described on the example of drawing in operating system Windows NT, 95,98 though it can be applied to other operating systems. Reference is now made to Fig. 1, which demonstrates block diagram of the proposed method. in accordance with the present invention. Arbitrary application 2 makes API calls to operating system 4 in order to draw data on the screen 6. In the process of drawing these calls are intercepted by facility 8 of the application, which implements the present invention. The method of intercepting of API function calls (commands) of preferred embodiment is well known in the prior art and is described in details in http ://www. microsoft. com/enable/. Source and destination regions for each API call are determined in the process of interception. The process of determining of regions is described in details hereinbelow. Intercepted API calls are converted into data records (operations) in unit 10 and stored in the separate buffer facility 12. Operations contain information essential for the preferred embodiment, which is described hereinbelow. The application, which implements the present invention, comprises intercepting fancily 8, unit 10 and two facilities for determining 14 and deleting 16 passive operations in buffer 12.

Parameters of API calls contain direct or indirect description of data to be drawn.

Some of these parameters have reference to the properties of drawing surfaces in Device Context (DC) data structure.

Device Context is a structure that stores information needed when a program written for OS Windows must display output to a device such as screen or printer.

OS Windows utilizes Device Contexts in order to provide device-independent drawing.

OS Windows maintains two types of drawing surfaces, which are referenced in Device Context: bitmaps in memory (memory drawing surface) and screen drawing surface. In the following description, these drawing surfaces are called canvases.

Set of drawing API functions can be subdivided into two types.

1) API functions, which has reference to only one canvas-destination canvas. These API functions change pixel data on destination canvas. API function TextOut, which has reference to one Device Context in its parameters is an example of such function.

2) API functions, which has references to two or more canvases. These API functions take pixel data from one or more canvases-source canvases, combine this data and after that utilize resulting data in order to change pixels on destination canvas. API function BitBlt, which has references to source and destination Device Contexts in its parameters is an example of such function.

Reference is now made to Figures 2A and 2B, which demonstrate the samples of geometrical relations between source and destination regions for two types of API calls.

In Figure 2A API function of the first type (TextOut) draws string of text on destination canvas 20. Changed pixels on the destination canvas 20 form a polygon region- destination region 22.

In Figure 2B API function of the second type (BitBlt) utilizes pixels from source region 26 of memory canvas (bitmap) 24 to form destination region 28 with image on destination canvas 20. The API functions of first type are considered as API functions with zero-empty source region 32 (Figure 2A). Source and destination regions of the API call can be located on the same canvas and have overlapping regions.

API calls contain fields describing source and destination canvases and regions in their parameters. The methods of determining canvases from parameters of API calls and calculating source and destination regions on these canvases are well known to those skillful in art.

Data records of operations are produced from the conversion of intercepted API calls. The name of API is converted into operation main structure and canvases and regions are converted into canvas and region records correspondingly. Reference is now made to Figure 3 which schematically demonstrates the structure of operation operative in accordance with a preferred embodiment of the present invention. Each operation data record consists of operation main structure 40, describing from which API call it was produced, and pointers 42,44 to source 46 and destination 48 canvas records and source 50 and destination 52 region records associated with this API call. Canvas record 46 includes canvas identifier (for example, handle of Device Context, in OS Windows).

Record for region, such as 50, describes the polygon surrounding that region and does not contain pixels inside this region on canvas. The method of determining canvas identifiers and region polygons is well known to those skillful in art.

Operations are stored in the buffer facility 12 (Figure 1) in a special structure further called database (Figure 4). In each moment of time only operations describing API calls, which have drawn current picture on the screen, must be stored in database.

Operations describing API calls, which do not take part in drawing of current picture on the screen-passive operations must be deleted. The present invention provides the possibility to reduce number of operations in database by distinguishing and deleting passive operations.

Database represents the set of dynamic arrays of structures. The first dynamic array of structures 60 is the array of operation main structures 62a... 62k. Each operation main structure has pointer 64 to source region record 68 (or regions records) and pointer 66 to destination region record 70 of this operation.

Records for canvases are stored in separate dynamic array 72a.. 72k. Each canvas record, in turn, is represented by two arrays. Entries 67 in the first array 76 reference source region records such as 68 belonging to that canvas for all operations in database. Entries 69 in the second array 78 references destination region records such as 70 belonging to that canvas for all operations in database.

Regions on the same canvas can intersect and overlap each other. Figure 5A demonstrates example canvas with source and destination regions of operations. On this canvas 80 two source regions 82 and 84 are intersecting with destination region. 86.

These intersections are incorporated in the database structure. According to a preferred embodiment of the present invention each region record entry in the canvas record is supplemented with a set of pointers. Source regions are supplemented with pointers to destination regions with which these source regions intersect. And vice versa. destination regions are supplemented with pointers to source regions with which they intersect. Thus bi-directional links between intersecting source and destination regions are established. Bi-directional links are supported in database with the help of additional structures, which are described hereinbelow. Figure 5B demonstrates the structure corresponding to example of Figure 5A, which is supported in database. This structure relates intersecting regions on the same canvas 80 (Figure 5A). Entries 91 for regions 92, 94 and 96 in canvas record 90 correspond to geometrical regions 82,84 and 86 on canvas 80 (Figure 5A). Destination region 86 intersects with source regions 82 and 84.

Accordingly bi-directional links 98 and 100 are established in database as was described hereinabove.

This structure provides the possibility for each source region to access all the destination regions which are intersecting with this region on the same canvas and vice versa, for each destination region to access all the source regions with which it intersects.

The present invention most simply can be explained on example. Suppose there is no passive operations in database. Arbitrary application 2 (Figure 1) makes API call to operating system 4 in order to draw data on the screen 6. This API call is converted into new operation which must be inserted in database demonstrated in Figure 4. Reference is now made to Figure 6, which demonstrates block diagram of the method of inserting the new operation into database and determining and deleting passive operations in it. This method comprises the following steps.

1) Inserting 110 of the operation into database. Operation structure is mapped on database structure. It means that records of operation are inserted into corresponding structures of database. This operation and associated canvases and regions will be mentioned as current hereinbelow.

2) Modifying 112 array of canvas records. If one or more canvas records referenced in API call corresponding to the current operation are not present in array of canvas records 72a... 72k (Figure 4) in database, then these canvas records are inserted into array of canvas records in database. If canvas record of current operation is present in database, then array of canvas records is not changed. References to current region data records 50 and 52 (Figure 3) which are associated with current operation are inserted into appropriate arrays of canvas records 72a... 72k as is demonstrated in Figure 4.

3) Calculating 114 of intersections of polygons describing regions. Intersections of current source region (e. g. 84 in Figure 5) with destination regions (e. g 86) of operations in database are calculated for current source canvas. In order to establish bidirectional links between intersecting region records in database, pointers are set from current source to destination region records These pointers correspond to intersections of source and destination regions as was described hereinabove (Figure 5A an 5B).

The following two steps are proceeded iteratively in turn: 4) Determining 116 passive operations i. e. operations which possess the following properties-their destination drawing regions are entirely overlapped and these destination regions do not intersect with source regions of other operations on the same canvas and therefore their records are not linked in database.

5) Deleting 118 passive operations in database. The procedure of deleting of passive operations is applied to database.

Reference is now made to Figure 7 which demonstrates the block diagram of procedure of determining and deleting passive operations in database and to Figures 8A and 8B which serve as an illustration of this procedure.

-Choosing 120 on current source canvas record in database all destination region records which are linked with current source region record. In Figure 8A source 152 (marked with S) and destination 154,156,158 (marked with D) regions are located on canvas 150. In Figure 8A source region 152 is the current region. It intersects with destination region 154 and overlaps destination region 156. Therefore, links are established between region 152 and 154 records and also between region 152 and 156 records in database. Region 158 does not intersect with region 152 and accordingly records of that regions are not linked in database.

-Finding 122 among them, only those destination regions, which are entirely overlapped by current source region. For example, in Figure 8A only destination region 156 is entirely overlapped by current source region 152.

-Choosing 124 among found destination regions only those, which do not intersect with other source regions and corresponding records of which do not have links. In Figure 8A destination region 158 does not intersects with other source regions and it can be chosen according to points 1-3 described herein. In Figure 8B destination region 162 is entirely overlapped by current source region 160. But as soon as it intersects with source region 164 of some operation it can not be chosen. This region takes part in drawing on the screen as a part of other operation. Destination region 156 in Figure 8A does not take part in drawing on current canvas 150 as soon as it is entirely overlapped on this canvas.

It does not take part in other operations because it does not intersect with other source regions. So this region does not take part in drawing. From this description it follows that operation associated with it is passive.

-The presence 126 of destination region according to point 3 is determined.

-If there is no such destination regions, then the execution of algorithm is stopped 128.

-If such destination regions are present, delete passive operations.

-Operation associated with this destination region is passive. Delete 130 the passive operation i. e. operation main structure associated with this destination region and also source and destination region data records from database.

-Deleting of region records leads to deleting of links 132 of this record with other region records.

-Overlapped destination regions may be present on source canvases of passive operations. These regions previously had links with source regions of passive operations.

As soon as these links are destroyed on step 132, algorithm must proceed further.

Source canvases of each passive operation, in turn, is set as current 134 and algorithm for these canvases is proceeded 136 with the same steps of determining and deleting of passive operations on these canvases.

The process described hereinabove is iterative and/or recursive in nature. It proceeds until all passive operations in database are deleted. This process is executed for each new API call.

Having now described a preferred embodiment of the invention, it should be apparent to those skilled in the art that the foregoing is illustrative only and not limiting, having been presented by way of example only. All the features disclosed in this specification (including any accompanying claims, abstract, and drawings) may be replaced by alternative features serving the same purpose, and equivalents or similar purpose, unless expressly stated otherwise. Therefore, numerous other embodiments of the modifications thereof are contemplated as falling within the scope of the present invention as defined by the appended claims and equivalents thereto.

Moreover, the techniques may be implemented in hardware or software, or a combination of the two. Preferably, the techniques are implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device and one or more output devices. Program code is applied to data entered using the input device to perform the functions described and to generate output information. The output information is applied to one or more output devices.

Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system, however, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.

Each such computer program is preferably stored on a storage medium or device (e. g., CD-ROM, hard disk or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document. The system may also be considered to be implemented as a computer- readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.




 
Previous Patent: BUS BRIDGE

Next Patent: USER INTERFACE SYSTEM