diff options
author | rsc <devnull@localhost> | 2003-09-30 19:06:20 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2003-09-30 19:06:20 +0000 |
commit | 55dedf713c04d00add59ba54464150b3a5a3aa60 (patch) | |
tree | aa444bbe840f08f33d3b9cf947f1a578a0589f1f /include/memlayer.h | |
parent | 522b0689c340d26feeac360640bf7e2e0582353c (diff) | |
download | plan9port-55dedf713c04d00add59ba54464150b3a5a3aa60.tar.gz plan9port-55dedf713c04d00add59ba54464150b3a5a3aa60.tar.bz2 plan9port-55dedf713c04d00add59ba54464150b3a5a3aa60.zip |
Missed these.
Diffstat (limited to 'include/memlayer.h')
-rw-r--r-- | include/memlayer.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/memlayer.h b/include/memlayer.h new file mode 100644 index 00000000..36d87767 --- /dev/null +++ b/include/memlayer.h @@ -0,0 +1,48 @@ +typedef struct Memscreen Memscreen; +typedef void (*Refreshfn)(Memimage*, Rectangle, void*); + +struct Memscreen +{ + Memimage *frontmost; /* frontmost layer on screen */ + Memimage *rearmost; /* rearmost layer on screen */ + Memimage *image; /* upon which all layers are drawn */ + Memimage *fill; /* if non-zero, picture to use when repainting */ +}; + +struct Memlayer +{ + Rectangle screenr; /* true position of layer on screen */ + Point delta; /* add delta to go from image coords to screen */ + Memscreen *screen; /* screen this layer belongs to */ + Memimage *front; /* window in front of this one */ + Memimage *rear; /* window behind this one*/ + int clear; /* layer is fully visible */ + Memimage *save; /* save area for obscured parts */ + Refreshfn refreshfn; /* function to call to refresh obscured parts if save==nil */ + void *refreshptr; /* argument to refreshfn */ +}; + +/* + * These functions accept local coordinates + */ +int memload(Memimage*, Rectangle, uchar*, int, int); +int memunload(Memimage*, Rectangle, uchar*, int); + +/* + * All these functions accept screen coordinates, not local ones. + */ +void _memlayerop(void (*fn)(Memimage*, Rectangle, Rectangle, void*, int), Memimage*, Rectangle, Rectangle, void*); +Memimage* memlalloc(Memscreen*, Rectangle, Refreshfn, void*, u32int); +void memldelete(Memimage*); +void memlfree(Memimage*); +void memltofront(Memimage*); +void memltofrontn(Memimage**, int); +void _memltofrontfill(Memimage*, int); +void memltorear(Memimage*); +void memltorearn(Memimage**, int); +int memlsetrefresh(Memimage*, Refreshfn, void*); +void memlhide(Memimage*, Rectangle); +void memlexpose(Memimage*, Rectangle); +void _memlsetclear(Memscreen*); +int memlorigin(Memimage*, Point, Point); +void memlnorefresh(Memimage*, Rectangle, void*); |