OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_008 / chnos / sheet.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/sheet.c b/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/sheet.c
deleted file mode 100644 (file)
index 67799eb..0000000
+++ /dev/null
@@ -1,429 +0,0 @@
-\r
-#include "core.h"\r
-\r
-UI_SheetControl *ctl;\r
-void (*sheet_refreshsub)(int vx0, int vy0, int vx1, int vy1, int h0, int h1);\r
-void (*sheet_refreshmap)(int vx0, int vy0, int vx1, int vy1, int h0);\r
-\r
-void init_sheets(void *vram, int xsize, int ysize, uchar bits)\r
-{\r
-       int i;\r
-\r
-       switch(bits){\r
-               case 8:\r
-                       sheet_refreshsub = sheet_refreshsub8;\r
-                       sheet_refreshmap = sheet_refreshmap8;\r
-                       break;\r
-               case 16:\r
-                       sheet_refreshsub = sheet_refreshsub16;\r
-                       sheet_refreshmap = sheet_refreshmap16;\r
-                       break;\r
-               case 32:\r
-                       sheet_refreshsub = sheet_refreshsub32;\r
-                       sheet_refreshmap = sheet_refreshmap32;\r
-                       break;\r
-       }\r
-\r
-       ctl = &system.ui.draw.sht.ctrl;\r
-       if(ctl == 0) goto err;\r
-       ctl->map = (uint *)sys_memman_alloc(xsize * ysize * 4);\r
-       if(ctl->map == 0){\r
-               sys_memman_free(ctl, sizeof(UI_SheetControl));\r
-               goto err;\r
-       }\r
-       ctl->vram = vram;\r
-       ctl->xsize = xsize;\r
-       ctl->ysize = ysize;\r
-       ctl->top = -1;\r
-       for(i = 0;i < MAX_SHEETS;i++){\r
-               ctl->sheets0[i].flags = initialized;\r
-       }\r
-err:\r
-       return;\r
-}\r
-\r
-UI_Sheet *sheet_alloc(void)\r
-{\r
-       UI_Sheet *sht;\r
-       int i;\r
-\r
-       for(i = 0;i < MAX_SHEETS;i++){\r
-               if(ctl->sheets0[i].flags == initialized){\r
-                       sht = &ctl->sheets0[i];\r
-                       sht->flags = allocated;\r
-                       sht->height = -1;\r
-                       return sht;\r
-               }\r
-       }\r
-       return 0;\r
-}\r
-\r
-void sheet_setbuf(UI_Sheet *sht, void *buf,int xsize, int ysize, uint col_inv)\r
-{\r
-       sht->buf = buf;\r
-       sht->bxsize = xsize;\r
-       sht->bysize = ysize;\r
-       sht->col_inv = col_inv;\r
-       return;\r
-}\r
-/*\r
-void sheet_updown(UI_Sheet *sht, int height)\r
-{\r
-       int h, old = sht->height;\r
-\r
-       if(height > ctl->top + 1) height = ctl->top + 1;\r
-       if (height < -1) height = -1;\r
-       sht->height = height;\r
-\r
-       if (old > height){\r
-               if (height >= 0){\r
-                       for (h = old; h > height; h--){\r
-                               ctl->sheets[h] = ctl->sheets[h - 1];\r
-                               ctl->sheets[h]->height = h;\r
-                       }\r
-                       ctl->sheets[height] = sht;\r
-                       sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height + 1);\r
-                       sheet_refreshsub(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height + 1, old);\r
-               } else {\r
-                       if(ctl->top > old){\r
-                               for(h = old; h < ctl->top; h++){\r
-                                       ctl->sheets[h] = ctl->sheets[h + 1];\r
-                                       ctl->sheets[h]->height = h;\r
-                               }\r
-                       }\r
-                       ctl->top--;\r
-                       sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, 0);\r
-                       sheet_refreshsub(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, 0, old - 1);\r
-               }\r
-       } else if(old < height) {\r
-               if(old >= 0){\r
-                       for(h = old; h < height; h++){\r
-                               ctl->sheets[h] = ctl->sheets[h + 1];\r
-                               ctl->sheets[h]->height = h;\r
-                               }\r
-                               ctl->sheets[height]= sht;\r
-                       } else {\r
-                               for(h = ctl->top; h >= height; h--){\r
-                               ctl->sheets[h + 1] = ctl->sheets[h];\r
-                               ctl->sheets[h + 1]->height = h;                 \r
-                       }\r
-                       ctl->sheets[height] = sht;\r
-                       ctl->top++;\r
-               }\r
-               sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height);\r
-               sheet_refreshsub(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height, height);\r
-       }\r
-\r
-       return;\r
-}\r
-*/\r
-void sheet_updown(UI_Sheet *sht, int height)\r
-{\r
-       int i, old = sht->height;                                                       //\95Ï\89»\82³\82¹\82é\83V\81[\83g\82Ì\8c³\82Ì\8d\82\82³\82ð\95Û\91\81B\r
-\r
-       if(height > ctl->top + 1) height = ctl->top + 1;                                //\90Ý\92è\82µ\82æ\82¤\82Æ\82µ\82Ä\82¢\82é\8d\82\82³\82ð\81A\82à\82Á\82Æ\82à\8d\82\82¢\82à\82Ì\82Ì\88ê\82Â\8fã\82É\90§\8cÀ\81B\r
-       if (height < -1) height = -1;                                                   //\94ñ\95\\8e¦\82Í\83}\83C\83i\83X1\82É\93\9d\88ê\81B\r
-\r
-       if(old == -1 && height >= 0){                                                   //\94ñ\95\\8e¦\82©\82ç\95\\8e¦\81B\8fã\82É\82¸\82ç\82·\81B\r
-               for(i = ctl->top; i >= height; i--){\r
-                       ctl->sheets[i + 1] = ctl->sheets[i];\r
-                       ctl->sheets[i + 1]->height = i + 1;\r
-               }\r
-               ctl->sheets[height] = sht;\r
-               ctl->sheets[height]->height = height;\r
-               ctl->top++;\r
-               sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height);\r
-               sheet_refreshsub(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height, height);\r
-       } else if(old >= 0 && height == -1){                                            //\95\\8e¦\82©\82ç\94ñ\95\\8e¦\81B\89º\82É\82¸\82ç\82·\81B\r
-               for(i = old; i <= (ctl->top - 1); i++){\r
-                       ctl->sheets[i] = ctl->sheets[i + 1];\r
-                       ctl->sheets[i]->height = i;\r
-               }\r
-               sht->height = -1;\r
-               ctl->top--;\r
-               sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, 0);\r
-               sheet_refreshsub(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, 0, old - 1);\r
-       } else if(old < height){                                                        //\95\\8e¦\92\86\82Ì\82ð\8fã\82É\82¸\82ç\82·\81B\8aÔ\82Í\89º\82É\82¸\82ç\82·\81B\r
-               for(i = old; i < height; i++){\r
-                       ctl->sheets[i] = ctl->sheets[i + 1];\r
-                       ctl->sheets[i]->height = i;\r
-               }\r
-               ctl->sheets[height] = sht;\r
-               ctl->sheets[height]->height = height;\r
-               sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height);\r
-               sheet_refreshsub(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height, height);\r
-       } else if(old > height){                                                        //\95\\8e¦\92\86\82Ì\82ð\89º\82É\82¸\82ç\82·\81B\8aÔ\82Í\8fã\82É\82¸\82ç\82·\81B\r
-               for(i = old; i > height; i--){\r
-                       ctl->sheets[i] = ctl->sheets[i - 1];\r
-                       ctl->sheets[i]->height = i;\r
-               }\r
-               ctl->sheets[height] = sht;\r
-               ctl->sheets[height]->height = height;\r
-               sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, old);\r
-               sheet_refreshsub(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, height, old);\r
-       }\r
-       return;\r
-}\r
-\r
-void sheet_refresh(UI_Sheet *sht, int bx0, int by0, int bx1, int by1)\r
-{\r
-       if(sht->height >= 0){\r
-               sheet_refreshsub(sht->vx0 + bx0, sht->vy0 + by0, sht->vx0 + bx1, sht->vy0 + by1 , sht->height, sht->height);\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refresh_full_alpha(UI_Sheet *sht)\r
-{\r
-       sheet_refreshmap(sht->vx0, sht->vy0, sht->vx0 + sht->bxsize, sht->vy0 + sht->bysize, sht->height);\r
-       sheet_refresh_full(sht);\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refresh_full(UI_Sheet *sht)\r
-{\r
-       sheet_refresh(sht, 0, 0, sht->bxsize, sht->bysize);\r
-\r
-       return;\r
-}\r
-\r
-void sheet_slide(UI_Sheet *sht, int vx0, int vy0)\r
-{\r
-       int old_vx0 = sht->vx0, old_vy0 = sht->vy0;\r
-\r
-       sht->vx0 = vx0;\r
-       sht->vy0 = vy0;\r
-       if(sht->height >= 0) {\r
-               sheet_refreshmap(old_vx0, old_vy0, old_vx0 + sht->bxsize, old_vy0 + sht->bysize,0);\r
-               sheet_refreshmap(vx0, vy0, vx0 + sht->bxsize, vy0 + sht->bysize,sht->height);\r
-               sheet_refreshsub(old_vx0, old_vy0, old_vx0 + sht->bxsize, old_vy0 + sht->bysize,0,sht->height - 1);\r
-               sheet_refreshsub(vx0, vy0, vx0 + sht->bxsize, vy0 + sht->bysize,sht->height, sht->height);\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void sheet_free(UI_Sheet *sht)\r
-{\r
-       if(sht->height >= 0) sheet_updown(sht, -1);\r
-       sht->flags = initialized;\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refreshsub32(int vx0, int vy0, int vx1, int vy1, int h0, int h1)\r
-{\r
-       int h, bx, by, vx, vy, bx0, by0, bx1, by1;\r
-       uint *map = ctl->map,sid;\r
-       uint *buf, *vram = (uint *)ctl->vram;\r
-       UI_Sheet *sht;\r
-\r
-       if(vx0 < 0) vx0 = 0;\r
-       if(vy0 < 0) vy0 = 0;\r
-       if(vx1 > ctl->xsize) vx1 = ctl->xsize;\r
-       if(vy1 > ctl->ysize) vy1 = ctl->ysize;\r
-       for(h = 0; h <= ctl->top; h++){\r
-               sht = ctl->sheets[h];\r
-               buf = sht->buf;\r
-               sid = sht - ctl->sheets0;\r
-               bx0 = vx0 - sht->vx0;\r
-               by0 = vy0 - sht->vy0;\r
-               bx1 = vx1 - sht->vx0;\r
-               by1 = vy1 - sht->vy0;\r
-               if(bx0 < 0) bx0 = 0;\r
-               if(by0 < 0) by0 = 0;\r
-               if(bx1 > sht->bxsize) bx1 = sht->bxsize;\r
-               if(by1 > sht->bysize) by1 = sht->bysize;\r
-               for(by = by0; by < by1; by++){\r
-                       vy = sht->vy0 + by;\r
-                       for(bx = bx0; bx < bx1; bx++){\r
-                               vx = sht->vx0 + bx;\r
-                               if(map[vy * ctl->xsize + vx] == sid) vram[vy * ctl->xsize + vx] = buf[by * sht->bxsize + bx];\r
-                       }\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refreshsub16(int vx0, int vy0, int vx1, int vy1, int h0, int h1)\r
-{\r
-       int h, bx, by, vx, vy, bx0, by0, bx1, by1;\r
-       uint *map = ctl->map,sid;\r
-       ushort *buf, *vram = (ushort *)ctl->vram;\r
-       UI_Sheet *sht;\r
-\r
-       if(vx0 < 0) vx0 = 0;\r
-       if(vy0 < 0) vy0 = 0;\r
-       if(vx1 > ctl->xsize) vx1 = ctl->xsize;\r
-       if(vy1 > ctl->ysize) vy1 = ctl->ysize;\r
-       for(h = 0; h <= ctl->top; h++){\r
-               sht = ctl->sheets[h];\r
-               buf = sht->buf;\r
-               sid = sht - ctl->sheets0;\r
-               bx0 = vx0 - sht->vx0;\r
-               by0 = vy0 - sht->vy0;\r
-               bx1 = vx1 - sht->vx0;\r
-               by1 = vy1 - sht->vy0;\r
-               if(bx0 < 0) bx0 = 0;\r
-               if(by0 < 0) by0 = 0;\r
-               if(bx1 > sht->bxsize) bx1 = sht->bxsize;\r
-               if(by1 > sht->bysize) by1 = sht->bysize;\r
-               for(by = by0; by < by1; by++){\r
-                       vy = sht->vy0 + by;\r
-                       for(bx = bx0; bx < bx1; bx++){\r
-                               vx = sht->vx0 + bx;\r
-                               if(map[vy * ctl->xsize + vx] == sid) vram[vy * ctl->xsize + vx] = buf[by * sht->bxsize + bx];\r
-                       }\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refreshsub8(int vx0, int vy0, int vx1, int vy1, int h0, int h1)\r
-{\r
-       int h, bx, by, vx, vy, bx0, by0, bx1, by1;\r
-       uint *map = ctl->map,sid;\r
-       uchar *buf, *vram = (uchar *)ctl->vram;\r
-       UI_Sheet *sht;\r
-\r
-       if(vx0 < 0) vx0 = 0;\r
-       if(vy0 < 0) vy0 = 0;\r
-       if(vx1 > ctl->xsize) vx1 = ctl->xsize;\r
-       if(vy1 > ctl->ysize) vy1 = ctl->ysize;\r
-       for(h = 0; h <= ctl->top; h++){\r
-               sht = ctl->sheets[h];\r
-               buf = sht->buf;\r
-               sid = sht - ctl->sheets0;\r
-               bx0 = vx0 - sht->vx0;\r
-               by0 = vy0 - sht->vy0;\r
-               bx1 = vx1 - sht->vx0;\r
-               by1 = vy1 - sht->vy0;\r
-               if(bx0 < 0) bx0 = 0;\r
-               if(by0 < 0) by0 = 0;\r
-               if(bx1 > sht->bxsize) bx1 = sht->bxsize;\r
-               if(by1 > sht->bysize) by1 = sht->bysize;\r
-               for(by = by0; by < by1; by++){\r
-                       vy = sht->vy0 + by;\r
-                       for(bx = bx0; bx < bx1; bx++){\r
-                               vx = sht->vx0 + bx;\r
-                               if(map[vy * ctl->xsize + vx] == sid) vram[vy * ctl->xsize + vx] = buf[by * sht->bxsize + bx];\r
-                       }\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refreshmap32(int vx0, int vy0, int vx1, int vy1, int h0)\r
-{\r
-       int h, bx, by, vx, vy, bx0, by0, bx1, by1;\r
-       uint sid, *map = ctl->map;\r
-       uint *buf;\r
-       UI_Sheet *sht;\r
-\r
-       if(vx0 < 0) vx0 = 0;\r
-       if(vy0 < 0) vy0 = 0;\r
-       if(vx1 > ctl->xsize) vx1 = ctl->xsize;\r
-       if(vy1 > ctl->ysize) vy1 = ctl->ysize;\r
-       for(h = 0; h <= ctl->top; h++){\r
-               sht = ctl->sheets[h];\r
-               sid = sht - ctl->sheets0;\r
-               buf = sht->buf;\r
-               bx0 = vx0 - sht->vx0;\r
-               by0 = vy0 - sht->vy0;\r
-               bx1 = vx1 - sht->vx0;\r
-               by1 = vy1 - sht->vy0;\r
-               if(bx0 < 0) bx0 = 0;\r
-               if(by0 < 0) by0 = 0;\r
-               if(bx1 > sht->bxsize) bx1 = sht->bxsize;\r
-               if(by1 > sht->bysize) by1 = sht->bysize;\r
-               for(by = by0; by < by1; by++){\r
-                       vy = sht->vy0 + by;\r
-                       for(bx = bx0; bx < bx1; bx++){\r
-                               vx = sht->vx0 + bx;\r
-                               if(buf[by * sht->bxsize + bx] != INV_COL32) map[vy * ctl->xsize + vx] = sid;\r
-                       }\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refreshmap16(int vx0, int vy0, int vx1, int vy1, int h0)\r
-{\r
-       int h, bx, by, vx, vy, bx0, by0, bx1, by1;\r
-       uint sid, *map = ctl->map;\r
-       ushort *buf;\r
-       UI_Sheet *sht;\r
-\r
-       if(vx0 < 0) vx0 = 0;\r
-       if(vy0 < 0) vy0 = 0;\r
-       if(vx1 > ctl->xsize) vx1 = ctl->xsize;\r
-       if(vy1 > ctl->ysize) vy1 = ctl->ysize;\r
-       for(h = 0; h <= ctl->top; h++){\r
-               sht = ctl->sheets[h];\r
-               sid = sht - ctl->sheets0;\r
-               buf = sht->buf;\r
-               bx0 = vx0 - sht->vx0;\r
-               by0 = vy0 - sht->vy0;\r
-               bx1 = vx1 - sht->vx0;\r
-               by1 = vy1 - sht->vy0;\r
-               if(bx0 < 0) bx0 = 0;\r
-               if(by0 < 0) by0 = 0;\r
-               if(bx1 > sht->bxsize) bx1 = sht->bxsize;\r
-               if(by1 > sht->bysize) by1 = sht->bysize;\r
-               for(by = by0; by < by1; by++){\r
-                       vy = sht->vy0 + by;\r
-                       for(bx = bx0; bx < bx1; bx++){\r
-                               vx = sht->vx0 + bx;\r
-                               if(buf[by * sht->bxsize + bx] != INV_COL16) map[vy * ctl->xsize + vx] = sid;\r
-                       }\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-void sheet_refreshmap8(int vx0, int vy0, int vx1, int vy1, int h0)\r
-{\r
-       int h, bx, by, vx, vy, bx0, by0, bx1, by1;\r
-       uint sid, *map = ctl->map;\r
-       uchar *buf;\r
-       UI_Sheet *sht;\r
-\r
-       if(vx0 < 0) vx0 = 0;\r
-       if(vy0 < 0) vy0 = 0;\r
-       if(vx1 > ctl->xsize) vx1 = ctl->xsize;\r
-       if(vy1 > ctl->ysize) vy1 = ctl->ysize;\r
-       for(h = 0; h <= ctl->top; h++){\r
-               sht = ctl->sheets[h];\r
-               sid = sht - ctl->sheets0;\r
-               buf = sht->buf;\r
-               bx0 = vx0 - sht->vx0;\r
-               by0 = vy0 - sht->vy0;\r
-               bx1 = vx1 - sht->vx0;\r
-               by1 = vy1 - sht->vy0;\r
-               if(bx0 < 0) bx0 = 0;\r
-               if(by0 < 0) by0 = 0;\r
-               if(bx1 > sht->bxsize) bx1 = sht->bxsize;\r
-               if(by1 > sht->bysize) by1 = sht->bysize;\r
-               for(by = by0; by < by1; by++){\r
-                       vy = sht->vy0 + by;\r
-                       for(bx = bx0; bx < bx1; bx++){\r
-                               vx = sht->vx0 + bx;\r
-                               if(buf[by * sht->bxsize + bx] != INV_COL8) map[vy * ctl->xsize + vx] = sid;\r
-                       }\r
-               }\r
-       }\r
-\r
-       return;\r
-}\r
-\r
-int sheet_get_topheight(void)\r
-{\r
-       return ctl->top - 1;\r
-}\r