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