OSDN Git Service

svn rev.329より移動。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_008 / chnos / grap_32.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/grap_32.c b/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/grap_32.c
new file mode 100644 (file)
index 0000000..81daf0c
--- /dev/null
@@ -0,0 +1,99 @@
+\r
+#include "core.h"\r
+\r
+void boxfill32(uint *vram, int xsize, uint c, int x0, int y0, int x1, int y1)\r
+{\r
+       int x, y;\r
+\r
+       y1 -= 1;\r
+       x1 -= 1;\r
+\r
+       for (y = y0;y <= y1;y++) {\r
+               for (x = x0; x <= x1; x++)\r
+               vram[y * xsize + x] = c;\r
+       }\r
+\r
+       return;\r
+}\r
+\r
+void init_desktop32(uint *vram, uint xsize, uint ysize)\r
+{\r
+       boxfill32(vram, xsize, DESKTOP_COL32, 0, 0, xsize, ysize);\r
+\r
+       return; \r
+}\r
+\r
+void init_taskbar32(uint *vram, uint xsize)\r
+{\r
+       boxfill32(vram, xsize, 0xFFFFFF, 0, 0, xsize, TASKBAR_HEIGHT);\r
+       boxfill32(vram, xsize, 0xFFFFFF, 0, 0, xsize - 2, TASKBAR_HEIGHT - 2);\r
+       boxfill32(vram, xsize, TASKBAR_COL32, 2, 2, xsize - 2, TASKBAR_HEIGHT - 2);\r
+\r
+       return;\r
+}\r
+\r
+void putfont32(uint *vram, int xsize, int x, int y, uint c, uchar *font)\r
+{\r
+       int i;\r
+       int *p;\r
+       char d;\r
+\r
+       for (i = 0; i < 16; i++) {\r
+               p = vram + (y + i) * xsize + x;\r
+               d = font[i];\r
+               if ((d & 0x80) != 0) { p[0] = c; }\r
+               if ((d & 0x40) != 0) { p[1] = c; }\r
+               if ((d & 0x20) != 0) { p[2] = c; }\r
+               if ((d & 0x10) != 0) { p[3] = c; }\r
+               if ((d & 0x08) != 0) { p[4] = c; }\r
+               if ((d & 0x04) != 0) { p[5] = c; }\r
+               if ((d & 0x02) != 0) { p[6] = c; }\r
+               if ((d & 0x01) != 0) { p[7] = c; }\r
+       }\r
+\r
+       return;\r
+}\r
+\r
+void putfonts32_asc(uint *vram, int xsize, int x, int y, uint c, const uchar *s)\r
+{\r
+       for (; *s != 0x00; s++) {\r
+               putfont32(vram, xsize, x, y, c, hankaku + *s * 16);\r
+               x += 8;\r
+       }\r
+\r
+       return;\r
+}\r
+\r
+void init_mouse_cursor32(uint *mouse)\r
+{\r
+       int x, y;\r
+\r
+       for (y = 0; y < 24; y++) {\r
+               for (x = 0; x < 24; x++) {\r
+                       if (cursor[y][x] == '*') {\r
+                               mouse[y * 24 + x] = 0x55000000;\r
+                       }\r
+                       if (cursor[y][x] == 'O') {\r
+                               mouse[y * 24 + x] = 0x55FFFFFF;\r
+                       }\r
+                       if (cursor[y][x] == '.') {\r
+                               mouse[y * 24 + x] = INV_COL32;\r
+                       }\r
+               }\r
+       }\r
+\r
+       return;\r
+}\r
+\r
+void putblock32_32(uint *vram, int vxsize, int pxsize,int pysize, int px0, int py0, uint *buf, int bxsize)\r
+{\r
+       int x, y;\r
+\r
+       for (y = 0; y < pysize; y++) {\r
+               for (x = 0; x < pxsize; x++) {\r
+                       vram[(py0 + y) * vxsize + (px0 + x)] = buf[y * bxsize + x];\r
+               }\r
+       }\r
+\r
+       return;\r
+}\r