Asynchronous PCM common decoding apparatus |
| It is one object of the present invention to provide an asynchronous PCM common decoding apparatus ... |
|
Mechanism for broadcasting data in a massively parallell array processing system |
| The invention provides a new and improved array processing system having a plurality of processing ... |
|
Method for managing multiple versions of multiple subsystems in a distributed computing environment |
| The disclosed embodiment involves three parts: recording the software level information, reporting (... |
|
|
Sprite engine
| Details |
Inventors: Apparao, Vidur; Furman, Scott;
Assignee: Netscape Communications Corporation (Mountain View, CA)
Primary Examiner: Powell; Mark R.
Assistant Examiner: Good-Johnson; Motilewa
Attorney, Agent or Firm: Glenn; Michael A., Wong; Kirk
A sprite engine or compositor that is well-adapted to a variety ofadaptable to a host platforms and that minimizes the amount of drawing that occurs on a refresh of a framebuffer display area. The invention exploits the host platform's abilities to perform both back-to-front and front-to-back drawing algorithms, where the choice of algorithm used depends upon whether a sprite is opaque or transparent. Each sprite registers itself with a sprite engine, identifying whether or not the sprite is wholly opaque or notis transparent, the bounding area of the sprite, and the function that the sprite uses to draw. The function can be the drawing routine that is available from the host platform or operating system. The sprite engine keeps track of the Z position of each sprite and examines each sprite to determine if the sprite overlaps a particular region that needs to be refreshed. Sprites that are rectangular and opaque are considered special cases that can be easily drawn using athe host platform's front-to-back drawing algorithm. In a top-down manner, by Z position, all sprites that are opaque are allowed to draw. All other kinds of sprites are drawn in a back-to-front manner. When a transparent sprite is found, the sprite engine searches the remaining sprites in a bottom-up manner and draws the sprites with a Z position below the transparent sprite, finishing with the transparent sprite, using a back-to-front algorithm in the remaining region. |
|
DETAILED DESCRIPTION The invention provides a sprite engine or compositor that is well-adapted for a variety of host platforms. adaptable to the host platform. The invention minimizes the amount of drawing that occurs on a refresh of a display area. This is achieved by efficiently using the host platform's graphic capabilitiesabilities and combining both back-to-front and front-to-back drawing algorithms. An application registers each sprite and its characteristics with the sprite engine when the sprite is createdAn application creates a sprite knowing whether it has opaque or transparent properties. Each sprite identifies its characteristics and registers itself with the sprite engine. The characteristics of a sprite include such factors as whether or not the sprite contains transparent areasis transparent, itsthe position, bounding area, and Z-orderz-order of the sprite. The application is responsible for notifying the sprite engine of any subsequent alterations in these characteristics. Sprites that are rectangular and opaque are considered special cases that can be easily drawn using the front-to-back drawing algorithm. However, the native region formats are not efficientsophisticated enough onin many host platforms to efficiently support front-to-back drawing where there are overlapping sprites that exhibit arbitrarily complex areas ofy transparency. To draw other kinds oftransparent sprites, the algorithm reverts to back-to-front drawing. The sprite engine keeps track of the Z position of each sprite. Whenever a region needs to be refreshed, the sprite engine examines each sprite to determine if the sprite overlaps that region. The drawing occurs in two passes: The first pass occurs in a front-to-backtop-down manner, by Z position. Only wholly opaque sprites sprites that are not overlapped by any transparent sprites may be drawn in this pass. As each sprite is considered, the algorithm keeps track of that portion of the display that remains to be drawn and which is not obscured by other wholly opaque sprites, R
|
|