OSDN Git Service

AI003:config.txt, words.txtを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_010 / chnos / draw32.c
1 \r
2 #include "core.h"\r
3 \r
4 void Drawing32_Fill_Rectangle(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1)\r
5 {\r
6         uint x, y;\r
7 \r
8 //if negative location\r
9         if((x0 & 0x80000000) != 0 || (y0 & 0x80000000) != 0 || (x1 & 0x80000000) != 0 || (y1 & 0x80000000) != 0){\r
10                 return;\r
11         }\r
12 \r
13         for(y = y0; y <= y1; y++){\r
14                 for(x = x0; x <= x1; x++){\r
15                         ((uint *)vram)[y * xsize + x] = c;\r
16                 }\r
17         }\r
18         return;\r
19 }\r
20 \r
21 void Drawing32_Put_Font(void *vram, uint xsize, uint x, uint y, uint c, const uchar *font)\r
22 {\r
23         int i;\r
24         uchar d;\r
25         uint *p;\r
26 \r
27 //if negative location\r
28         if((x & 0x80000000) != 0 || (y & 0x80000000) != 0){\r
29                 return;\r
30         }\r
31 \r
32         for (i = 0; i < 16; i++) {\r
33                 p = (uint *)vram + (y + i) * xsize + x;\r
34                 d = font[i];\r
35                 if ((d & 0x80) != 0) { p[0] = (uint)c; }\r
36                 if ((d & 0x40) != 0) { p[1] = (uint)c; }\r
37                 if ((d & 0x20) != 0) { p[2] = (uint)c; }\r
38                 if ((d & 0x10) != 0) { p[3] = (uint)c; }\r
39                 if ((d & 0x08) != 0) { p[4] = (uint)c; }\r
40                 if ((d & 0x04) != 0) { p[5] = (uint)c; }\r
41                 if ((d & 0x02) != 0) { p[6] = (uint)c; }\r
42                 if ((d & 0x01) != 0) { p[7] = (uint)c; }\r
43         }\r
44         return;\r
45 }\r
46 \r
47 void Drawing32_Put_String(void *vram, uint xsize, uint x, uint y, uint c, const uchar s[])\r
48 {\r
49 //if negative location\r
50         if((x & 0x80000000) != 0 || (y & 0x80000000) != 0){\r
51                 return;\r
52         }\r
53 \r
54         if(s == Null){\r
55                 return;\r
56         }\r
57 \r
58         for(; *s != 0x00; s++){\r
59                 if(x > xsize - 8){\r
60                         break;\r
61                 }\r
62                 Drawing32_Put_Font(vram, xsize, x, y, c, hankaku + *s * 16);\r
63                 x += 8;\r
64         }\r
65         return;\r
66 }\r
67 \r
68 void Drawing32_Draw_Point(void *vram, uint xsize, uint x, uint y, uint c)\r
69 {\r
70 //if negative location\r
71         if((x & 0x80000000) != 0 || (y & 0x80000000) != 0){\r
72                 return;\r
73         }\r
74 \r
75         ((uint *)vram)[y * xsize + x] = c;\r
76         return;\r
77 }\r