Annotation of 43BSDTahoe/new/X/doc/Xlib/ch03a.t, revision 1.1.1.1

1.1       root        1: .EQ
                      2: delim $$
                      3: .EN
                      4: .NH
                      5: Data Representation
                      6: .XS
                      7: Data Representation
                      8: .XE
                      9: .PP
                     10: .IN "Definitions" "Bitmap"
                     11: .IN "Definitions" "Pixmap"
                     12: A Bitmap is a single plane (bit) rectangle.
                     13: A Pixmap is a rectangle of pixels, and is therefore as ``deep'' as the
                     14: display.
                     15: For example, if your color display has four bits/pixel,
                     16: a Pixmap is a rectangle of four bit pixels.
                     17: In this implementation of the underlying protocol,
                     18: the depth of the display is limited to 16 bit planes.
                     19: .IN "Limitations" "Bits per Pixel"
                     20: The subroutine interface, however, is designed to support display hardware of
                     21: up to 32 bits per pixel.
                     22: The ``pixel value'' can range from 0 to $2 sup n$,
                     23: where \fIn\fP is the number of
                     24: bits per pixel.
                     25: .IN "Definitions" "Pixel values"
                     26: .IN "Definitions" "Cursors"
                     27: Cursors are used as mouse pointers and typically track the mouse; a
                     28: cursor is an arbitrary two-color shape with an arbitrary ``hot spot''.
                     29: .PP
                     30: .IN "Definitions" "Locator"
                     31: A Locator is
                     32: an absolute point on the screen, represented as <x,y> with the X-coordinate
                     33: in the most significant 16 bits and the Y-coordinate in the least significant
                     34: 16 bits.
                     35: .EQ
                     36: delim off
                     37: .EN
                     38: .PP
                     39: .IN "Definitions" "Bitmap"
                     40: A Bitmap is represented by ((width + 15) / 16) * height * 2 bytes of data.
                     41: Each row is stored starting on a word (16 bit) boundary, and is padded to
                     42: the right to a 16 bit boundary.
                     43: It is stored top line to bottom line in memory.
                     44: It has a size of (width x height) pixels.
                     45: .IN "Macro" "BitmapSize()"
                     46: The macro \fIBitmapSize(width,height)\fP can be used to compute the size in
                     47: bytes of the Bitmap.
                     48: .IN "Definitions" "Bit Order"
                     49: The
                     50: bits are in scanline order, with each scanline padded if necessary to a
                     51: multiple of 16 bits.
                     52: Within a scanline, the bits are represented left to
                     53: right, stored in 16-bit words.
                     54: The least significant bit of a word is the leftmost visible pixel on the 
                     55: display.
                     56: Analysis showed that the bit reversal cpu time incurred on some
                     57: machine architectures was small relative to the
                     58: data transmission time,
                     59: so a fixed client bitmap representation was selected for portability's sake.
                     60: .PP
                     61: .IN "Definitions" "Pixmap"
                     62: .IN "Definitions" "XY-format"
                     63: .IN "Definitions" "Z-format"
                     64: A Pixmap can be represented in either `XY format' or `Z format'.
                     65: In XY format,
                     66: each plane is represented as a Bitmap, and the planes appear from most to least
                     67: significant bit order.
                     68: The total number of bytes is thus
                     69: ((width + 15) / 16) * height * 2 * depth.
                     70: .IN "Macro" "XYPixmapSize()"
                     71: The macro \fIXYPixmapSize(width, height, planes)\fP can be used to
                     72: compute the size in bytes of a Pixmap in XY format.
                     73: In Z format, the pixels are in
                     74: scanline order, left to right within a scanline.
                     75: For hardware with 2 to 8
                     76: planes, each pixel value is represented by a single byte;
                     77: the total number of bytes
                     78: is thus width * height.
                     79: For hardware with 9 to 16 planes, each pixel value is
                     80: represented by a 16-bit word; the total number of bytes is thus
                     81: 2 * width * height.
                     82: .IN "Macro" "BZPixmapSize()"
                     83: .IN "Macro" "WZPixmapSize()"
                     84: The macros \fIBZPixmapSize(width, height)\fP and 
                     85: \fIWZPixmapSize(width, height)\fP
                     86: can be used to compute the size in bytes of a pixmap in Z format for
                     87: 2 to 8 bit planes and 9 to 16 bitplanes respectively.
                     88: .IN "Restrictions" "Z-format"
                     89: Z-format cannot be used on monochrome display hardware.
                     90: .PP
                     91: Background tiling uses Pixmaps to specify the
                     92: pattern.
                     93: Since you may want such patterns either relative to
                     94: .IN "Definitions" "Tile Mode"
                     95: the window or absolute, there is a concept of `tile mode' associated
                     96: with a window, allowing the pattern to be absolutely positioned to the window,
                     97: or relative to the parent window (often the root window).
                     98: This allows alignment of patterns either to the window you are working
                     99: in, or to the parent window.
                    100: Both are useful; icon windows often want relative alignment, while
                    101: normal windows usually want absolute alignment.
                    102: .PP
                    103: .IN "Macro" "BlackPixel"
                    104: .IN "Macro" "WhitePixel"
                    105: The pixel values \fIBlackPixel\fP and \fIWhitePixel\fP (0 and 1) are
                    106: .IN "File" "<X/X.h>
                    107: always defined on every display server, as defined in \fI<X/X.h>\fP.
                    108: These constants are intended for use in monochrome applications.
                    109: On color hardware, the colors of black and white may
                    110: be redefined by the user.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.