memlayer.h - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       memlayer.h (1788B)
       ---
            1 
            2 typedef struct Memscreen Memscreen;
            3 typedef void (*Refreshfn)(Memimage*, Rectangle, void*);
            4 
            5 struct Memscreen
            6 {
            7         Memimage        *frontmost;        /* frontmost layer on screen */
            8         Memimage        *rearmost;        /* rearmost layer on screen */
            9         Memimage        *image;                /* upon which all layers are drawn */
           10         Memimage        *fill;                        /* if non-zero, picture to use when repainting */
           11 };
           12 
           13 struct Memlayer
           14 {
           15         Rectangle                screenr;        /* true position of layer on screen */
           16         Point                        delta;        /* add delta to go from image coords to screen */
           17         Memscreen        *screen;        /* screen this layer belongs to */
           18         Memimage        *front;        /* window in front of this one */
           19         Memimage        *rear;        /* window behind this one*/
           20         int                clear;        /* layer is fully visible */
           21         Memimage        *save;        /* save area for obscured parts */
           22         Refreshfn        refreshfn;                /* function to call to refresh obscured parts if save==nil */
           23         void                *refreshptr;        /* argument to refreshfn */
           24 };
           25 
           26 /*
           27  * These functions accept local coordinates
           28  */
           29 int                        memload(Memimage*, Rectangle, uchar*, int, int);
           30 int                        memunload(Memimage*, Rectangle, uchar*, int);
           31 
           32 /*
           33  * All these functions accept screen coordinates, not local ones.
           34  */
           35 void                        _memlayerop(void (*fn)(Memimage*, Rectangle, Rectangle, void*, int), Memimage*, Rectangle, Rectangle, void*);
           36 Memimage*        memlalloc(Memscreen*, Rectangle, Refreshfn, void*, ulong);
           37 void                        memldelete(Memimage*);
           38 void                        memlfree(Memimage*);
           39 void                        memltofront(Memimage*);
           40 void                        memltofrontn(Memimage**, int);
           41 void                        _memltofrontfill(Memimage*, int);
           42 void                        memltorear(Memimage*);
           43 void                        memltorearn(Memimage**, int);
           44 int                        memlsetrefresh(Memimage*, Refreshfn, void*);
           45 void                        memlhide(Memimage*, Rectangle);
           46 void                        memlexpose(Memimage*, Rectangle);
           47 void                        _memlsetclear(Memscreen*);
           48 int                        memlorigin(Memimage*, Point, Point);
           49 void                        memlnorefresh(Memimage*, Rectangle, void*);