screen.h - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       screen.h (1710B)
       ---
            1 typedef struct Mouseinfo Mouseinfo;
            2 typedef struct Mousestate Mousestate;
            3 typedef struct Cursorinfo Cursorinfo;
            4 typedef struct Screeninfo Screeninfo;
            5 
            6 #define Mousequeue 16                /* queue can only have Mousequeue-1 elements */
            7 #define Mousewindow 500                /* mouse event window in millisec */
            8 
            9 struct Mousestate
           10 {
           11         Point        xy;                /* mouse.xy */
           12         int        buttons;        /* mouse.buttons */
           13         ulong        counter;        /* increments every update */
           14         ulong        msec;                /* time of last event */
           15 };
           16 
           17 struct Mouseinfo
           18 {
           19         Mousestate        mstate;
           20         int        dx;
           21         int        dy;
           22         int        track;                /* dx & dy updated */
           23         int        redraw;                /* update cursor on screen */
           24         ulong        lastcounter;        /* value when /dev/mouse read */
           25         ulong        lastresize;
           26         ulong        resize;
           27         Rendez        r;
           28         Ref        ref;
           29         QLock        qlk;
           30         int        open;
           31         int        inopen;
           32         int        acceleration;
           33         int        maxacc;
           34         Mousestate        queue[16];        /* circular buffer of click events */
           35         int        ri;                /* read index into queue */
           36         int        wi;                /* write index into queue */
           37         uchar        qfull;                /* queue is full */
           38 };
           39 
           40 struct Cursorinfo {
           41         Lock        lk;
           42         struct Cursor        cursor;
           43 };
           44 
           45 struct Screeninfo {
           46         Lock                lk;
           47         Memimage        *newsoft;
           48         int                reshaped;
           49         int                depth;
           50         int                dibtype;
           51 };
           52 
           53 extern        Mouseinfo mouse;
           54 extern        Cursorinfo cursor;
           55 extern        Screeninfo screen;
           56 extern        Rectangle        mouserect;
           57 
           58 enum
           59 {
           60         SnarfSize = 1<<20
           61 };
           62 
           63 uchar*        attachscreen(Rectangle*, ulong*, int*, int*, int*, void**);
           64 int        drawcanqlock(void);
           65 void        drawqlock(void);
           66 void        drawqunlock(void);
           67 void        getcolor(ulong, ulong*, ulong*, ulong*);
           68 char*        getsnarf(void);
           69 void        flushmemscreen(Rectangle);
           70 void        mousetrack(int, int, int, int);
           71 void        putsnarf(char*);
           72 int        setcolor(ulong, ulong, ulong, ulong);
           73 void        setcursor(struct Cursor*);
           74 void        setmouse(Point);
           75 void        terminit(int);
           76 void        termredraw(void);
           77 void        termreplacescreenimage(Memimage*);