]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/pc/screen.h
kernel: cleanup the software mouse cursor mess
[plan9front.git] / sys / src / 9 / pc / screen.h
index bbe6b2512d5cd2f2e96057d98e467c982a2d3447..d852e5ad5e512acd581dee11d66964fb9cf1f2a5 100644 (file)
@@ -1,13 +1,8 @@
-typedef struct Cursor Cursor;
-typedef struct Cursorinfo Cursorinfo;
-struct Cursorinfo {
-       Cursor;
-       Lock;
-};
-
 /* devmouse.c */
-extern void mousetrack(int, int, int, int);
-extern void absmousetrack(int, int, int, int);
+typedef struct Cursor Cursor;
+extern Cursor cursor;
+extern void mousetrack(int, int, int, ulong);
+extern void absmousetrack(int, int, int, ulong);
 extern Point mousexy(void);
 
 extern void mouseaccelerate(int);
@@ -15,9 +10,6 @@ extern int m3mouseputc(Queue*, int);
 extern int m5mouseputc(Queue*, int);
 extern int mouseputc(Queue*, int);
 
-extern Cursorinfo cursor;
-extern Cursor arrow;
-
 /*
  * Generic VGA registers.
  */
@@ -95,16 +87,16 @@ struct VGAscr {
        Pcidev* pci;
 
        VGAcur* cur;
-       ulong   storage;
+       uintptr storage;
        Cursor;
 
        int     useflush;
 
-       ulong   paddr;          /* frame buffer */
+       uintptr paddr;          /* frame buffer */
        void*   vaddr;
-       int             apsize;
+       int     apsize;
 
-       ulong   io;                             /* device specific registers */
+       ulong   io;             /* device specific registers */
        ulong   *mmio;
        
        ulong   colormap[Pcolours][3];
@@ -118,9 +110,8 @@ struct VGAscr {
        int     (*scroll)(VGAscr*, Rectangle, Rectangle);
        void    (*blank)(VGAscr*, int);
        ulong   id;     /* internal identifier for driver use */
-       int isblank;
-       int overlayinit;
-       int softscreen;
+       int     overlayinit;
+       int     softscreen;
 };
 
 extern VGAscr vgascreen[];
@@ -130,16 +121,16 @@ enum {
 };
 
 /* mouse.c */
-extern void mousectl(Cmdbuf*);
-extern void mouseresize(void);
-extern void mouseredraw(void);
+extern void    mousectl(Cmdbuf*);
+extern void    mouseresize(void);
+extern void    mouseredraw(void);
 
 /* screen.c */
-extern int             hwaccel;        /* use hw acceleration; default on */
-extern int             hwblank;        /* use hw blanking; default on */
-extern int             panning;        /* use virtual screen panning; default off */
-extern void addvgaseg(char*, ulong, ulong);
-extern uchar* attachscreen(Rectangle*, ulong*, int*, int*, int*);
+extern int     hwaccel;        /* use hw acceleration */
+extern int     hwblank;        /* use hw blanking */
+extern int     panning;        /* use virtual screen panning */
+extern void    addvgaseg(char*, ulong, ulong);
+extern Memdata*        attachscreen(Rectangle*, ulong*, int*, int*, int*);
 extern void    flushmemscreen(Rectangle);
 extern void    cursoron(void);
 extern void    cursoroff(void);
@@ -148,21 +139,15 @@ extern int        screensize(int, int, int, ulong);
 extern int     screenaperture(int, int);
 extern Rectangle physgscreenr; /* actual monitor size */
 extern void    blankscreen(int);
-
-extern VGAcur swcursor;
-extern void swcursorinit(void);
-extern void swcursorhide(void);
-extern void swcursoravoid(Rectangle);
-extern void swcursorunhide(void);
+extern char*   rgbmask2chan(char *buf, int depth, u32int rm, u32int gm, u32int bm);
+extern void    bootscreeninit(void);
+extern void    bootscreenconf(VGAscr*);
 
 /* devdraw.c */
 extern void    deletescreenimage(void);
 extern void    resetscreenimage(void);
-extern int             drawhasclients(void);
-extern ulong   blanktime;
 extern void    setscreenimageclipr(Rectangle);
 extern void    drawflush(void);
-extern int drawidletime(void);
 extern QLock   drawlock;
 
 /* vga.c */
@@ -170,16 +155,13 @@ extern void       vgascreenwin(VGAscr*);
 extern void    vgaimageinit(ulong);
 extern void    vgalinearpci(VGAscr*);
 extern void    vgalinearaddr(VGAscr*, ulong, int);
-
-extern void    drawblankscreen(int);
 extern void    vgablank(VGAscr*, int);
-
 extern Lock    vgascreenlock;
 
 #define ishwimage(i)   (vgascreen[0].gscreendata && (i)->data->bdata == vgascreen[0].gscreendata->bdata)
 
 /* swcursor.c */
-void           swcursorhide(void);
+void           swcursorhide(int);
 void           swcursoravoid(Rectangle);
 void           swcursordraw(Point);
 void           swcursorload(Cursor *);