Blame


1 f7012583 2003-11-25 devnull #ifndef _MEMLAYER_H_
2 f7012583 2003-11-25 devnull #define _MEMLAYER_H_ 1
3 f7012583 2003-11-25 devnull #if defined(__cplusplus)
4 f7012583 2003-11-25 devnull extern "C" {
5 f7012583 2003-11-25 devnull #endif
6 f7012583 2003-11-25 devnull
7 eacc13ea 2006-06-25 devnull AUTOLIB(memlayer)
8 eacc13ea 2006-06-25 devnull
9 55dedf71 2003-09-30 devnull typedef struct Memscreen Memscreen;
10 55dedf71 2003-09-30 devnull typedef void (*Refreshfn)(Memimage*, Rectangle, void*);
11 55dedf71 2003-09-30 devnull
12 55dedf71 2003-09-30 devnull struct Memscreen
13 55dedf71 2003-09-30 devnull {
14 55dedf71 2003-09-30 devnull Memimage *frontmost; /* frontmost layer on screen */
15 55dedf71 2003-09-30 devnull Memimage *rearmost; /* rearmost layer on screen */
16 55dedf71 2003-09-30 devnull Memimage *image; /* upon which all layers are drawn */
17 55dedf71 2003-09-30 devnull Memimage *fill; /* if non-zero, picture to use when repainting */
18 55dedf71 2003-09-30 devnull };
19 55dedf71 2003-09-30 devnull
20 55dedf71 2003-09-30 devnull struct Memlayer
21 55dedf71 2003-09-30 devnull {
22 55dedf71 2003-09-30 devnull Rectangle screenr; /* true position of layer on screen */
23 55dedf71 2003-09-30 devnull Point delta; /* add delta to go from image coords to screen */
24 55dedf71 2003-09-30 devnull Memscreen *screen; /* screen this layer belongs to */
25 55dedf71 2003-09-30 devnull Memimage *front; /* window in front of this one */
26 55dedf71 2003-09-30 devnull Memimage *rear; /* window behind this one*/
27 55dedf71 2003-09-30 devnull int clear; /* layer is fully visible */
28 55dedf71 2003-09-30 devnull Memimage *save; /* save area for obscured parts */
29 55dedf71 2003-09-30 devnull Refreshfn refreshfn; /* function to call to refresh obscured parts if save==nil */
30 55dedf71 2003-09-30 devnull void *refreshptr; /* argument to refreshfn */
31 55dedf71 2003-09-30 devnull };
32 55dedf71 2003-09-30 devnull
33 55dedf71 2003-09-30 devnull /*
34 55dedf71 2003-09-30 devnull * These functions accept local coordinates
35 55dedf71 2003-09-30 devnull */
36 55dedf71 2003-09-30 devnull int memload(Memimage*, Rectangle, uchar*, int, int);
37 55dedf71 2003-09-30 devnull int memunload(Memimage*, Rectangle, uchar*, int);
38 55dedf71 2003-09-30 devnull
39 55dedf71 2003-09-30 devnull /*
40 55dedf71 2003-09-30 devnull * All these functions accept screen coordinates, not local ones.
41 55dedf71 2003-09-30 devnull */
42 55dedf71 2003-09-30 devnull void _memlayerop(void (*fn)(Memimage*, Rectangle, Rectangle, void*, int), Memimage*, Rectangle, Rectangle, void*);
43 55dedf71 2003-09-30 devnull Memimage* memlalloc(Memscreen*, Rectangle, Refreshfn, void*, u32int);
44 55dedf71 2003-09-30 devnull void memldelete(Memimage*);
45 55dedf71 2003-09-30 devnull void memlfree(Memimage*);
46 55dedf71 2003-09-30 devnull void memltofront(Memimage*);
47 55dedf71 2003-09-30 devnull void memltofrontn(Memimage**, int);
48 55dedf71 2003-09-30 devnull void _memltofrontfill(Memimage*, int);
49 55dedf71 2003-09-30 devnull void memltorear(Memimage*);
50 55dedf71 2003-09-30 devnull void memltorearn(Memimage**, int);
51 55dedf71 2003-09-30 devnull int memlsetrefresh(Memimage*, Refreshfn, void*);
52 55dedf71 2003-09-30 devnull void memlhide(Memimage*, Rectangle);
53 55dedf71 2003-09-30 devnull void memlexpose(Memimage*, Rectangle);
54 55dedf71 2003-09-30 devnull void _memlsetclear(Memscreen*);
55 55dedf71 2003-09-30 devnull int memlorigin(Memimage*, Point, Point);
56 55dedf71 2003-09-30 devnull void memlnorefresh(Memimage*, Rectangle, void*);
57 f7012583 2003-11-25 devnull
58 f7012583 2003-11-25 devnull
59 f7012583 2003-11-25 devnull #if defined(__cplusplus)
60 f7012583 2003-11-25 devnull }
61 f7012583 2003-11-25 devnull #endif
62 f7012583 2003-11-25 devnull #endif