|
|
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.