浏览代码

* Add a lookback table in the output. Will be handy later.

* Now sortchars’s output can be directly saved to a C header file.
tags/v0.99.beta14
Sam Hocevar sam 18 年前
父节点
当前提交
4f287aecb6
共有 1 个文件被更改,包括 14 次插入1 次删除
  1. +14
    -1
      tools/sortchars.c

+ 14
- 1
tools/sortchars.c 查看文件

@@ -39,6 +39,7 @@ int bestchar[FULLRANGE];
static int curve[17] = /* 17 instead of 16 */ static int curve[17] = /* 17 instead of 16 */
{ {
0, 4, 6, 8, 9, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15 0, 4, 6, 8, 9, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15
//0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15
//0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15 //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15
}; };


@@ -163,7 +164,7 @@ int main(int argc, char *argv[])


/* Print results */ /* Print results */
printf("/* Generated by sortchars.c */\n"); printf("/* Generated by sortchars.c */\n");
printf("static char const lookup_ascii[%i] =\n{\n ", FULLRANGE);
printf("static char const cells_to_ascii[%i] =\n{\n ", FULLRANGE);
for(i = 0; i < FULLRANGE; i++) for(i = 0; i < FULLRANGE; i++)
{ {
ret = cucul_utf32_to_utf8(utf8, bestchar[i]); ret = cucul_utf32_to_utf8(utf8, bestchar[i]);
@@ -172,6 +173,16 @@ int main(int argc, char *argv[])
if((i % 16) == 15 && i != FULLRANGE - 1) if((i % 16) == 15 && i != FULLRANGE - 1)
printf("\n "); printf("\n ");
} }
printf("\n};\n\n");
printf("static uint16_t const ascii_to_cells[%i] =\n{\n ", GLYPHS);
for(i = 0; i < GLYPHS; i++)
{
ret = cucul_utf32_to_utf8(utf8, bestchar[i]);
utf8[ret] = '\0';
printf("0x%03x, ", allbits[i]);
if((i % 8) == 7 && i != GLYPHS - 1)
printf("\n ");
}
printf("\n};\n"); printf("\n};\n");


cucul_free_canvas(cv); cucul_free_canvas(cv);
@@ -229,6 +240,7 @@ static void testcircle(void)
for(x = 0; x < WIDTH * DX; x++) for(x = 0; x < WIDTH * DX; x++)
dst[y * WIDTH * DX + x] = (int)buf[(y * 256 / (HEIGHT * DY)) * 256 + (x * 256 / (WIDTH * DX))] * RANGE / 256; dst[y * WIDTH * DX + x] = (int)buf[(y * 256 / (HEIGHT * DY)) * 256 + (x * 256 / (WIDTH * DX))] * RANGE / 256;


printf("/* example:\n");
for(y = 0; y < HEIGHT; y++) for(y = 0; y < HEIGHT; y++)
{ {
for(x = 0; x < WIDTH; x++) for(x = 0; x < WIDTH; x++)
@@ -249,5 +261,6 @@ static void testcircle(void)


printf("\n"); printf("\n");
} }
printf("*/\n");
} }



正在加载...
取消
保存