Unified · Split
| @@ -16,6 +16,10 @@ dev · 15 unmodified lines | ||
| 16 | 16 | cmd cmd |
| 17 | 17 | indir |
| 18 | 18 | |
| 19 | + draw screen | |
| 20 | + pointer | |
| 21 | +# snarf | |
| 22 | + | |
| 19 | 23 | ip ipif6-posix ipaux |
| 20 | 24 | eia |
| 21 | 25 | # audio audio |
| @@ -23,7 +27,13 @@ dev · 1 unmodified line | ||
| 23 | 27 | |
| 24 | 28 | lib |
| 25 | 29 | interp |
| 30 | + tk | |
| 31 | + freetype | |
| 26 | 32 | math |
| 33 | + draw screen | |
| 34 | + | |
| 35 | + memlayer | |
| 36 | + memdraw | |
| 27 | 37 | keyring |
| 28 | 38 | sec |
| 29 | 39 | mp |
| @@ -34,12 +44,16 @@ link · 4 unmodified lines | ||
| 34 | 44 | |
| 35 | 45 | mod |
| 36 | 46 | sys |
| 47 | + draw | |
| 48 | + | |
| 49 | + tk | |
| 37 | 50 | math |
| 38 | 51 | srv srv |
| 39 | 52 | keyring |
| 40 | 53 | crypt |
| 41 | 54 | ipints |
| 42 | 55 | loader |
| 56 | + freetype | |
| 43 | 57 | |
| 44 | 58 | port |
| 45 | 59 | alloc |
| @@ -69,8 +83,8 @@ port · 23 unmodified lines | ||
| 69 | 83 | uqid |
| 70 | 84 | |
| 71 | 85 | code |
| 72 | − void setpointer(int x, int y){USED(x); USED(y);} | |
| 73 | − ulong strtochan(char *s){USED(s); return ~0;} | |
| 86 | +# void setpointer(int x, int y){USED(x); USED(y);} | |
| 87 | +# ulong strtochan(char *s){USED(s); return ~0;} | |
| 74 | 88 | |
| 75 | 89 | init |
| 76 | 90 | emuinit |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | ||
| 6 | 6 | |
| 7 | 7 | #include "emu-g.root.h" |
| 8 | 8 | |
| 9 | −ulong ndevs = 25; | |
| 9 | +ulong ndevs = 27; | |
| 10 | 10 | |
| 11 | 11 | extern Dev rootdevtab; |
| 12 | 12 | extern Dev consdevtab; |
| @@ -22,6 +22,8 @@ extern Dev capdevtab; · 9 unmodified lines | ||
| 22 | 22 | extern Dev fsdevtab; |
| 23 | 23 | extern Dev cmddevtab; |
| 24 | 24 | extern Dev indirdevtab; |
| 25 | +extern Dev drawdevtab; | |
| 26 | +extern Dev pointerdevtab; | |
| 25 | 27 | extern Dev ipdevtab; |
| 26 | 28 | extern Dev eiadevtab; |
| 27 | 29 | extern Dev memdevtab; |
| @@ -40,6 +42,8 @@ Dev* devtab[]={ · 12 unmodified lines | ||
| 40 | 42 | &fsdevtab, |
| 41 | 43 | &cmddevtab, |
| 42 | 44 | &indirdevtab, |
| 45 | + &drawdevtab, | |
| 46 | + &pointerdevtab, | |
| 43 | 47 | &ipdevtab, |
| 44 | 48 | &eiadevtab, |
| 45 | 49 | &memdevtab, |
| @@ -58,23 +62,27 @@ void links(void){ · 12 unmodified lines | ||
| 58 | 62 | } |
| 59 | 63 | |
| 60 | 64 | extern void sysmodinit(void); |
| 65 | +extern void drawmodinit(void); | |
| 66 | +extern void tkmodinit(void); | |
| 61 | 67 | extern void mathmodinit(void); |
| 62 | 68 | extern void srvmodinit(void); |
| 63 | 69 | extern void keyringmodinit(void); |
| 64 | 70 | extern void cryptmodinit(void); |
| 65 | 71 | extern void ipintsmodinit(void); |
| 66 | 72 | extern void loadermodinit(void); |
| 73 | +extern void freetypemodinit(void); | |
| 67 | 74 | void modinit(void){ |
| 68 | 75 | sysmodinit(); |
| 76 | + drawmodinit(); | |
| 77 | + tkmodinit(); | |
| 69 | 78 | mathmodinit(); |
| 70 | 79 | srvmodinit(); |
| 71 | 80 | keyringmodinit(); |
| 72 | 81 | cryptmodinit(); |
| 73 | 82 | ipintsmodinit(); |
| 74 | 83 | loadermodinit(); |
| 84 | + freetypemodinit(); | |
| 75 | 85 | } |
| 76 | 86 | |
| 77 | − void setpointer(int x, int y){USED(x); USED(y);} | |
| 78 | − ulong strtochan(char *s){USED(s); return ~0;} | |
| 79 | 87 | char* conffile = "emu-g"; |
| 80 | 88 | ulong kerndate = KERNDATE; |
| @@ -23,6 +23,7 @@ OBJ=\ · 22 unmodified lines | ||
| 23 | 23 | osp.$O\ |
| 24 | 24 | kproc-pthreads.$O\ |
| 25 | 25 | segflush-$OBJTYPE.$O\ |
| 26 | + framebuffer.$O\ | |
| 26 | 27 | $CONF.root.$O\ |
| 27 | 28 | lock.$O\ |
| 28 | 29 | $DEVS\ |
| @@ -610,6 +610,7 @@ nrand(int n) · 609 unmodified lines | ||
| 610 | 610 | randn = randn*1103515245 + 12345 + osusectime(); |
| 611 | 611 | return (randn>>16) % n; |
| 612 | 612 | } |
| 613 | + | |
| 613 | 614 | /* |
| 614 | 615 | int |
| 615 | 616 | rand(void) |
| @@ -618,6 +619,7 @@ rand(void) · 2 unmodified lines | ||
| 618 | 619 | return randn; |
| 619 | 620 | } |
| 620 | 621 | */ |
| 622 | + | |
| 621 | 623 | ulong |
| 622 | 624 | truerand(void) |
| 623 | 625 | { |
| @@ -73,6 +73,14 @@ mousetrack(int b, int x, int y, int isdelta) · 72 unmodified lines | ||
| 73 | 73 | x += mouse.v.x; |
| 74 | 74 | y += mouse.v.y; |
| 75 | 75 | } |
| 76 | + if(x < 0) | |
| 77 | + x = 0; | |
| 78 | + else if (x > Xsize) | |
| 79 | + x = Xsize; | |
| 80 | + if(y < 0) | |
| 81 | + y = 0; | |
| 82 | + else if (y > Ysize) | |
| 83 | + y = Ysize; | |
| 76 | 84 | msec = osmillisec(); |
| 77 | 85 | if(0 && b && (mouse.v.b ^ b)&0x1f){ |
| 78 | 86 | if(msec - mouse.v.msec < 300 && mouse.lastb == b |
| @@ -100,7 +108,7 @@ mousetrack(int b, int x, int y, int isdelta) · 21 unmodified lines | ||
| 100 | 108 | ptrq.put++; |
| 101 | 109 | Wakeup(&ptrq.r); |
| 102 | 110 | /* drawactive(1); */ |
| 103 | −/* setpointer(x, y); */ | |
| 111 | + setpointer(x, y); | |
| 104 | 112 | } |
| 105 | 113 | |
| 106 | 114 | static int |
| @@ -227,6 +235,8 @@ pointerread(Chan* c, void* a, long n, vlong off) · 120 unmodified lines | ||
| 227 | 235 | return n; |
| 228 | 236 | } |
| 229 | 237 | |
| 238 | +extern void drawPointer(int, int); | |
| 239 | + | |
| 230 | 240 | static long |
| 231 | 241 | pointerwrite(Chan* c, void* va, long n, vlong off) |
| 232 | 242 | { |
| @@ -251,6 +261,8 @@ pointerwrite(Chan* c, void* va, long n, vlong off) · 18 unmodified lines | ||
| 251 | 261 | else |
| 252 | 262 | b = mouse.v.b; |
| 253 | 263 | /*mousetrack(b, x, y, msec);*/ |
| 264 | + mouse.v.x = x; | |
| 265 | + mouse.v.y = y; | |
| 254 | 266 | setpointer(x, y); |
| 255 | 267 | USED(b); |
| 256 | 268 | break; |
| @@ -262,7 +274,8 @@ pointerwrite(Chan* c, void* va, long n, vlong off) · 5 unmodified lines | ||
| 262 | 274 | */ |
| 263 | 275 | if(n == 0){ |
| 264 | 276 | cur.data = nil; |
| 265 | − drawcursor(&cur); | |
| 277 | + //drawcursor(&cur); | |
| 278 | + drawPointer(cur.hotx, cur.hoty); | |
| 266 | 279 | break; |
| 267 | 280 | } |
| 268 | 281 | if(n < 8) |
| @@ -276,7 +289,8 @@ pointerwrite(Chan* c, void* va, long n, vlong off) · 7 unmodified lines | ||
| 276 | 289 | if(cur.maxx%8 != 0 || cur.maxy%2 != 0 || n-4*4 != (cur.maxx/8 * cur.maxy)) |
| 277 | 290 | error(Ebadarg); |
| 278 | 291 | cur.data = (uchar*)va + 4*4; |
| 279 | − drawcursor(&cur); | |
| 292 | + //drawcursor(&cur); | |
| 293 | + drawPointer(cur.hotx, cur.hoty); | |
| 280 | 294 | break; |
| 281 | 295 | default: |
| 282 | 296 | error(Ebadusefd); |