src/dbg-bml.c
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
- main
- usage
1 /*
2 * dbg-bml.c - test program for bitmaplist class.
3 * by Hirotsugu Kakugawa
4 *
5 */
6 /*
7 * Copyright (C) 1997 Hirotsugu Kakugawa.
8 * All rights reserved.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2, or (at your option)
13 * any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 */
24
25
26 #include <stdio.h>
27 #include <stdlib.h>
28 #include "VFlib-3_6.h"
29 #include "VFsys.h"
30
31
32 int display(int,int,double,double,int,double);
33 extern double atof();
34
35 void usage(void);
36
37 int
38 main(int argc, char **argv)
/* [<][>][^][v][top][bottom][index][help] */
39 {
40 char *vflibcap;
41 double mag, std_mag;
42 char *font_name;
43 int font_id, code;
44 int rp_x, rp_y, mv_x, mv_y;
45 int delta_x, delta_y, ign_mv;
46 VF_BITMAP bm, composed_bitmap;
47 struct vf_s_bitmaplist the_bitmaplist, *bitmaplist;
48
49 vflibcap = NULL;
50 std_mag = 1.0;
51 delta_x = 0;
52 delta_y = 0;
53 ign_mv = 0;
54 mv_x = 0;
55 mv_y = 0;
56
57 rp_x = 0;
58 rp_y = 0;
59
60 bitmaplist = &the_bitmaplist;
61 VF_BitmapListInit(bitmaplist);
62
63 argc--; argv++;
64 while ((argc > 0) && (*argv[0] == '-')){
65 if (strcmp(argv[0], "-v") == 0){
66 vflibcap = argv[1];
67 argc--; argv++;
68 } else if (strcmp(argv[0], "-M") == 0){
69 std_mag = atof(argv[1]);
70 argc--; argv++;
71 } else if ((strcmp(argv[0], "-h") == 0)
72 || (strcmp(argv[0], "-help") == 0)){
73 usage();
74 } else {
75 break;
76 }
77 argc--; argv++;
78 }
79
80 if (VF_Init(vflibcap, NULL) < 0){
81 fprintf(stderr, "Error %d in VF_Init().\n", vf_error);
82 exit(0);
83 }
84
85 mag = std_mag;
86 while (argc > 0){
87 if (strcmp(argv[0], "-m") == 0){
88 mag = atof(argv[1]) * std_mag;
89 argc--; argv++;
90 } else if (strcmp(argv[0], "-f") == 0){
91 font_name = argv[1];
92 argc--; argv++;
93 if ((font_id = VF_OpenFont2(font_name, -1, 1, 1)) < 0){
94 fprintf(stderr, "Error %d in VF_OpenFont2(%s)\n",
95 vf_error, font_name);
96 exit(0);
97 }
98 } else if (strcmp(argv[0], "-x") == 0){
99 mv_x += atoi(argv[1]);
100 argc--; argv++;
101 } else if (strcmp(argv[0], "-y") == 0){
102 mv_y += atoi(argv[1]);
103 argc--; argv++;
104 } else if (strcmp(argv[0], "-dx") == 0){
105 delta_x = atoi(argv[1]);
106 argc--; argv++;
107 } else if (strcmp(argv[0], "-dy") == 0){
108 delta_y = atoi(argv[1]);
109 argc--; argv++;
110 } else if (strcmp(argv[0], "-n") == 0){
111 ign_mv = 1;
112 } else if (font_id < 0){
113 fprintf(stderr, "Error: Font is not selected.\n");
114 exit(0);
115 } else if (font_id >= 0){
116 sscanf(argv[0], "%i", &code);
117 bm = VF_GetBitmap2(font_id, code, mag, mag);
118 mag = std_mag;
119 if (bm == NULL){
120 fprintf(stderr, "Error: Fauiled to obtain a glyph.\n");
121 exit(1);
122 }
123 if (ign_mv == 1){
124 mv_x = 0;
125 mv_y = 0;
126 }
127 VF_BitmapListPut(bitmaplist, bm,
128 rp_x + mv_x + delta_x, rp_y + mv_y + delta_y);
129 rp_x += mv_x;
130 rp_y += mv_y;
131 mv_x = bm->mv_x;
132 mv_y = bm->mv_y;
133
134 delta_x = 0;
135 delta_y = 0;
136 ign_mv = 0;
137 }
138 argc--; argv++;
139 }
140
141 if ((composed_bitmap = VF_BitmapListCompose(bitmaplist)) != NULL){
142 VF_DumpBitmap(composed_bitmap);
143 }
144
145 VF_BitmapListFinish(bitmaplist);
146
147 return 0;
148 }
149
150
151 void
152 usage(void)
/* [<][>][^][v][top][bottom][index][help] */
153 {
154 printf("dbg-bml - Debug bitmaplist class\n");
155 printf("Usage: bdg-bml [OPTIONS] [ARGS]\n");
156 printf("OPTIONS: -v VFLIBCAP Select vflibcap file\n");
157 printf(" -M MAG Change default magnification\n");
158 printf(" -h Print help\n");
159 printf("ARGS: -f FONT Change fonts\n");
160 printf(" -m MAG Change magnification\n");
161 printf(" -x NPIX Move ref point NPIX pixels holizontally\n");
162 printf(" -y NPIX Move ref point NPIX pixels vertically\n");
163 printf(" -dx NPIX Shift next glyph NPIX pixels holizontally\n");
164 printf(" -dx NPIX Shift next glyph NPIX pixels vertically\n");
165 printf(" -n Do not move ref point\n");
166 printf(" CODE_POINT Add glyph for CODE_POINT\n");
167 printf(" -m has effect on only current font.\n");
168 printf(" -dx, -dy and -n have effects on only for next one glyph.\n");
169 printf("Example 1: dbg-bml -f timI24.pcf 0x69 0x66 0x66\n");
170 printf("Example 2: dbg-bml -f timR24.pcf -m 2 0x41\n");
171 printf("Example 3: dbg-bml -f timR24.pcf 0x41 -f timI24.pcf 0x42\n");
172 exit(0);
173 }
174
175
176 /*EOF*/