LEFT | RIGHT |
(no file at all) | |
1 /* | 1 /* |
2 * /dev/draw simulator -- handles the messages prepared by the draw library. | 2 * /dev/draw simulator -- handles the messages prepared by the draw library. |
3 * Doesn't simulate the file system part, just the messages. | 3 * Doesn't simulate the file system part, just the messages. |
4 */ | 4 */ |
5 | 5 |
6 #include <u.h> | 6 #include <u.h> |
7 #include <libc.h> | 7 #include <libc.h> |
8 #include <draw.h> | 8 #include <draw.h> |
9 #include <memdraw.h> | 9 #include <memdraw.h> |
10 #include <memlayer.h> | 10 #include <memlayer.h> |
11 #include "devdraw.h" | 11 #include "devdraw.h" |
12 | 12 |
13 extern void _flushmemscreen(Rectangle); | 13 extern void _flushmemscreen(Rectangle); |
| 14 int forcedpi = 0; |
14 int displaydpi = 100; | 15 int displaydpi = 100; |
15 | 16 |
16 #define NHASH (1<<5) | 17 #define NHASH (1<<5) |
17 #define HASHMASK (NHASH-1) | 18 #define HASHMASK (NHASH-1) |
18 | 19 |
19 typedef struct Client Client; | 20 typedef struct Client Client; |
20 typedef struct Draw Draw; | 21 typedef struct Draw Draw; |
21 typedef struct DImage DImage; | 22 typedef struct DImage DImage; |
22 typedef struct DScreen DScreen; | 23 typedef struct DScreen DScreen; |
23 typedef struct CScreen CScreen; | 24 typedef struct CScreen CScreen; |
(...skipping 1070 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1094 m = 1+1+a[1]; | 1095 m = 1+1+a[1]; |
1095 if(n < m) | 1096 if(n < m) |
1096 goto Eshortdraw; | 1097 goto Eshortdraw; |
1097 fmtstrinit(&fmt); | 1098 fmtstrinit(&fmt); |
1098 for(c=0; c<a[1]; c++) { | 1099 for(c=0; c<a[1]; c++) { |
1099 switch(a[2+c]) { | 1100 switch(a[2+c]) { |
1100 default: | 1101 default: |
1101 err = "unknown query"; | 1102 err = "unknown query"; |
1102 goto error; | 1103 goto error; |
1103 case 'd': /* dpi */ | 1104 case 'd': /* dpi */ |
1104 » » » » » fmtprint(&fmt, "%11d ", displaydpi); | 1105 » » » » » if(forcedpi) |
| 1106 » » » » » » fmtprint(&fmt, "%11d ", forcedpi
); |
| 1107 » » » » » else |
| 1108 » » » » » » fmtprint(&fmt, "%11d ", displayd
pi); |
1105 break; | 1109 break; |
1106 } | 1110 } |
1107 } | 1111 } |
1108 client->readdata = (uchar*)fmtstrflush(&fmt); | 1112 client->readdata = (uchar*)fmtstrflush(&fmt); |
1109 if(client->readdata == nil) | 1113 if(client->readdata == nil) |
1110 goto Enomem; | 1114 goto Enomem; |
1111 client->nreaddata = strlen((char*)client->readdata); | 1115 client->nreaddata = strlen((char*)client->readdata); |
1112 continue; | 1116 continue; |
1113 | 1117 |
1114 /* load character: 'l' fontid[4] srcid[4] index[2] R[4*4] P[2*4]
left[1] width[1] */ | 1118 /* load character: 'l' fontid[4] srcid[4] index[2] R[4*4] P[2*4]
left[1] width[1] */ |
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1624 err = "bad argument in draw message"; | 1628 err = "bad argument in draw message"; |
1625 goto error; | 1629 goto error; |
1626 | 1630 |
1627 error: | 1631 error: |
1628 werrstr("%s", err); | 1632 werrstr("%s", err); |
1629 qunlock(&sdraw.lk); | 1633 qunlock(&sdraw.lk); |
1630 return -1; | 1634 return -1; |
1631 } | 1635 } |
1632 | 1636 |
1633 | 1637 |
LEFT | RIGHT |