|
|
1.1 ! root 1: % Copyright Barbara Liskov 1985, 1986 ! 2: ! 3: x_pixmap = cluster is none, create, create_xy, create_z, tile, destroy, shape, ! 4: get_id, equal, similar, copy ! 5: ! 6: rep = int ! 7: ! 8: none = proc () returns (cvt) ! 9: return(0) ! 10: end none ! 11: ! 12: create = proc (mask: x_bitmap, fore, back: int) returns (cvt) ! 13: signals (error(string)) ! 14: x_buf$setup(x_makepixmap, 0, 0, 0) ! 15: x_buf$set_l0s23(b2i(mask), fore, back) ! 16: x_buf$receive() ! 17: resignal error ! 18: return(x_buf$get_lp0()) ! 19: end create ! 20: ! 21: create_xy = proc (width, height: int, bits: _wordvec) returns (cvt) ! 22: signals (error(string)) ! 23: x_buf$setup(x_storepixmap, XYFormat, 0, 0) ! 24: x_buf$set_s01(height, width) ! 25: x_buf$send_data(w2b(bits), 1, ! 26: ((width + 15) / 16) * height * 2 * x_display$planes()) ! 27: x_buf$receive() ! 28: resignal error ! 29: return(x_buf$get_lp0()) ! 30: end create_xy ! 31: ! 32: create_z = proc (width, height: int, bits: _wordvec) returns (cvt) ! 33: signals (error(string)) ! 34: x_buf$setup(x_storepixmap, ZFormat, 0, 0) ! 35: x_buf$set_s01(height, width) ! 36: z: int := width * height ! 37: if x_display$planes() > 8 ! 38: then z := z + z end ! 39: x_buf$send_data(w2b(bits), 1, z) ! 40: x_buf$receive() ! 41: resignal error ! 42: return(x_buf$get_lp0()) ! 43: end create_z ! 44: ! 45: tile = proc (pixel: int) returns (cvt) signals (error(string)) ! 46: x_buf$setup(x_makepixmap, 0, 0, 0) ! 47: x_buf$set_l0s23(0, pixel, 0) ! 48: x_buf$receive() ! 49: resignal error ! 50: return(x_buf$get_lp0()) ! 51: end tile ! 52: ! 53: destroy = proc (pix: cvt) ! 54: x_buf$setup(x_freepixmap, 0, 0, 0) ! 55: x_buf$set_l0(pix) ! 56: end destroy ! 57: ! 58: shape = proc (width, height: int) returns (int, int) signals (error(string)) ! 59: x_buf$setup(x_queryshape, TileShape, 0, 0) ! 60: x_buf$set_s01(height, width) ! 61: x_buf$receive() ! 62: resignal error ! 63: return(x_buf$get_sp1(), x_buf$get_sp0()) ! 64: end shape ! 65: ! 66: get_id = proc (pix: cvt) returns (int) ! 67: return(pix) ! 68: end get_id ! 69: ! 70: equal = proc (pix1, pix2: cvt) returns (bool) ! 71: return(pix1 = pix2) ! 72: end equal ! 73: ! 74: similar = proc (pix1, pix2: cvt) returns (bool) ! 75: return(pix1 = pix2) ! 76: end similar ! 77: ! 78: copy = proc (pix: cvt) returns (cvt) ! 79: return(pix) ! 80: end copy ! 81: ! 82: end x_pixmap
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.