1 typedef struct Cursor Cursor; 2 typedef struct Cursorinfo Cursorinfo; 3 typedef struct OScreen OScreen; 4 typedef struct Omap3fb Omap3fb; 5 typedef struct Settings Settings; 6 7 struct Cursorinfo 8 { 9 Cursor; 10 Lock; 11 }; 12 13 extern Cursor arrow; 14 extern Cursorinfo cursor; 15 16 /* devmouse.c */ 17 extern void mousetrack(int, int, int, int); 18 extern Point mousexy(void); 19 20 extern void mouseaccelerate(int); 21 extern void mouseresize(void); 22 23 /* screen.c */ 24 extern uchar* attachscreen(Rectangle*, ulong*, int*, int*, int*); 25 extern void flushmemscreen(Rectangle); 26 extern int cursoron(int); 27 extern void cursoroff(int); 28 extern void setcursor(Cursor*); 29 extern int screensize(int, int, int, ulong); 30 extern int screenaperture(int, int); 31 extern Rectangle physgscreenr; /* actual monitor size */ 32 extern void blankscreen(int); 33 34 extern void swcursorinit(void); 35 extern void swcursorhide(void); 36 extern void swcursoravoid(Rectangle); 37 extern void swcursorunhide(void); 38 39 /* devdraw.c */ 40 extern void deletescreenimage(void); 41 extern void resetscreenimage(void); 42 extern int drawhasclients(void); 43 extern ulong blanktime; 44 extern void setscreenimageclipr(Rectangle); 45 extern void drawflush(void); 46 extern int drawidletime(void); 47 extern QLock drawlock; 48 49 #define ishwimage(i) 0 /* for ../port/devdraw.c */ 50 51 /* for communication between devdss.c and screen.c */ 52 53 enum { 54 /* maxima */ 55 Wid = 1280, 56 Ht = 1024, 57 Depth = 16, /* bits per pixel */ 58 59 Pcolours = 256, /* Palette */ 60 Pred = 0, 61 Pgreen = 1, 62 Pblue = 2, 63 64 Pblack = 0x00, 65 Pwhite = 0xFF, 66 67 /* settings indices */ 68 Res800x600 = 0, 69 Res1024x768, 70 Res1280x1024, 71 Res1400x1050, 72 }; 73 74 struct Settings { 75 uint wid; /* width in pixels */ 76 uint ht; /* height in pixels */ 77 uint freq; /* refresh frequency; only printed */ 78 uint chan; /* draw chan */ 79 80 /* shouldn't be needed? */ 81 uint pixelclock; 82 83 /* horizontal timing */ 84 uint hbp; /* back porch: pixel clocks before scan line */ 85 uint hfp; /* front porch: pixel clocks after scan line */ 86 uint hsw; /* sync pulse width: more hfp */ 87 88 /* vertical timing */ 89 uint vbp; /* back porch: line clocks before frame */ 90 uint vfp; /* front porch: line clocks after frame */ 91 uint vsw; /* sync pulse width: more vfp */ 92 }; 93 94 struct OScreen { 95 Lock; 96 Cursor; 97 Settings *settings; 98 int open; 99 }; 100 101 struct Omap3fb { /* frame buffer for 24-bit active color */ 102 // short palette[256]; 103 /* pixel data, even; base type's width must match Depth */ 104 ushort pixel[Wid*Ht]; 105 }; 106