|
|
1.1 root 1: .TH BITBLT 3R "630 MTG"
2: .XE "bitblt()"
3: .SH NAME
4: bitblt \- bit-block transfer
5: .SH SYNOPSIS
6: .B #include <dmd.h>
7: .sp
8: \f3void bitblt (sb, r, db, p, f)\f1
9: .br
10: .B Bitmap \(**sb, \(**db;
11: .br
12: .B Rectangle r;
13: .br
14: .B Point p;
15: .br
16: .B Code f;
17: .SH DESCRIPTION
18: The
19: .I bitblt
20: function
21: copies the data from Rectangle
22: .I r
23: in Bitmap
24: .I sb
25: to the congruent Rectangle with origin
26: .I p
27: in Bitmap
28: .IR db .
29: Copy is specified by the function Code
30: .IR f .
31: .PP
32: The source and destination Bitmaps may be the same or different and
33: the source and destination Rectangles may even overlap;
34: .I bitblt
35: always does the assignments in the correct order.
36: .SH EXAMPLES
37: The following subroutine paints a mouse icon into the upper left corner
38: of the applications window.
39: .PP
40: .RS 3
41: .ft CM
42: .nf
43: .S -4
44: unsigned short mouseicon[] = {
45: 0x0000, 0x0000, 0x03E0, 0x17F0,
46: 0x3FF0, 0x5FFE, 0xFFF1, 0x0421,
47: 0x0002, 0x00FC, 0x0100, 0x0080,
48: 0x0040, 0x0080, 0x0000, 0x0000,
49: };
50:
51: Bitmap mousemap = {
52: (Word *)mouseicon,
53: 1,
54: (short)0, (short)0, (short)16, (short)16,
55: (char *)0
56: };
57:
58: paintmouse()
59: {
60: bitblt(&mousemap, mousemap.rect, &display,
61: Drect.origin, F_XOR);
62: }
63: .fi
64: .ft R
65: .RE
66: .S +4
67: .bp
68: .PP
69: The following subroutine paints the character \fIc\fR of font
70: \fI\(**ffont\fR into the upper left corner of the applications window.
71: This is similar to the library function
72: .IR string,
73: which paints strings of characters.
74: .PP
75: .RS 3
76: .ft CM
77: .nf
78: .S -4
79: #include <font.h>
80:
81: character(ffont, c)
82: Font *ffont;
83: char c;
84: {
85: Fontchar *fchar;
86: Rectangle r;
87: Rectangle fRect();
88:
89: fchar = ffont->info + c;
90: r = fRect(fchar->x, 0, (fchar+1)->x,
91: ffont->height);
92: bitblt(ffont->bits, r, &display,
93: Drect.origin, F_STORE);
94: }
95: .fi
96: .ft R
97: .RE
98: .S +4
99: .PP
100: The following subroutine scrolls a Rectangle
101: .I r
102: in a Bitmap
103: .I \(**b
104: by
105: .I n
106: pixels.
107: .PP
108: .RS 3
109: .ft CM
110: .nf
111: .S -2
112: scroll(b, r, n)
113: Bitmap *b;
114: Rectangle r;
115: {
116: Rectangle s;
117:
118: s = r;
119: s.origin.y += n; /* scroll up */
120: bitblt (b, s, b, r.origin, F_STORE);
121: s.origin.y = r.corner.y - n; /* clear bottom */
122: rectf (b, s, F_CLR);
123: }
124: .fi
125: .ft R
126: .RE
127: .S +2
128: .SH SEE ALSO
129: structures(3R), string(3R).
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.