Initial revision
[chise/kage.git] / kagecgi / kagecgi.h
1 //kagecgi.h\r
2 //\r
3 \r
4 #include <db1/db.h>\r
5 //#include <db2/db_185.h>\r
6 \r
7 #include <png.h>\r
8 #include <glib.h>\r
9 #include "kage.h"\r
10 \r
11 #ifndef _KAGECGI_H_\r
12 #define _KAGECGI_H_\r
13 \r
14 // define for localhost environment\r
15 #define errorFileSize 4009\r
16 #define errorFileName "error.png"\r
17 #define pngFilePath "/var/www/fontsjp/v0.4/"\r
18 #define databaseFileName "../../kagedb/wiki"\r
19 \r
20 #define kBaseline 188\r
21 #define pngWidth 200\r
22 #define pngHeight 200\r
23 #define canvasWidth 400\r
24 #define canvasHeight 400\r
25 \r
26 #define min(x1,x2) ((x1) > (x2))? (x2):(x1)\r
27 #define max(x1,x2) ((x1) > (x2))? (x1):(x2)\r
28 \r
29 DB *kDatabase;\r
30 \r
31 FILE *debug;\r
32 \r
33 png_bytepp kageCanvas;\r
34 \r
35 int kDesign;\r
36 int kSize;\r
37 int kType;\r
38 int kInput;\r
39 GString *kResultText;\r
40 int kMode;\r
41 \r
42 void generateGlyph(const GString *in, GString *out);\r
43 void searchPartsData(const GString *in, GString *out);\r
44 void searchAliasData(const GString *in, GString *out);\r
45 void searchCacheData(const GString *in, GString *out);\r
46 void doCombine(const GString *in, GString *out);\r
47 void drawGlyph(const GString *in, const int mode);\r
48 \r
49 int isIDS(const GString *in);\r
50 void divideInto2(const GString *in, GString *partIDS1, GString *partIDS3);\r
51 void divideInto3(const GString *in, GString *partIDS1, GString *partIDS2, GString *partIDS3);\r
52 void addStrokeWithTransform(const GString *stroke, const int num, const int *tf, GString *out, int mode);\r
53 void convertArray(int *buf, GString *out, int size, int mode);\r
54 int * convertStroke(const char *in, int *a, int *size);\r
55 void convert99(const GString *in, GString *out);\r
56 void convert99calc(const char *in, GString *out);\r
57 \r
58 void DotsWidth(int *dlx, int *drx);\r
59 void DotsHeight(int *dly, int *dry);\r
60 void PartsWidth(const GString *in, int *lx, int *rx);\r
61 void PartsHeight(const GString *in, int *ly, int *ry);\r
62 GString * CalcSizes(const GString *in, int mode);\r
63 void DrawBox();\r
64 void CalcOptions(const GString *in, int *mitsudo, int *flag, double *yoko, double *tate);\r
65 void DoDrawParts(const GString *in, const int lx1, const double rf1, const int ly1, const double rfy1);\r
66 void DoDrawMixFont(const GString *in1, const int lx1, const double rf1, const GString *in2, const int lx2, const double rf2, const int ly1, const double rfy1, const int ly2, const double rfy2);\r
67 \r
68 void combineYoko2(const GString *parts1, const GString *parts3, int *result);\r
69 void combineYoko3(const GString *parts1, const GString *parts2, const GString *parts3, int *result);\r
70 void combineTate2(const GString *parts1, const GString *parts3, int *result);\r
71 void combineTate3(const GString *parts1, const GString *parts2, const GString *parts3, int *result);\r
72 void combineHame2(const GString *parts1, const GString *parts3, int *result);\r
73 \r
74 int initDB();\r
75 int closeDB();\r
76 void searchPartsData(const GString *in, GString *out);\r
77 void searchAliasData(const GString *in, GString *out);\r
78 \r
79 png_bytepp initPng(int width, int height);\r
80 int closePng(int width, int height, png_bytepp canvas);\r
81 int writePng(int width, int height, png_bytepp image, FILE *fp);\r
82 \r
83 void fillPolygon(struct kPoint *p, int number, int col, unsigned char **image);\r
84 \r
85 #endif\r