In a display system having a palette for chrominance and/or luminance information, a display buffer for information defining the pixels of a display field, including index values for indexing the palette select the chrominance and/or luminance of the pixels, a windowing mechanism is provided for associating a different range of index values with each of a plurality of windows and for responding to index values stored at individual pixel positions in the display buffer to determine the visible extent of a given window within the display field. This allows a plurality of windows to be displayed with a minimum of extra logic and without unduly constraining the choice of colors available within those windows. In the described embodiment, windows are defined in a first phase by storing index values from the range of values associated with that window at all pixel positions for that window. Then, in a second phase, the output of a range comparator for comparing index values stored in the display buffer to the range of values associated with a given window is used to control multiplexer means to cause an item of update information destined for a particular pixel position to be stored at that pixel position in the display buffer only if the comparison is positive.
A system and method for performing efficient clipping to visible windows. A window clip buffer is established for each window being written directly to the front frame buffer. The window clip buffer is initialized as having the same dimensions as the window itself and each pixel position is initially set to False (not visible.) The visible regions are determined and the buffer updated to True (visible) for those visible regions. As each pixel is being drawn the window clip buffer is tested. The pixel is drawn to the frame buffer only where the window clip buffer pixel is true (visible.) Changes to window positions on the screen causes the visible regions to be updated.
In a windows environment, a plurality of computer program applications use a common look-up table to allocate colors. When the common look-up table is full, a mechanism must be provided to determine which colors will be stored in the common look-up table. Several alternatives exist; the order of the alternatives can be specified by the user or application program. A first alternative will attempt to allocate colors in the common look-up table with the true image colors called for by the program. A second alternative uses a reduced set (reduced number) of image colors so that they will fit in the common look-up table. The image colors are regenerated from the reduced set through a dithering or error diffusion algorithm. A third alternative is to find the color in the common look-up table which is mathematically closest to the image color. If these alternatives are not used, a new look-up table can be created. When a new look-up table is created, each non-image color is assigned a class, each class having a priority with respect to other classes. When there is a request to allocate an image color to the look-up table which is full, a non-image color is replaced based on its priority. Lowest priority non-image colors are replaced first.
System and methods are described for storing and processing multiple bitmap images, such as those commonly employed in graphical user interfaces (GUIs), within a single "master" bitmap. Within a master bitmap, each image is bound by "corner brackets," each of which comprises a group of pixels which may be identified separately. Each image within a given master bitmap may be identified and processed as a separate image. Methods are described, for instance, for determining size, position, and identity of each image within a multi-image bitmap. Size is computed from the distance between the brackets surrounding an image; position may be computed relative to the position of the surrounding brackets. For identification, each image is provided with a unique ID or identifier, such as a number, embedded within the master bitmap itself. A method of the present invention for decoding an image from a master bitmap is also presented.
A buffer circuit for a peripheral interface circuit in an I/O node of a computer system. A buffer circuit includes a first buffer and a second buffer. The first buffer may be configured to store a plurality of selected packet commands within a plurality of storage locations. The second buffer is coupled to the first buffer and may be configured to store a plurality of index values. Each index value corresponds to one of the storage locations in the first buffer. The buffer circuit further includes a write logic circuit that is coupled between the first buffer and the second buffer. The write logic circuit may be configured to successively read each of the plurality of index values from the second buffer and to cause a selected packet command to be stored in each storage location corresponding to each of the plurality of index values within the first buffer.
Image data is processed by dividing an entire screen into a predetermined number of unitary blocks of pixels, then storing data of the divided screen blocks from an image data recording medium into memories, and processing the data for displaying the image on a predetermined display means. Out of the entire data of the divided screen blocks, the data of some blocks usable in common for the screens and the data of the other divided screen blocks are sequentlly read from the recording medium and are stored in the memories. The kinds of the color data usable for the entire screen are limited in accordance with the kinds of colors usable for each of the divided screen blocks, and the color data usable for each of the divided screen blocks is selected out of the limited color data usable for the entire screen, so as to display a satisfactory image in which boundaries between the divided screen blocks are not conspicuous.