aboutsummaryrefslogtreecommitdiff
path: root/include/memlayer.h
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-09-30 19:06:20 +0000
committerrsc <devnull@localhost>2003-09-30 19:06:20 +0000
commit55dedf713c04d00add59ba54464150b3a5a3aa60 (patch)
treeaa444bbe840f08f33d3b9cf947f1a578a0589f1f /include/memlayer.h
parent522b0689c340d26feeac360640bf7e2e0582353c (diff)
downloadplan9port-55dedf713c04d00add59ba54464150b3a5a3aa60.tar.gz
plan9port-55dedf713c04d00add59ba54464150b3a5a3aa60.tar.bz2
plan9port-55dedf713c04d00add59ba54464150b3a5a3aa60.zip
Missed these.
Diffstat (limited to 'include/memlayer.h')
-rw-r--r--include/memlayer.h48
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*);