|
|
1.1 root 1: /*
2: t0: bitblt graphics tests
3: */
4: #include "jerq.h"
5: short coffeecup_bits[]={
6: 0x0100, 0x00E0, 0x0010, 0x03E0, 0x0400, 0x0FE0, 0x123C, 0x1FE2,
7: 0x101A, 0x101A, 0x1002, 0x103C, 0x1810, 0x6FEC, 0x4004, 0x3FF8,
8: };
9:
10: main(argc, argv)
11: char **argv;
12: {
13: Rectangle r;
14: Bitmap *b64, *bmap;
15: Texture cup;
16:
17: request(KBD|MOUSE);
18: initdisplay(argc, argv);
19: /* allocate and tile bitmap */
20: b64 = balloc(Rect(0,0,64,64));
21: bmap = balloc(Rect(0,0,64,64));
22: cup = ToTexture(coffeecup_bits);
23: texture(b64, Rect(0,0,64,64), &cup, F_STORE);
24: /* add some stripes */
25: rectf(b64, Rect(0,0,32,64), F_XOR);
26: rectf(&display, Rect(0,0,256,32), F_STORE);
27: rectf(&display, Rect(0,64,256,96), F_STORE);
28: /* bitblt pr to pw */
29: bitblt(b64, b64->rect, &display, Pt(0,0), F_STORE);
30: bitblt(b64, b64->rect, &display, Pt(0,64), F_XOR);
31: bitblt(b64, b64->rect, &display, Pt(64,0), F_CLR);
32: bitblt(b64, b64->rect, &display, Pt(64,64), F_OR);
33: /* bitblt pw to pw */
34: bitblt(&display, Rect(0,0,64,64), &display, Pt(128,0), F_STORE);
35: bitblt(&display, Rect(0,0,64,64), &display, Pt(128,64), F_XOR);
36: bitblt(&display, Rect(0,0,64,64), &display, Pt(192,0), F_CLR);
37: bitblt(&display, Rect(0,0,64,64), &display, Pt(192,64), F_OR);
38: /* bitblt pr to pr */
39: bitblt(b64, b64->rect, bmap, Pt(0,0), F_STORE);
40: bitblt(bmap, bmap->rect, &display, Pt(0,128), F_STORE);
41: rectf(bmap, bmap->rect, F_CLR);
42: bitblt(b64, b64->rect, bmap, Pt(0,0), F_XOR);
43: bitblt(bmap, bmap->rect, &display, Pt(0,192), F_STORE);
44: rectf(bmap, bmap->rect, F_CLR);
45: bitblt(b64, b64->rect, bmap, Pt(0,0), F_CLR);
46: bitblt(bmap, bmap->rect, &display, Pt(64,128), F_STORE);
47: rectf(bmap, bmap->rect, F_CLR);
48: bitblt(b64, b64->rect, bmap, Pt(0,0), F_OR);
49: bitblt(bmap, bmap->rect, &display, Pt(64,192), F_STORE);
50: /* bitblt pw to pr */
51: bitblt(&display, Rect(0,0,64,64), bmap, Pt(0,0), F_STORE);
52: bitblt(bmap, bmap->rect, &display, Pt(128,128), F_STORE);
53: rectf(bmap, bmap->rect, F_CLR);
54: bitblt(&display, Rect(0,0,64,64), bmap, Pt(0,0), F_XOR);
55: bitblt(bmap, bmap->rect, &display, Pt(128,192), F_STORE);
56: rectf(bmap, bmap->rect, F_CLR);
57: bitblt(&display, Rect(0,0,64,64), bmap, Pt(0,0), F_CLR);
58: bitblt(bmap, bmap->rect, &display, Pt(192,128), F_STORE);
59: rectf(bmap, bmap->rect, F_CLR);
60: bitblt(&display, Rect(0,0,64,64), bmap, Pt(0,0), F_OR);
61: bitblt(bmap, bmap->rect, &display, Pt(192,192), F_STORE);
62:
63: /* points */
64: point(&display, Pt(256,256), F_STORE);
65: point(&display, Pt(257,256), F_XOR);
66: point(&display, Pt(258,256), F_OR);
67: point(&display, Pt(259,256), F_CLR);
68: rectf(bmap, bmap->rect, F_CLR);
69: point(bmap, Pt(0,0), F_STORE);
70: point(bmap, Pt(1,0), F_XOR);
71: point(bmap, Pt(2,0), F_OR);
72: point(bmap, Pt(3,0), F_CLR);
73: bitblt(bmap, bmap->rect, &display, Pt(260,256), F_STORE);
74:
75: /* rectf */
76: rectf(&display, Rect(0,256,32,288), F_STORE);
77: rectf(&display, Rect(32,256,64,288), F_XOR);
78: rectf(&display, Rect(0,288,32,320), F_OR);
79: rectf(&display, Rect(32,288,64,320), F_CLR);
80: rectf(bmap, bmap->rect, F_CLR);
81: rectf(bmap, Rect(0,0,32,32), F_STORE);
82: rectf(bmap, Rect(32,0,64,32), F_XOR);
83: rectf(bmap, Rect(0,32,32,64), F_OR);
84: rectf(bmap, Rect(32,32,64,64), F_CLR);
85: bitblt(bmap, bmap->rect, &display, Pt(64,256), F_STORE);
86: /* screenswap */
87: screenswap(&display, Rect(0,0,128,128), Rect(0,256,128,384));
88: /* texture */
89: texture(&display, Rect(0,0,64,64), &cup, F_STORE);
90: texture(&display, Rect(0,64,64,128), &cup, F_XOR);
91: texture(&display, Rect(64,0,128,64), &cup, F_OR);
92: texture(&display, Rect(64,64,128,128), &cup, F_CLR);
93: for(;;jnap(1)){
94: if(button123())
95: break;
96: }
97: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.