|
|
1.1 root 1: .NH 2
2: Moving Bits and Pixels to and From the Screen
3: .PP
4: A few programs may want to manipulate pixels that they later display on
5: the screen.
6: This section describes calls which will move pixels from the program to
7: the window system, or from the window system to the program.
8: Care must be taken to adhere to the data representation described at the
9: beginning of this document to keep programs portable between machine
10: architectures.
11: If you always manipulate Bitmaps and XY-format Pixmaps
12: in terms of 16 bit quantities, you will be quite safe.
13: .FD
14: .IN "Definitions" "XPixmapBitsPutXY"
15: .IN "XPixmapBitsPutXY"
16: .IN "Definitions" "XPixmapBitsPutZ"
17: .IN "XPixmapBitsPutZ"
18: .IN "Raster Op to Screen"
19: XPixmapBitsPutXY (w, x, y, width, height, data, mask, func, planes)
20: short *data;
21:
22: XPixmapBitsPutZ (w, x, y, width, height, data, mask, func, planes)
23: Window w;
24: int x, y, width, height;
25: caddr_t data;
26: Bitmap mask; /* which bits to modify */
27: int func; /* display function */
28: int planes; /* plane mask */
29: .FN
30: \fIXPixmapBitsPut\fP copies client-supplied bits into a window according to the
31: specified display function in the format specified by the name of the
32: procedure.
33: .PP
34: .IN "XY-Format Pixmap"
35: .IN "Z-Format Pixmap"
36: See the section on data representation for the
37: difference between XY and Z format pixmaps.
38: .PP
39: The area modified will be controlled by the \fImask\fP argument, if it is
40: nonzero.
41: Only the bits in the \fImask\fP will be modified on the screen.
42: .IN "Icon" "Display"
43: This is often useful for Icon generation.
44: .FD
45: .IN "Definitions" "XBitmapBitsPut"
46: .IN "XBitmapBitsPut"
47: XBitmapBitsPut (w, x, y, width, height, data, foreground, background, mask, func, planes)
48: Window w;
49: int x, y, width, height, foreground, background;
50: short *data;
51: Bitmap mask; /* which bits to modify */
52: int func; /* display function */
53: int planes; /* plane mask */
54: .FN
55: Performs a function in a region of the window using a pixmap defined by a
56: bitmap and a pair of source pixels defining the \fIforeground\fP
57: and \fIbackground\fP
58: pixel values.
59: The plane mask defines which destination bit planes are affected.
60: The display function is computed on each bit plane.
61: .PP
62: See the section on data representation for the format of Bitmap data.
63: .PP
64: The area modified will be controlled by the \fImask\fP argument.
65: Only the bits in the \fImask\fP will be modified on the screen.
66: This is often useful for Icon generation.
67: .IN "Icon" "Display"
68: .FD
69: .IN "Definitions" "XPixmapSave"
70: .IN "XPixmapSave"
71: .IN "Saving Bits from Screen"
72: Pixmap XPixmapSave (w, x, y, width, height)
73: Window w;
74: int x, y, width, height;
75: .FN
76: \fIXPixmapSave\fP creates a Pixmap from the given portion of the window.
77: The
78: pixmap will contain a direct image of that portion of the screen,
79: including any visible portions of subwindows or overlapping windows, so
80: this routine should be used with caution.
81: Its main use will probably be
82: .IN "Menus"
83: .IN "XUnmapTransparent"
84: in conjunction with \fIXUnmapTransparent\fP, in implementing pop-up menus or
85: other `temporary' windows which save the bits under them and then
86: restore those bits when destroyed.
87: .PP
88: The window must be mapped, and it must be true that if there were no
89: overlapping windows or subwindows, the specified portion of the window
90: would be fully visible on the screen.
91: .PP
92: The function returns the Pixmap id for the saved pixmap, or 0
93: if it failed.
94: .FD
95: .IN "Definitions" "XPixmapGetXY"
96: .IN "XPixmapGetXY"
97: .IN "Definitions" "XPixmapGetZ"
98: .IN "XPixmapGetZ"
99: .IN "Retrieving Bits from the Screen"
100: XPixmapGetXY (w, x, y, width, height, data)
101:
102: XPixmapGetZ (w, x, y, width, height, data)
103: Window w;
104: int x, y, width, height;
105: short *data; /* RETURN */
106: .FN
107: \fIXPixmapGet\fP returns the pixmap in the specified format into the specified
108: area of memory.
109: .PP
110: See the section on data representation to determine
111: how large the area of memory must be reserved for the returned data.
112: This function is intended for screen dump purposes.
113: .PP
114: The window must be mapped and it must be the case that if there were
115: no subwindows or overlapping windows, the specified portion of the window
116: would be fully visible on the screen.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.