~ubuntu-branches/ubuntu/utopic/vflib3/utopic

« back to all changes in this revision

Viewing changes to doc/VFlib-36.info-1

  • Committer: Bazaar Package Importer
  • Author(s): OHURA Makoto
  • Date: 2008-06-12 23:08:47 UTC
  • mfrom: (1.2.1 upstream) (4.1.2 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080612230847-2ko62fof5f4jmnm2
Tags: 3.6.14.dfsg-1
* Remove ccv/TBL/RFC/rfc1489.txt, which is a non-free file.
 (Closes: #464433)
* debian/patches/06_strdup_implicit_pointer_conversion.dpatch: New
  patch.  Add -D_GNU_SOURCE to CFLAGS to enable prototype definition
  of strdup(3). (Closes: #464465)
* debian/rules:
  - Add autoconf2.13 before executing configure script.
  - Run configure script with FreeType2.
  - Move DH_COMPAT variable to debian/compat.
  - Don't ignore make clean error.
* debian/control:
  - Add autoconf2.13 and libfreetype6-dev to Build-Depends: field.
  - Add xutils-dev to Build-Depends: field for xmkmf.
  (Closes: #484200, #485224)
  - Remove x-dev and xutils from Build-Depends: field.
* debian/patches/04_not_ln_parent_dir.dpatch: New patch.  Don't make a
  symlink at parent directory.
* Remove unused debian patch.
* debian/patches/07_build_with_freetype2.dpatch: New patch. Build with
  FreeType2 library. (Closes: #431779, #431781)

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
       VVV     V    FF        ll        bb      
23
23
        VV    VV    FF        ll   ii   bb bbb  
24
24
        VV    V     FF    F   ll  iii   bbb bbb 
25
 
        VVV   V     FFFFFFF   ll   ii   bb   bb    33     66     1   22
26
 
         VV  VV     FF    F   ll   ii   bb   bb   3  3   6      11  2  2
27
 
         VVV V      FF        ll   ii   bb   bb      3   6       1     2
28
 
          VV V      FF        ll   ii   bb   bb     33   666     1    2
29
 
          VVVV      FF        ll   ii   bb   bb      3   6  6    1   2  
30
 
           VV       FF        ll   ii   bb  bb    3  3   6  6    1  2
31
 
           VV      FFFF      llll iiii  b bbb      33  *  66  * 111 2222
 
25
        VVV   V     FFFFFFF   ll   ii   bb   bb    33     66     1    4
 
26
         VV  VV     FF    F   ll   ii   bb   bb   3  3   6      11   44
 
27
         VVV V      FF        ll   ii   bb   bb      3   6       1  4 4
 
28
          VV V      FF        ll   ii   bb   bb     33   666     1 4  4
 
29
          VVVV      FF        ll   ii   bb   bb      3   6  6    1 44444
 
30
           VV       FF        ll   ii   bb  bb    3  3   6  6    1    4
 
31
           VV      FFFF      llll iiii  b bbb      33  *  66  * 111   4
32
32
 
33
 
                                     User's Manual by Hirotsugu Kakugawa
34
 
                                              Final Revision: 1 Nov 2001
 
33
                                   User's Manual by Hirotsugu Kakugawa
 
34
                                           Final Revision: 26 Feb 2006
35
35
 
36
36
 
37
37
 
63
63
*********
64
64
 
65
65
 
66
 
Copyright (C) 1996-2001 Hirotsugu Kakugawa.  All rights reserved.
 
66
Copyright (C) 1996-2006 Hirotsugu Kakugawa.  All rights reserved.
67
67
 
68
 
This file is part of the VFlib Library.  This library is free software;
69
 
you can redistribute it and/or modify it under the terms of the GNU
70
 
Library General Public License as published by the Free Software
71
 
Foundation; either version 2 of the License, or (at your option) any
72
 
later version.  This library is distributed in the hope that it will be
73
 
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
74
 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
75
 
Library General Public License for more details.  You should have
76
 
received a copy of the GNU Library General Public License along with
77
 
this library; if not, write to the Free Software Foundation, 59 Temple
78
 
Place - Suite 330, Boston, MA 02111-1307, USA.
 
68
This file is part of the VFlib Library.  This library is free
 
69
software; you can redistribute it and/or modify it under the terms of
 
70
the GNU Library General Public License as published by the Free
 
71
Software Foundation; either version 2 of the License, or (at your
 
72
option) any later version.  This library is distributed in the hope
 
73
that it will be useful, but WITHOUT ANY WARRANTY; without even the
 
74
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 
75
PURPOSE.  See the GNU Library General Public License for more details.
 
76
You should have received a copy of the GNU Library General Public
 
77
License along with this library; if not, write to the Free Software
 
78
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
79
79
 
80
80
 
81
81
 
86
86
Copying
87
87
*******
88
88
 
89
 
                   GNU LIBRARY GENERAL PUBLIC LICENSE
90
 
                          Version 2, June 1991
 
89
                  GNU LIBRARY GENERAL PUBLIC LICENSE
 
90
                         Version 2, June 1991
91
91
 
92
92
     Copyright (C) 1991 Free Software Foundation, Inc.
93
93
     675 Mass Ave, Cambridge, MA 02139, USA
102
102
Preamble
103
103
========
104
104
 
105
 
The licenses for most software are designed to take away your freedom to
106
 
share and change it.  By contrast, the GNU General Public Licenses are
107
 
intended to guarantee your freedom to share and change free software--to
108
 
make sure the software is free for all its users.
 
105
The licenses for most software are designed to take away your freedom
 
106
to share and change it.  By contrast, the GNU General Public Licenses
 
107
are intended to guarantee your freedom to share and change free
 
108
software--to make sure the software is free for all its users.
109
109
 
110
110
This license, the Library General Public License, applies to some
111
 
specially designated Free Software Foundation software, and to any other
112
 
libraries whose authors decide to use it.  You can use it for your
113
 
libraries, too.
114
 
 
115
 
When we speak of free software, we are referring to freedom, not price.
116
 
Our General Public Licenses are designed to make sure that you have the
117
 
freedom to distribute copies of free software (and charge for this
118
 
service if you wish), that you receive source code or can get it if you
119
 
want it, that you can change the software or use pieces of it in new
120
 
free programs; and that you know you can do these things.
121
 
 
122
 
To protect your rights, we need to make restrictions that forbid anyone
123
 
to deny you these rights or to ask you to surrender the rights.  These
124
 
restrictions translate to certain responsibilities for you if you
125
 
distribute copies of the library, or if you modify it.
126
 
 
127
 
For example, if you distribute copies of the library, whether gratis or
128
 
for a fee, you must give the recipients all the rights that we gave you.
129
 
You must make sure that they, too, receive or can get the source code.
130
 
If you link a program with the library, you must provide complete object
131
 
files to the recipients so that they can relink them with the library,
132
 
after making changes to the library and recompiling it.  And you must
133
 
show them these terms so they know their rights.
 
111
specially designated Free Software Foundation software, and to any
 
112
other libraries whose authors decide to use it.  You can use it for
 
113
your libraries, too.
 
114
 
 
115
When we speak of free software, we are referring to freedom, not
 
116
price.  Our General Public Licenses are designed to make sure that you
 
117
have the freedom to distribute copies of free software (and charge for
 
118
this service if you wish), that you receive source code or can get it
 
119
if you want it, that you can change the software or use pieces of it
 
120
in new free programs; and that you know you can do these things.
 
121
 
 
122
To protect your rights, we need to make restrictions that forbid
 
123
anyone to deny you these rights or to ask you to surrender the rights.
 
124
These restrictions translate to certain responsibilities for you if
 
125
you distribute copies of the library, or if you modify it.
 
126
 
 
127
For example, if you distribute copies of the library, whether gratis
 
128
or for a fee, you must give the recipients all the rights that we gave
 
129
you.  You must make sure that they, too, receive or can get the source
 
130
code.  If you link a program with the library, you must provide
 
131
complete object files to the recipients so that they can relink them
 
132
with the library, after making changes to the library and recompiling
 
133
it.  And you must show them these terms so they know their rights.
134
134
 
135
135
Our method of protecting your rights has two steps: (1) copyright the
136
 
library, and (2) offer you this license which gives you legal permission
137
 
to copy, distribute and/or modify the library.
 
136
library, and (2) offer you this license which gives you legal
 
137
permission to copy, distribute and/or modify the library.
138
138
 
139
139
Also, for each distributor's protection, we want to make certain that
140
140
everyone understands that there is no warranty for this free library.
141
141
If the library is modified by someone else and passed on, we want its
142
142
recipients to know that what they have is not the original version, so
143
 
that any problems introduced by others will not reflect on the original
144
 
authors' reputations.
145
 
 
146
 
Finally, any free program is threatened constantly by software patents.
147
 
We wish to avoid the danger that companies distributing free software
148
 
will individually obtain patent licenses, thus in effect transforming
149
 
the program into proprietary software.  To prevent this, we have made it
150
 
clear that any patent must be licensed for everyone's free use or not
151
 
licensed at all.
152
 
 
153
 
Most GNU software, including some libraries, is covered by the ordinary
154
 
GNU General Public License, which was designed for utility programs.
155
 
This license, the GNU Library General Public License, applies to certain
156
 
designated libraries.  This license is quite different from the ordinary
157
 
one; be sure to read it in full, and don't assume that anything in it is
158
 
the same as in the ordinary license.
159
 
 
160
 
The reason we have a separate public license for some libraries is that
161
 
they blur the distinction we usually make between modifying or adding to
162
 
a program and simply using it.  Linking a program with a library,
163
 
without changing the library, is in some sense simply using the library,
164
 
and is analogous to running a utility program or application program.
165
 
However, in a textual and legal sense, the linked executable is a
166
 
combined work, a derivative of the original library, and the ordinary
167
 
General Public License treats it as such.
 
143
that any problems introduced by others will not reflect on the
 
144
original authors' reputations.
 
145
 
 
146
Finally, any free program is threatened constantly by software
 
147
patents.  We wish to avoid the danger that companies distributing free
 
148
software will individually obtain patent licenses, thus in effect
 
149
transforming the program into proprietary software.  To prevent this,
 
150
we have made it clear that any patent must be licensed for everyone's
 
151
free use or not licensed at all.
 
152
 
 
153
Most GNU software, including some libraries, is covered by the
 
154
ordinary GNU General Public License, which was designed for utility
 
155
programs.  This license, the GNU Library General Public License,
 
156
applies to certain designated libraries.  This license is quite
 
157
different from the ordinary one; be sure to read it in full, and don't
 
158
assume that anything in it is the same as in the ordinary license.
 
159
 
 
160
The reason we have a separate public license for some libraries is
 
161
that they blur the distinction we usually make between modifying or
 
162
adding to a program and simply using it.  Linking a program with a
 
163
library, without changing the library, is in some sense simply using
 
164
the library, and is analogous to running a utility program or
 
165
application program.  However, in a textual and legal sense, the
 
166
linked executable is a combined work, a derivative of the original
 
167
library, and the ordinary General Public License treats it as such.
168
168
 
169
169
Because of this blurred distinction, using the ordinary General Public
170
170
License for libraries did not effectively promote software sharing,
177
177
to permit developers of non-free programs to use free libraries, while
178
178
preserving your freedom as a user of such programs to change the free
179
179
libraries that are incorporated in them.  (We have not seen how to
180
 
achieve this as regards changes in header files, but we have achieved it
181
 
as regards changes in the actual functions of the Library.)  The hope is
182
 
that this will lead to faster development of free libraries.
 
180
achieve this as regards changes in header files, but we have achieved
 
181
it as regards changes in the actual functions of the Library.)  The
 
182
hope is that this will lead to faster development of free libraries.
183
183
 
184
184
The precise terms and conditions for copying, distribution and
185
185
modification follow.  Pay close attention to the difference between a
193
193
 
194
194
GNU LIBRARY GENERAL PUBLIC LICENSE
195
195
==================================
196
 
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
196
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
197
197
 
198
198
  1. This License Agreement applies to any software library which
199
199
     contains a notice placed by the copyright holder or other
201
201
     this Library General Public License (also called "this License").
202
202
     Each licensee is addressed as "you".
203
203
 
204
 
       A "library" means a collection of software functions and/or data
205
 
     prepared so as to be conveniently linked with application programs
206
 
     (which use some of those functions and data) to form executables.
207
 
 
208
 
       The "Library", below, refers to any such software library or work
209
 
     which has been distributed under these terms.  A "work based on the
210
 
     Library" means either the Library or any derivative work under
211
 
     copyright law: that is to say, a work containing the Library or a
212
 
     portion of it, either verbatim or with modifications and/or
213
 
     translated straightforwardly into another language.  (Hereinafter,
214
 
     translation is included without limitation in the term
215
 
     "modification".)
216
 
 
217
 
       "Source code" for a work means the preferred form of the work for
218
 
     making modifications to it.  For a library, complete source code
219
 
     means all the source code for all modules it contains, plus any
220
 
     associated interface definition files, plus the scripts used to
221
 
     control compilation and installation of the library.
222
 
 
223
 
       Activities other than copying, distribution and modification are
224
 
     not covered by this License; they are outside its scope.  The act
225
 
     of running a program using the Library is not restricted, and
 
204
       A "library" means a collection of software functions and/or
 
205
     data prepared so as to be conveniently linked with application
 
206
     programs (which use some of those functions and data) to form
 
207
     executables.
 
208
 
 
209
       The "Library", below, refers to any such software library or
 
210
     work which has been distributed under these terms.  A "work based
 
211
     on the Library" means either the Library or any derivative work
 
212
     under copyright law: that is to say, a work containing the
 
213
     Library or a portion of it, either verbatim or with modifications
 
214
     and/or translated straightforwardly into another language.
 
215
     (Hereinafter, translation is included without limitation in the
 
216
     term "modification".)
 
217
 
 
218
       "Source code" for a work means the preferred form of the work
 
219
     for making modifications to it.  For a library, complete source
 
220
     code means all the source code for all modules it contains, plus
 
221
     any associated interface definition files, plus the scripts used
 
222
     to control compilation and installation of the library.
 
223
 
 
224
       Activities other than copying, distribution and modification
 
225
     are not covered by this License; they are outside its scope.  The
 
226
     act of running a program using the Library is not restricted, and
226
227
     output from such a program is covered only if its contents
227
228
     constitute a work based on the Library (independent of the use of
228
229
     the Library in a tool for writing it).  Whether that is true
229
 
     depends on what the Library does and what the program that uses the
230
 
     Library does.
 
230
     depends on what the Library does and what the program that uses
 
231
     the Library does.
231
232
  
232
233
  2. You may copy and distribute verbatim copies of the Library's
233
234
     complete source code as you receive it, in any medium, provided
237
238
     absence of any warranty; and distribute a copy of this License
238
239
     along with the Library.
239
240
 
240
 
       You may charge a fee for the physical act of transferring a copy,
241
 
     and you may at your option offer warranty protection in exchange
242
 
     for a fee.
 
241
       You may charge a fee for the physical act of transferring a
 
242
     copy, and you may at your option offer warranty protection in
 
243
     exchange for a fee.
243
244
 
244
 
  3. You may modify your copy or copies of the Library or any portion of
245
 
     it, thus forming a work based on the Library, and copy and
246
 
     distribute such modifications or work under the terms of Section 1
247
 
     above, provided that you also meet all of these conditions:
 
245
  3. You may modify your copy or copies of the Library or any portion
 
246
     of it, thus forming a work based on the Library, and copy and
 
247
     distribute such modifications or work under the terms of Section
 
248
     1 above, provided that you also meet all of these conditions:
248
249
 
249
250
       a.     The modified work must itself be a software library.
250
251
 
251
252
       b.     You must cause the files modified to carry prominent
252
 
          notices stating that you changed the files and the date of any
253
 
          change.
254
 
 
255
 
       c.      You must cause the whole of the work to be licensed at no
256
 
          charge to all third parties under the terms of this License.
257
 
 
258
 
       d.     If a facility in the modified Library refers to a function
259
 
          or a table of data to be supplied by an application program
260
 
          that uses the facility, other than as an argument passed when
261
 
          the facility is invoked, then you must make a good faith
262
 
          effort to ensure that, in the event an application does not
263
 
          supply such function or table, the facility still operates,
264
 
          and performs whatever part of its purpose remains meaningful.
 
253
          notices stating that you changed the files and the date of
 
254
          any change.
 
255
 
 
256
       c.      You must cause the whole of the work to be licensed at
 
257
          no charge to all third parties under the terms of this
 
258
          License.
 
259
 
 
260
       d.     If a facility in the modified Library refers to a
 
261
          function or a table of data to be supplied by an application
 
262
          program that uses the facility, other than as an argument
 
263
          passed when the facility is invoked, then you must make a
 
264
          good faith effort to ensure that, in the event an
 
265
          application does not supply such function or table, the
 
266
          facility still operates, and performs whatever part of its
 
267
          purpose remains meaningful.
265
268
 
266
269
              (For example, a function in a library to compute square
267
 
          roots has a purpose that is entirely well-defined independent
268
 
          of the application.  Therefore, Subsection 2d requires that
269
 
          any application-supplied function or table used by this
270
 
          function must be optional: if the application does not supply
271
 
          it, the square root function must still compute square roots.)
 
270
          roots has a purpose that is entirely well-defined
 
271
          independent of the application.  Therefore, Subsection 2d
 
272
          requires that any application-supplied function or table
 
273
          used by this function must be optional: if the application
 
274
          does not supply it, the square root function must still
 
275
          compute square roots.)
272
276
 
273
277
     These requirements apply to the modified work as a whole.  If
274
278
     identifiable sections of that work are not derived from the
275
 
     Library, and can be reasonably considered independent and separate
276
 
     works in themselves, then this License, and its terms, do not apply
277
 
     to those sections when you distribute them as separate works.  But
278
 
     when you distribute the same sections as part of a whole which is a
279
 
     work based on the Library, the distribution of the whole must be on
280
 
     the terms of this License, whose permissions for other licensees
281
 
     extend to the entire whole, and thus to each and every part
282
 
     regardless of who wrote it.
 
279
     Library, and can be reasonably considered independent and
 
280
     separate works in themselves, then this License, and its terms,
 
281
     do not apply to those sections when you distribute them as
 
282
     separate works.  But when you distribute the same sections as
 
283
     part of a whole which is a work based on the Library, the
 
284
     distribution of the whole must be on the terms of this License,
 
285
     whose permissions for other licensees extend to the entire whole,
 
286
     and thus to each and every part regardless of who wrote it.
283
287
 
284
288
     Thus, it is not the intent of this section to claim rights or
285
289
     contest your rights to work written entirely by you; rather, the
287
291
     derivative or collective works based on the Library.
288
292
 
289
293
     In addition, mere aggregation of another work not based on the
290
 
     Library with the Library (or with a work based on the Library) on a
291
 
     volume of a storage or distribution medium does not bring the other
292
 
     work under the scope of this License.
 
294
     Library with the Library (or with a work based on the Library) on
 
295
     a volume of a storage or distribution medium does not bring the
 
296
     other work under the scope of this License.
293
297
 
294
298
  4. You may opt to apply the terms of the ordinary GNU General Public
295
 
     License instead of this License to a given copy of the Library.  To
296
 
     do this, you must alter all the notices that refer to this License,
297
 
     so that they refer to the ordinary GNU General Public License,
298
 
     version 2, instead of to this License.  (If a newer version than
299
 
     version 2 of the ordinary GNU General Public License has appeared,
300
 
     then you can specify that version instead if you wish.)  Do not
301
 
     make any other change in these notices.
 
299
     License instead of this License to a given copy of the Library.
 
300
     To do this, you must alter all the notices that refer to this
 
301
     License, so that they refer to the ordinary GNU General Public
 
302
     License, version 2, instead of to this License.  (If a newer
 
303
     version than version 2 of the ordinary GNU General Public License
 
304
     has appeared, then you can specify that version instead if you
 
305
     wish.)  Do not make any other change in these notices.
302
306
 
303
 
       Once this change is made in a given copy, it is irreversible for
304
 
     that copy, so the ordinary GNU General Public License applies to
305
 
     all subsequent copies and derivative works made from that copy.
 
307
       Once this change is made in a given copy, it is irreversible
 
308
     for that copy, so the ordinary GNU General Public License applies
 
309
     to all subsequent copies and derivative works made from that
 
310
     copy.
306
311
 
307
312
       This option is useful when you wish to copy part of the code of
308
313
     the Library into a program that is not a library.
309
314
 
310
 
  5. You may copy and distribute the Library (or a portion or derivative
311
 
     of it, under Section 2) in object code or executable form under the
312
 
     terms of Sections 1 and 2 above provided that you accompany it with
313
 
     the complete corresponding machine-readable source code, which must
314
 
     be distributed under the terms of Sections 1 and 2 above on a
315
 
     medium customarily used for software interchange.
 
315
  5. You may copy and distribute the Library (or a portion or
 
316
     derivative of it, under Section 2) in object code or executable
 
317
     form under the terms of Sections 1 and 2 above provided that you
 
318
     accompany it with the complete corresponding machine-readable
 
319
     source code, which must be distributed under the terms of
 
320
     Sections 1 and 2 above on a medium customarily used for software
 
321
     interchange.
316
322
 
317
 
       If distribution of object code is made by offering access to copy
318
 
     from a designated place, then offering equivalent access to copy
319
 
     the source code from the same place satisfies the requirement to
320
 
     distribute the source code, even though third parties are not
321
 
     compelled to copy the source along with the object code.
 
323
       If distribution of object code is made by offering access to
 
324
     copy from a designated place, then offering equivalent access to
 
325
     copy the source code from the same place satisfies the
 
326
     requirement to distribute the source code, even though third
 
327
     parties are not compelled to copy the source along with the
 
328
     object code.
322
329
 
323
330
  6. A program that contains no derivative of any portion of the
324
 
     Library, but is designed to work with the Library by being compiled
325
 
     or linked with it, is called a "work that uses the Library".  Such
326
 
     a work, in isolation, is not a derivative work of the Library, and
327
 
     therefore falls outside the scope of this License.
 
331
     Library, but is designed to work with the Library by being
 
332
     compiled or linked with it, is called a "work that uses the
 
333
     Library".  Such a work, in isolation, is not a derivative work of
 
334
     the Library, and therefore falls outside the scope of this
 
335
     License.
328
336
 
329
 
       However, linking a "work that uses the Library" with the Library
330
 
     creates an executable that is a derivative of the Library (because
331
 
     it contains portions of the Library), rather than a "work that uses
332
 
     the library".  The executable is therefore covered by this License.
333
 
     Section 6 states terms for distribution of such executables.
 
337
       However, linking a "work that uses the Library" with the
 
338
     Library creates an executable that is a derivative of the Library
 
339
     (because it contains portions of the Library), rather than a
 
340
     "work that uses the library".  The executable is therefore
 
341
     covered by this License.  Section 6 states terms for distribution
 
342
     of such executables.
334
343
 
335
344
       When a "work that uses the Library" uses material from a header
336
 
     file that is part of the Library, the object code for the work may
337
 
     be a derivative work of the Library even though the source code is
338
 
     not.  Whether this is true is especially significant if the work
339
 
     can be linked without the Library, or if the work is itself a
340
 
     library.  The threshold for this to be true is not precisely
341
 
     defined by law.
 
345
     file that is part of the Library, the object code for the work
 
346
     may be a derivative work of the Library even though the source
 
347
     code is not.  Whether this is true is especially significant if
 
348
     the work can be linked without the Library, or if the work is
 
349
     itself a library.  The threshold for this to be true is not
 
350
     precisely defined by law.
342
351
 
343
352
       If such an object file uses only numerical parameters, data
344
 
     structure layouts and accessors, and small macros and small inline
345
 
     functions (ten lines or less in length), then the use of the object
346
 
     file is unrestricted, regardless of whether it is legally a
347
 
     derivative work.  (Executables containing this object code plus
348
 
     portions of the Library will still fall under Section 6.)
 
353
     structure layouts and accessors, and small macros and small
 
354
     inline functions (ten lines or less in length), then the use of
 
355
     the object file is unrestricted, regardless of whether it is
 
356
     legally a derivative work.  (Executables containing this object
 
357
     code plus portions of the Library will still fall under Section
 
358
     6.)
349
359
 
350
360
       Otherwise, if the work is a derivative of the Library, you may
351
 
     distribute the object code for the work under the terms of Section
352
 
     6.  Any executables containing that work also fall under Section 6,
353
 
     whether or not they are linked directly with the Library itself.
 
361
     distribute the object code for the work under the terms of
 
362
     Section 6.  Any executables containing that work also fall under
 
363
     Section 6, whether or not they are linked directly with the
 
364
     Library itself.
354
365
 
355
 
  7. As an exception to the Sections above, you may also compile or link
356
 
     a "work that uses the Library" with the Library to produce a work
357
 
     containing portions of the Library, and distribute that work under
358
 
     terms of your choice, provided that the terms permit modification
359
 
     of the work for the customer's own use and reverse engineering for
360
 
     debugging such modifications.
 
366
  7. As an exception to the Sections above, you may also compile or
 
367
     link a "work that uses the Library" with the Library to produce a
 
368
     work containing portions of the Library, and distribute that work
 
369
     under terms of your choice, provided that the terms permit
 
370
     modification of the work for the customer's own use and reverse
 
371
     engineering for debugging such modifications.
361
372
 
362
373
       You must give prominent notice with each copy of the work that
363
374
     the Library is used in it and that the Library and its use are
364
375
     covered by this License.  You must supply a copy of this License.
365
376
     If the work during execution displays copyright notices, you must
366
 
     include the copyright notice for the Library among them, as well as
367
 
     a reference directing the user to the copy of this License.  Also,
368
 
     you must do one of these things:
 
377
     include the copyright notice for the Library among them, as well
 
378
     as a reference directing the user to the copy of this License.
 
379
     Also, you must do one of these things:
369
380
 
370
381
       a.     Accompany the work with the complete corresponding
371
382
          machine-readable source code for the Library including
372
383
          whatever changes were used in the work (which must be
373
 
          distributed under Sections 1 and 2 above); and, if the work is
374
 
          an executable linked with the Library, with the complete
375
 
          machine-readable "work that uses the Library", as object code
376
 
          and/or source code, so that the user can modify the Library
377
 
          and then relink to produce a modified executable containing
378
 
          the modified Library.  (It is understood that the user who
379
 
          changes the contents of definitions files in the Library will
380
 
          not necessarily be able to recompile the application to use
381
 
          the modified definitions.)
 
384
          distributed under Sections 1 and 2 above); and, if the work
 
385
          is an executable linked with the Library, with the complete
 
386
          machine-readable "work that uses the Library", as object
 
387
          code and/or source code, so that the user can modify the
 
388
          Library and then relink to produce a modified executable
 
389
          containing the modified Library.  (It is understood that the
 
390
          user who changes the contents of definitions files in the
 
391
          Library will not necessarily be able to recompile the
 
392
          application to use the modified definitions.)
382
393
 
383
394
       b.     Accompany the work with a written offer, valid for at
384
395
          least three years, to give the same user the materials
385
396
          specified in Subsection 6a, above, for a charge no more than
386
397
          the cost of performing this distribution.
387
398
 
388
 
       c.     If distribution of the work is made by offering access to
389
 
          copy from a designated place, offer equivalent access to copy
390
 
          the above specified materials from the same place.
 
399
       c.     If distribution of the work is made by offering access
 
400
          to copy from a designated place, offer equivalent access to
 
401
          copy the above specified materials from the same place.
391
402
 
392
 
       d.     Verify that the user has already received a copy of these
393
 
          materials or that you have already sent this user a copy.
 
403
       d.     Verify that the user has already received a copy of
 
404
          these materials or that you have already sent this user a
 
405
          copy.
394
406
 
395
407
       For an executable, the required form of the "work that uses the
396
408
     Library" must include any data and utility programs needed for
397
409
     reproducing the executable from it.  However, as a special
398
410
     exception, the source code distributed need not include anything
399
 
     that is normally distributed (in either source or binary form) with
400
 
     the major components (compiler, kernel, and so on) of the operating
401
 
     system on which the executable runs, unless that component itself
402
 
     accompanies the executable.
 
411
     that is normally distributed (in either source or binary form)
 
412
     with the major components (compiler, kernel, and so on) of the
 
413
     operating system on which the executable runs, unless that
 
414
     component itself accompanies the executable.
403
415
 
404
416
       It may happen that this requirement contradicts the license
405
417
     restrictions of other proprietary libraries that do not normally
406
418
     accompany the operating system.  Such a contradiction means you
407
 
     cannot use both them and the Library together in an executable that
408
 
     you distribute.
 
419
     cannot use both them and the Library together in an executable
 
420
     that you distribute.
409
421
 
410
422
  8. You may place library facilities that are a work based on the
411
423
     Library side-by-side in a single library together with other
412
 
     library facilities not covered by this License, and distribute such
413
 
     a combined library, provided that the separate distribution of the
414
 
     work based on the Library and of the other library facilities is
415
 
     otherwise permitted, and provided that you do these two things:
 
424
     library facilities not covered by this License, and distribute
 
425
     such a combined library, provided that the separate distribution
 
426
     of the work based on the Library and of the other library
 
427
     facilities is otherwise permitted, and provided that you do these
 
428
     two things:
416
429
 
417
430
       1.     Accompany the combined library with a copy of the same
418
431
          work based on the Library, uncombined with any other library
424
437
          explaining where to find the accompanying uncombined form of
425
438
          the same work.
426
439
 
427
 
  9.  You may not copy, modify, sublicense, link with, or distribute the
428
 
     Library except as expressly provided under this License.  Any
 
440
  9.  You may not copy, modify, sublicense, link with, or distribute
 
441
     the Library except as expressly provided under this License.  Any
429
442
     attempt otherwise to copy, modify, sublicense, link with, or
430
443
     distribute the Library is void, and will automatically terminate
431
 
     your rights under this License.  However, parties who have received
432
 
     copies, or rights, from you under this License will not have their
433
 
     licenses terminated so long as such parties remain in full
434
 
     compliance.
 
444
     your rights under this License.  However, parties who have
 
445
     received copies, or rights, from you under this License will not
 
446
     have their licenses terminated so long as such parties remain in
 
447
     full compliance.
435
448
 
436
449
 10. You are not required to accept this License, since you have not
437
450
     signed it.  However, nothing else grants you permission to modify
438
451
     or distribute the Library or its derivative works.  These actions
439
452
     are prohibited by law if you do not accept this License.
440
453
     Therefore, by modifying or distributing the Library (or any work
441
 
     based on the Library), you indicate your acceptance of this License
442
 
     to do so, and all its terms and conditions for copying,
 
454
     based on the Library), you indicate your acceptance of this
 
455
     License to do so, and all its terms and conditions for copying,
443
456
     distributing or modifying the Library or works based on it.
444
457
 
445
458
 11.  Each time you redistribute the Library (or any work based on the
446
459
     Library), the recipient automatically receives a license from the
447
460
     original licensor to copy, distribute, link with or modify the
448
 
     Library subject to these terms and conditions.  You may not impose
449
 
     any further restrictions on the recipients' exercise of the rights
450
 
     granted herein.  You are not responsible for enforcing compliance
451
 
     by third parties to this License.
 
461
     Library subject to these terms and conditions.  You may not
 
462
     impose any further restrictions on the recipients' exercise of
 
463
     the rights granted herein.  You are not responsible for enforcing
 
464
     compliance by third parties to this License.
452
465
 
453
466
 12. If, as a consequence of a court judgment or allegation of patent
454
467
     infringement or for any other reason (not limited to patent
455
468
     issues), conditions are imposed on you (whether by court order,
456
469
     agreement or otherwise) that contradict the conditions of this
457
470
     License, they do not excuse you from the conditions of this
458
 
     License.  If you cannot distribute so as to satisfy simultaneously
459
 
     your obligations under this License and any other pertinent
460
 
     obligations, then as a consequence you may not distribute the
461
 
     Library at all.  For example, if a patent license would not permit
462
 
     royalty-free redistribution of the Library by all those who receive
463
 
     copies directly or indirectly through you, then the only way you
464
 
     could satisfy both it and this License would be to refrain entirely
465
 
     from distribution of the Library.
 
471
     License.  If you cannot distribute so as to satisfy
 
472
     simultaneously your obligations under this License and any other
 
473
     pertinent obligations, then as a consequence you may not
 
474
     distribute the Library at all.  For example, if a patent license
 
475
     would not permit royalty-free redistribution of the Library by
 
476
     all those who receive copies directly or indirectly through you,
 
477
     then the only way you could satisfy both it and this License
 
478
     would be to refrain entirely from distribution of the Library.
466
479
 
467
480
     If any portion of this section is held invalid or unenforceable
468
481
     under any particular circumstance, the balance of the section is
469
 
     intended to apply, and the section as a whole is intended to apply
470
 
     in other circumstances.
471
 
 
472
 
     It is not the purpose of this section to induce you to infringe any
473
 
     patents or other property right claims or to contest validity of
474
 
     any such claims; this section has the sole purpose of protecting
475
 
     the integrity of the free software distribution system which is
476
 
     implemented by public license practices.  Many people have made
477
 
     generous contributions to the wide range of software distributed
478
 
     through that system in reliance on consistent application of that
479
 
     system; it is up to the author/donor to decide if he or she is
480
 
     willing to distribute software through any other system and a
481
 
     licensee cannot impose that choice.
482
 
 
483
 
     This section is intended to make thoroughly clear what is believed
484
 
     to be a consequence of the rest of this License.
 
482
     intended to apply, and the section as a whole is intended to
 
483
     apply in other circumstances.
 
484
 
 
485
     It is not the purpose of this section to induce you to infringe
 
486
     any patents or other property right claims or to contest validity
 
487
     of any such claims; this section has the sole purpose of
 
488
     protecting the integrity of the free software distribution system
 
489
     which is implemented by public license practices.  Many people
 
490
     have made generous contributions to the wide range of software
 
491
     distributed through that system in reliance on consistent
 
492
     application of that system; it is up to the author/donor to
 
493
     decide if he or she is willing to distribute software through any
 
494
     other system and a licensee cannot impose that choice.
 
495
 
 
496
     This section is intended to make thoroughly clear what is
 
497
     believed to be a consequence of the rest of this License.
485
498
 
486
499
 13. If the distribution and/or use of the Library is restricted in
487
500
     certain countries either by patents or by copyrighted interfaces,
494
507
 
495
508
 14. The Free Software Foundation may publish revised and/or new
496
509
     versions of the Library General Public License from time to time.
497
 
     Such new versions will be similar in spirit to the present version,
498
 
     but may differ in detail to address new problems or concerns.
 
510
     Such new versions will be similar in spirit to the present
 
511
     version, but may differ in detail to address new problems or
 
512
     concerns.
499
513
 
500
514
     Each version is given a distinguishing version number.  If the
501
 
     Library specifies a version number of this License which applies to
502
 
     it and "any later version", you have the option of following the
503
 
     terms and conditions either of that version or of any later version
504
 
     published by the Free Software Foundation.  If the Library does not
505
 
     specify a license version number, you may choose any version ever
506
 
     published by the Free Software Foundation.
 
515
     Library specifies a version number of this License which applies
 
516
     to it and "any later version", you have the option of following
 
517
     the terms and conditions either of that version or of any later
 
518
     version published by the Free Software Foundation.  If the
 
519
     Library does not specify a license version number, you may choose
 
520
     any version ever published by the Free Software Foundation.
507
521
 
508
522
 15. If you wish to incorporate parts of the Library into other free
509
 
     programs whose distribution conditions are incompatible with these,
510
 
     write to the author to ask for permission.  For software which is
511
 
     copyrighted by the Free Software Foundation, write to the Free
512
 
     Software Foundation; we sometimes make exceptions for this.  Our
513
 
     decision will be guided by the two goals of preserving the free
514
 
     status of all derivatives of our free software and of promoting the
515
 
     sharing and reuse of software generally.
 
523
     programs whose distribution conditions are incompatible with
 
524
     these, write to the author to ask for permission.  For software
 
525
     which is copyrighted by the Free Software Foundation, write to
 
526
     the Free Software Foundation; we sometimes make exceptions for
 
527
     this.  Our decision will be guided by the two goals of preserving
 
528
     the free status of all derivatives of our free software and of
 
529
     promoting the sharing and reuse of software generally.
516
530
 
517
 
                                 NO WARRANTY
 
531
                                NO WARRANTY
518
532
 
519
533
 16. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
520
534
     WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE
521
 
     LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
522
 
     AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY
523
 
     OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
524
 
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
525
 
     FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
526
 
     PERFORMANCE OF THE LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE
527
 
     DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
528
 
     OR CORRECTION.
 
535
     LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
 
536
     HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT
 
537
     WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
 
538
     NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 
539
     FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE
 
540
     QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU.  SHOULD THE
 
541
     LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
 
542
     SERVICING, REPAIR OR CORRECTION.
529
543
 
530
544
 17.  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
531
545
     WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
532
546
     MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
533
547
     LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
534
548
     INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
535
 
     INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
536
 
     DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
537
 
     OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY
538
 
     OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
 
549
     INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS
 
550
     OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 
551
     YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH
 
552
     ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
539
553
     ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
540
554
 
541
555
 
542
 
                      END OF TERMS AND CONDITIONS
 
556
                     END OF TERMS AND CONDITIONS
543
557
 
544
558
 
545
559
Appendix: How to Apply These Terms to Your New Libraries
548
562
If you develop a new library, and you want it to be of the greatest
549
563
possible use to the public, we recommend making it free software that
550
564
everyone can redistribute and change.  You can do so by permitting
551
 
redistribution under these terms (or, alternatively, under the terms of
552
 
the ordinary General Public License).
 
565
redistribution under these terms (or, alternatively, under the terms
 
566
of the ordinary General Public License).
553
567
 
554
568
To apply these terms, attach the following notices to the library.  It
555
569
is safest to attach them to the start of each source file to most
556
 
effectively convey the exclusion of warranty; and each file should have
557
 
at least the "copyright" line and a pointer to where the full notice is
558
 
found.
 
570
effectively convey the exclusion of warranty; and each file should
 
571
have at least the "copyright" line and a pointer to where the full
 
572
notice is found.
559
573
 
560
574
     ONE LINE TO GIVE THE LIBRARY'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
561
575
     Copyright (C) YEAR  NAME OF AUTHOR
574
588
     License along with this library; if not, write to the Free
575
589
     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
576
590
 
577
 
Also add information on how to contact you by electronic and paper mail.
 
591
Also add information on how to contact you by electronic and paper
 
592
mail.
578
593
 
579
 
You should also get your employer (if you work as a programmer) or your
580
 
school, if any, to sign a "copyright disclaimer" for the library, if
581
 
necessary.  Here is a sample; alter the names:
 
594
You should also get your employer (if you work as a programmer) or
 
595
your school, if any, to sign a "copyright disclaimer" for the library,
 
596
if necessary.  Here is a sample; alter the names:
582
597
 
583
598
       Yoyodyne, Inc., hereby disclaims all copyright interest in the
584
599
       library `Frob' (a library for tweaking knobs) written by James Random Hacker.
596
611
Introduction
597
612
************
598
613
 
599
 
Today many font files are available in various font file formats.  When
600
 
we need a software to display or print characters which does not depend
601
 
on a windowing system and/or an operating system, we must write
602
 
interface routines for accessing font files in each application software
603
 
again and again.  To do this, programmers must have knowledge on font
604
 
file formats; it will be a hard task for programmers if the number of
605
 
font formats that an application software supports becomes large.
 
614
Today many font files are available in various font file formats.
 
615
When we need a software to display or print characters which does not
 
616
depend on a windowing system and/or an operating system, we must write
 
617
interface routines for accessing font files in each application
 
618
software again and again.  To do this, programmers must have knowledge
 
619
on font file formats; it will be a hard task for programmers if the
 
620
number of font formats that an application software supports becomes
 
621
large.
606
622
 
607
623
VFlib is a font library written in C providing several functions to
608
 
obtain bitmaps of characters.  VFlib hides the font format of font files
609
 
and provides a unified API for all supported font formats.  Thus,
610
 
programmers for application software need not have knowledge on font
611
 
file formats.  Instead, any software using VFlib can support various
612
 
font file formats immediately.
 
624
obtain bitmaps of characters.  VFlib hides the font format of font
 
625
files and provides a unified API for all supported font formats.
 
626
Thus, programmers for application software need not have knowledge on
 
627
font file formats.  Instead, any software using VFlib can support
 
628
various font file formats immediately.
613
629
 
614
630
This document describes the fundamental concepts of VFlib and gives a
615
631
brief introduction in writing programs using VFlib.
630
646
 
631
647
     VFlib (optionally) uses kpathsea, FreeType, and T1Lib libraries.
632
648
     Application software linked with VFlib must be linked with these
633
 
     external libraries, if you want to use them.  Application software
634
 
     must be linked against kpathsea, FreeType and T1Lib in addition to
635
 
     VFlib if you configured VFlib to use them.
 
649
     external libraries, if you want to use them.  Application
 
650
     software must be linked against kpathsea, FreeType and T1Lib in
 
651
     addition to VFlib if you configured VFlib to use them.
636
652
 
637
653
A font database file (`vflibcap')
638
654
 
639
 
     When we open a font, information about the font file (font format,
640
 
     location, possibly necessary glyph modifications etc.) is
 
655
     When we open a font, information about the font file (font
 
656
     format, location, possibly necessary glyph modifications etc.) is
641
657
     necessary.  This file describes such information; it is read when
642
658
     the initialization function of VFlib is called.
643
659
 
648
664
Font Classes and Font Drivers
649
665
 
650
666
     VFlib can handle multiple font file formats.  Reading a font file
651
 
     according to its font file format is done by an internal module in
652
 
     VFlib corresponding to its font file format.  This internal module
653
 
     is called a *font driver*.  Service units provided by a font driver
654
 
     is called *font class*.  From an end-user's point of view, various
655
 
     font formats are distinguished by various names of font classes.
656
 
     Font drivers themselves are internal of VFlib and invisible for
657
 
     end-users.
 
667
     according to its font file format is done by an internal module
 
668
     in VFlib corresponding to its font file format.  This internal
 
669
     module is called a *font driver*.  Service units provided by a
 
670
     font driver is called *font class*.  From an end-user's point of
 
671
     view, various font formats are distinguished by various names of
 
672
     font classes.  Font drivers themselves are internal of VFlib and
 
673
     invisible for end-users.
658
674
 
659
675
      Some font drivers may not read font files on disk; they may
660
676
     generate glyph and outlines by internal computation only.  In
661
 
     addition, some font drivers may return glyph which are obtained as
662
 
     glyph by another font class (hence the name `Virtual Font
 
677
     addition, some font drivers may return glyph which are obtained
 
678
     as glyph by another font class (hence the name `Virtual Font
663
679
     library').
664
680
 
665
681
A View of VFlib Font From The End-User
666
682
 
667
 
     Each (virtual) font by VFlib has its inherent information of point
668
 
     size, pixel size, and resolution of the target device.  In addition
669
 
     to these font metrics are defined for each glyph.
 
683
     Each (virtual) font by VFlib has its inherent information of
 
684
     point size, pixel size, and resolution of the target device.  In
 
685
     addition to these font metrics are defined for each glyph.
670
686
 
671
 
      Some font file formats does not have such concepts; in such case,
672
 
     (1) lacking information is given in a font database file `vflibcap'
673
 
     or (2) the specific font driver gives such information as default
674
 
     values.  For instance, a TrueType font file is a vector font file
675
 
     and does not has information on point size and resolution of the
676
 
     target device (such information is unnecessary since vector fonts
677
 
     can be scaled at any size).  SyotaiKurabu font format (a vector
678
 
     font for Japanese Kanji) does not have font metric information at
679
 
     all.  A font driver for this font format virtually generates font
680
 
     metrics by information given in a vflibcap file.
 
687
      Some font file formats does not have such concepts; in such
 
688
     case, (1) lacking information is given in a font database file
 
689
     `vflibcap' or (2) the specific font driver gives such information
 
690
     as default values.  For instance, a TrueType font file is a
 
691
     vector font file and does not has information on point size and
 
692
     resolution of the target device (such information is unnecessary
 
693
     since vector fonts can be scaled at any size).  SyotaiKurabu font
 
694
     format (a vector font for Japanese Kanji) does not have font
 
695
     metric information at all.  A font driver for this font format
 
696
     virtually generates font metrics by information given in a
 
697
     vflibcap file.
681
698
 
682
699
Font Names and Font Searching Mechanism
683
700
 
684
701
     In VFlib, a font is specified by a font name when a font is
685
702
     requested to open.  First, VFlib checks whether the font name is
686
703
     given in vflibcap or not.  If the font name is found, VFlib reads
687
 
     the description for the font in vflibcap.  The description contains
688
 
     a font class name; VFlib then invokes a font driver corresponding
689
 
     to the font class name.  Finally the font driver opens the font
690
 
     file (if necessary).
691
 
 
692
 
     If the font name is not given in a vflibcap file, a font searching
693
 
     mechanism is invoked.  Since there are many font files for X Window
694
 
     and TeX, this feature is introduced to avoid writing an entry for
695
 
     each font file.  Various font drivers will be called to see whether
696
 
     the font can be opened.  If a font driver succeeds in opening the
697
 
     font, font searching finishes and the VFlib font opening function
698
 
     returns successfully.  Otherwise, font open fails.
699
 
 
700
 
     Fonts described in a vflibcap file are called *explicit fonts* and
701
 
     fonts that are searched for by the font search feature are called
702
 
     *implicit fonts*.  Support for explicit and implicit fonts depends
703
 
     on font driver.
 
704
     the description for the font in vflibcap.  The description
 
705
     contains a font class name; VFlib then invokes a font driver
 
706
     corresponding to the font class name.  Finally the font driver
 
707
     opens the font file (if necessary).
 
708
 
 
709
     If the font name is not given in a vflibcap file, a font
 
710
     searching mechanism is invoked.  Since there are many font files
 
711
     for X Window and TeX, this feature is introduced to avoid writing
 
712
     an entry for each font file.  Various font drivers will be called
 
713
     to see whether the font can be opened.  If a font driver succeeds
 
714
     in opening the font, font searching finishes and the VFlib font
 
715
     opening function returns successfully.  Otherwise, font open
 
716
     fails.
 
717
 
 
718
     Fonts described in a vflibcap file are called *explicit fonts*
 
719
     and fonts that are searched for by the font search feature are
 
720
     called *implicit fonts*.  Support for explicit and implicit fonts
 
721
     depends on font driver.
704
722
 
705
723
 
706
724
Obtaining Bitmaps (Glyph)
709
727
 
710
728
     High resolution device oriented glyph
711
729
 
712
 
          This method is suitable for devices of high resolution such as
713
 
          laser printers. The size of glyph is specified by the physical
714
 
          size of glyph and device resolution.  When the size of a glyph
 
730
          This method is suitable for devices of high resolution such
 
731
          as laser printers. The size of glyph is specified by the
 
732
          physical size of glyph and device resolution.  When the size
 
733
          of a glyph in the source font is different from the target
 
734
          size, VFlib scales the source glyph internally.
 
735
 
 
736
     Low resolution device oriented glyph
 
737
 
 
738
          This method is suitable for low resolution devices such as
 
739
          CRT displays.  Glyph sizes are specified by pixel size
 
740
          rather than by device resolution.  When the size of a glyph
715
741
          in the source font is different from the target size, VFlib
716
742
          scales the source glyph internally.
717
743
 
718
 
     Low resolution device oriented glyph
719
 
 
720
 
          This method is suitable for low resolution devices such as CRT
721
 
          displays.  Glyph sizes are specified by pixel size rather than
722
 
          by device resolution.  When the size of a glyph in the source
723
 
          font is different from the target size, VFlib scales the
724
 
          source glyph internally.
725
 
 
726
744
 
727
745
 
728
746
 
738
756
VFlib uses GNU autoconf and GNU libtool to compile.  According to the
739
757
following procedure, compile and install VFlib.
740
758
 
741
 
VFlib (optionally) uses FreeType 1.3.0 or later, T1Lib 1.3 or later, and
742
 
kpathsea 3.2 libraries.  They must be installed before compiling VFlib
743
 
if you want use them.  They are available from the following sites:
744
 
 
745
 
 
746
 
   * FreeType VFlib is tested with FreeType 1.3.  (FreeType 1.0 does not
747
 
     work with current VFlib3.)
 
759
VFlib (optionally) uses FreeType 1.3.0 or later, T1Lib 5.1 or later,
 
760
and kpathsea 3.2 libraries.  They must be installed before compiling
 
761
VFlib if you want use them.  They are available from the following
 
762
sites:
 
763
 
 
764
 
 
765
   * FreeType VFlib is tested with FreeType 1.3.  (FreeType 1.0 does
 
766
     not work with current VFlib3.)
748
767
        - `http://www.freetype.org/'
749
768
        - `ftp://ftp.freetype.org/pub/freetype/freetype-1.3.tar.gz'
750
769
 
751
 
   * T1Lib VFlib is tested with T1Lib 1.3.
 
770
   * T1Lib VFlib is tested with T1Lib 5.1.
752
771
        - `ftp://sunsite.unc.edu/pub/Linux/libs/graphics/'
753
772
        - `http://www.neuroinformatik.ruhr-uni-bochum.de/ini/PEOPLE/rmz/t1lib/t1lib.html'
754
773
        - `ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/'
763
782
        * Solaris 2.5.1 on Sun SPARC Stations
764
783
 
765
784
     Porting to Unix-like system is easy since the source code is not
766
 
     specific system dependent.  Porting to non-Unix-like system is not
767
 
     difficult; please try.
 
785
     specific system dependent.  Porting to non-Unix-like system is
 
786
     not difficult; please try.
768
787
 
769
 
  2.  Go into the directory `VFlib3-3.6.12'.
 
788
  2.  Go into the directory `VFlib3-3.6.14'.
770
789
 
771
790
  3.  Run the `configure' script.
772
791
 
774
793
 
775
794
     By default, VFlib does *not* support for TrueType and Type1 fonts
776
795
     and TeX font searching by kpathsea library for searching
777
 
     TeX-related font files such as GF, PK, TFM, VF.  For such features,
778
 
     VFlib (optionally) uses FreeType library version 1.2 or later for
779
 
     rendering TrueType font files, T1Lib library version 1.3 or later
780
 
     for rendering Type 1 font files, and kpathsea library version 3.2.
 
796
     TeX-related font files such as GF, PK, TFM, VF.  For such
 
797
     features, VFlib (optionally) uses FreeType library version 1.2 or
 
798
     later for rendering TrueType font files, T1Lib library version
 
799
     5.1 or later for rendering Type 1 font files, and kpathsea
 
800
     library version 3.2.
781
801
 
782
802
     VFlib can be built to use these libraries by giving options when
783
 
     you run `configure' script.  Probably, the following is the typical
784
 
     options to configure script to use TrueType and Type 1 fonts and
785
 
     font search feature by kpathsea library.
 
803
     you run `configure' script.  Probably, the following is the
 
804
     typical options to configure script to use TrueType and Type 1
 
805
     fonts and font search feature by kpathsea library.
786
806
 
787
807
          % ./configure \
788
808
                 --with-kpathsea \
795
815
                 --with-t1lib-includedir=/usr/local/include \
796
816
                 --with-t1lib-libdir=/usr/local/lib            [RET]
797
817
 
798
 
     *Note:* See the `configure-site' script; it invokes the `configure'
799
 
     script with typical settings shown above.
 
818
     *Note:* See the `configure-site' script; it invokes the
 
819
     `configure' script with typical settings shown above.
800
820
 
801
821
 
802
822
     Options for configure script is as follows:
812
832
 
813
833
     --disable-static
814
834
             Disable to build a static library version of VFlib.  By
815
 
          default, static library version is not created, if the target
816
 
          system supports shared library.
 
835
          default, static library version is not created, if the
 
836
          target system supports shared library.
817
837
 
818
838
     --enable-static
819
839
             Enable to build a shared library version of VFlib.
837
857
             VFlib is built without the TeX TFM font driver.
838
858
 
839
859
     --disable-jtex
840
 
             VFlib is built without the Japanese TeX Kanji font driver.
 
860
             VFlib is built without the Japanese TeX Kanji font
 
861
          driver.
841
862
 
842
863
     --disable-tex-fonts
843
 
             VFlib is built without all TeX-related font drivers, i.e.,
844
 
          GF, PK, VF, TFM, and ASCII Japanese TeX Kanji.
 
864
             VFlib is built without all TeX-related font drivers,
 
865
          i.e., GF, PK, VF, TFM, and ASCII Japanese TeX Kanji.
845
866
 
846
867
     --disable-zeit
847
868
             VFlib is built without the Zeit (Syotai Kurabu) font
885
906
             T1lib library files are in DIR.
886
907
 
887
908
     --with-kpathsea=LIB
888
 
             Kpathsea library file is LIB.  Default value is `kpathsea'.
889
 
          (Application programs must be linked against `libLIB.a' or
890
 
          `libLIB.so'.)
 
909
             Kpathsea library file is LIB.  Default value is
 
910
          `kpathsea'.  (Application programs must be linked against
 
911
          `libLIB.a' or `libLIB.so'.)
891
912
 
892
913
     --with-kpathsea-includedir=DIR
893
914
             Kpathsea include files are in DIR.
900
921
 
901
922
          % make  [RET]
902
923
 
903
 
  5. Become a super user (root) and run `make' with `install' option to
904
 
     install.  (Run `make' with `uninstall' option to uninstall.)
 
924
  5. Become a super user (root) and run `make' with `install' option
 
925
     to install.  (Run `make' with `uninstall' option to uninstall.)
905
926
 
906
927
          # make  install [RET]
907
928
 
915
936
           -- A VFlib server and test programs on X11
916
937
 
917
938
          By `vflserver', the functionality of VFlib is available via
918
 
          network if `vflserver' is registered in `/etc/inetd.conf'.  It
919
 
          can be used interactively by invocation from shell.
 
939
          network if `vflserver' is registered in `/etc/inetd.conf'.
 
940
          It can be used interactively by invocation from shell.
920
941
          Interactive use of VFlib is useful for testing or debugging
921
942
          purposes.
922
943
 
923
944
          `vflx11' is a test program that displays characters on X
924
 
          Window System.  You can use it to test if a font is correctly
925
 
          configured in vflibcap file.
 
945
          Window System.  You can use it to test if a font is
 
946
          correctly configured in vflibcap file.
926
947
 
927
948
          `vflmkcaptex' is an automatic vflibcap generator for TeX DVI
928
 
          drivers, especially software in the TeX-Guy package.  It is a
929
 
          Unix Shell script, and it invokes many subprograms (written in
930
 
          C) to generate font definitions for each font format.
 
949
          drivers, especially software in the TeX-Guy package.  It is
 
950
          a Unix Shell script, and it invokes many subprograms
 
951
          (written in C) to generate font definitions for each font
 
952
          format.
931
953
 
932
954
          `vfltest' is a test program that displays characters on
933
955
          terminal by ascii-art form.
936
958
Installation directories are as follows:
937
959
 
938
960
 
939
 
`/usr/local/share/VFlib/3.6.12/' (= `$prefix/share/VFlib/3.6.12/')
 
961
`/usr/local/share/VFlib/3.6.14/' (= `$prefix/share/VFlib/3.6.14/')
940
962
     Runtime files such as vflibcap are installed here.
941
963
 
942
964
     This runtime root directory can be changed on runtime by an
943
965
     environment variable `VFLIB_RUNTIME_DIRECTORY'.  If this
944
966
     environment variable is not set, the default directory
945
 
     (`/usr/local/share/VFlib/3.6.12/') is used.
 
967
     (`/usr/local/share/VFlib/3.6.14/') is used.
946
968
 
947
969
     Under this directory, there are following subdirectories:
948
970
 
949
971
     `ccv'
950
 
          In this directory, code conversion files are installed.  This
951
 
          directory can be changed on runtime by setting an environment
952
 
          variable `VFLIB_CCV_DIRECTORY'.  If this variable is set,
953
 
          default runtime directory and the value by
 
972
          In this directory, code conversion files are installed.
 
973
          This directory can be changed on runtime by setting an
 
974
          environment variable `VFLIB_CCV_DIRECTORY'.  If this
 
975
          variable is set, default runtime directory and the value by
954
976
          `VFLIB_RUNTIME_DIRECTORY' variable are ignored.
955
977
 
956
978
     `t1lib'
957
 
          Encoding vector files for T1Lib (for Type 1 fonts) are stored
958
 
          in this directory.  Note that the file format for encoding
959
 
          vector files used by T1Lib is different from those used by
960
 
          standard PostScript.  To convert standard PostScript encoding
961
 
          vector files into T1Lib format, use `mkt1enc.sh' program in
962
 
          this directory.  By default, this directory contains files
963
 
          converted from encoding vector files in the `dvips'
964
 
          distribution.
 
979
          Encoding vector files for T1Lib (for Type 1 fonts) are
 
980
          stored in this directory.  Note that the file format for
 
981
          encoding vector files used by T1Lib is different from those
 
982
          used by standard PostScript.  To convert standard PostScript
 
983
          encoding vector files into T1Lib format, use `mkt1enc.sh'
 
984
          program in this directory.  By default, this directory
 
985
          contains files converted from encoding vector files in the
 
986
          `dvips' distribution.
965
987
 
966
988
     `ascii-jtex'
967
989
          In this directory, runtime files for Japanese TeX by ASCII
968
 
          Coop. are installed.  This directory can be changed on runtime
969
 
          by setting an environment variable
 
990
          Coop. are installed.  This directory can be changed on
 
991
          runtime by setting an environment variable
970
992
          `VFLIB_ASCII_JTEX_DIRECTORY'.  If this variable is set,
971
993
          default runtime directory and the value by
972
994
          `VFLIB_RUNTIME_DIRECTORY' variable are ignored.
976
998
          Hirotsugu Kakugawa.
977
999
 
978
1000
`/usr/local/share/VFlib/site/'
979
 
     Runtime files (vflibcap, ccv files, etc.) that are created by each
980
 
     site should be placed here.  For each versiion of VFlib, it has own
981
 
     runtime directory (`/usr/local/share/VFlib/X.Y.Z/') for default
982
 
     settings; and therefore, the directory where runtime files such as
983
 
     vflibcap in differs by versions of VFlib.  In oder to use your own
984
 
     runtime files regardless VFlib versions, runtime files modified for
985
 
     your system environment should be installed in
 
1001
     Runtime files (vflibcap, ccv files, etc.) that are created by
 
1002
     each site should be placed here.  For each versiion of VFlib, it
 
1003
     has own runtime directory (`/usr/local/share/VFlib/X.Y.Z/') for
 
1004
     default settings; and therefore, the directory where runtime
 
1005
     files such as vflibcap in differs by versions of VFlib.  In oder
 
1006
     to use your own runtime files regardless VFlib versions, runtime
 
1007
     files modified for your system environment should be installed in
986
1008
     `/usr/local/share/VFlib/site/', which is called "site directory".
987
1009
 
988
 
     Before searching in `/usr/local/share/VFlib/X.Y.Z/', VFlib searches
989
 
     a runtime file in site directory.  Note that there is no directory
990
 
     hierarchy in site directory; all runtime files are in the same
991
 
     directory.  The site directory can be changed by an environment
992
 
     variable `VFLIB_RUNTIME_SITE_DIRECTORY'.
 
1010
     Before searching in `/usr/local/share/VFlib/X.Y.Z/', VFlib
 
1011
     searches a runtime file in site directory.  Note that there is no
 
1012
     directory hierarchy in site directory; all runtime files are in
 
1013
     the same directory.  The site directory can be changed by an
 
1014
     environment variable `VFLIB_RUNTIME_SITE_DIRECTORY'.
993
1015
 
994
1016
`/usr/local/bin/'
995
1017
     Binary programs such as `vflserver', `vflx11', etc are installed
1057
1079
     };
1058
1080
     typedef struct vf_s_bitmap*  VF_BITMAP;
1059
1081
 
1060
 
`bbx_width' and `bbx_height' are the bitmap width and height.  A pair of
1061
 
`off_x' and `off_y') forms a vector to the left-upper corner of the
 
1082
`bbx_width' and `bbx_height' are the bitmap width and height.  A pair
 
1083
of `off_x' and `off_y') forms a vector to the left-upper corner of the
1062
1084
bitmap from the reference point.  A pair of `mv_x' and `mv_y' is a
1063
1085
vector to the next reference point from the current reference point.
1064
1086
(Positive values indicate a move into the right and upper direction
1068
1090
`mv_y' is pixels.  `bitmap' is a pointer to the bitmap data; one pixel
1069
1091
corresponds to one bit.
1070
1092
 
1071
 
The left upper corner is the beginning of the bitmap data, and a raster
1072
 
line is defined as a horizontal line from the left to the right corner
1073
 
of the glyph bitmap.  `bitmap' is a sequence of raster lines starting
1074
 
from the top to the bottom.  The distance (in bytes) of two consecutive
1075
 
raster lines in memory is given by `raster'.  Although the raster line
1076
 
length of a bitmap is (`bbx_width'+7)/8, it is not guaranteed that this
1077
 
value is the same as `raster'.  The type of `bitmap' is a pointer to
1078
 
`unsigned char' data object, and each `unsigned char' data object
1079
 
contains eight pixels.  Let `P[0]' be the start address of a raster
1080
 
line.  The `x'-th pixel counted from the leftmost pixel (which is pixel
1081
 
0) is 1 if and only if `P[x/8] & (0x80>>(x%8))' is non-zero.
 
1093
The left upper corner is the beginning of the bitmap data, and a
 
1094
raster line is defined as a horizontal line from the left to the right
 
1095
corner of the glyph bitmap.  `bitmap' is a sequence of raster lines
 
1096
starting from the top to the bottom.  The distance (in bytes) of two
 
1097
consecutive raster lines in memory is given by `raster'.  Although the
 
1098
raster line length of a bitmap is (`bbx_width'+7)/8, it is not
 
1099
guaranteed that this value is the same as `raster'.  The type of
 
1100
`bitmap' is a pointer to `unsigned char' data object, and each
 
1101
`unsigned char' data object contains eight pixels.  Let `P[0]' be the
 
1102
start address of a raster line.  The `x'-th pixel counted from the
 
1103
leftmost pixel (which is pixel 0) is 1 if and only if `P[x/8] &
 
1104
(0x80>>(x%8))' is non-zero.
1082
1105
 
1083
1106
If `bbx_width' is not a multiple of 8, there exist bits that do not
1084
1107
correspond to any pixels but their values are always zero.  Even if
1085
 
`bbx_width' and/or `bbx_height' are zero, at least one byte is allocated
1086
 
for the bitmap data.  Thus, `bitmap' is always non-NULL.
 
1108
`bbx_width' and/or `bbx_height' are zero, at least one byte is
 
1109
allocated for the bitmap data.  Thus, `bitmap' is always non-NULL.
1087
1110
 
1088
1111
 
1089
1112
 
1141
1164
Each font driver returns a outline data of a character of a font if a
1142
1165
font driver of that font supports `VF_GetOutline()' function.  Even if
1143
1166
data format of a font is different from VFlib-format, a font driver
1144
 
converts outline data to VFlib-format data.  For instance, the PCF font
1145
 
driver (note that PCF is a bitmap font format) supports
1146
 
`VF_GetOutline()' function and it constructs and return an outline data
1147
 
which is a set of square; each square corresponds to a pixel of a
 
1167
converts outline data to VFlib-format data.  For instance, the PCF
 
1168
font driver (note that PCF is a bitmap font format) supports
 
1169
`VF_GetOutline()' function and it constructs and return an outline
 
1170
data which is a set of square; each square corresponds to a pixel of a
1148
1171
bitmap.
1149
1172
 
1150
1173
Note that not all font drivers support `VF_GetOutline()' function, but
1151
 
most of them do.  The developer of font drivers are strongly recommented
1152
 
to implement this feature even if the font font format is bitmap-based.
1153
 
(The function is supported by BDF, PCF, HBF, PK, GF, TFM, Zeit, JG,
1154
 
TrueType, and Type 1 font drivers.)
 
1174
most of them do.  The developer of font drivers are strongly
 
1175
recommented to implement this feature even if the font font format is
 
1176
bitmap-based.  (The function is supported by BDF, PCF, HBF, PK, GF,
 
1177
TFM, Zeit, JG, TrueType, and Type 1 font drivers.)
1155
1178
 
1156
1179
Outline data is defined as follows:
1157
1180
 
1159
1182
     typedef long              VF_OUTLINE_ELEM;
1160
1183
     typedef VF_OUTLINE_ELEM   *VF_OUTLINE;
1161
1184
 
1162
 
According to CPU architecture, `VF_OUTLINE_ELEM' is defined as `int' if
1163
 
size of `long' is 8.
 
1185
According to CPU architecture, `VF_OUTLINE_ELEM' is defined as `int'
 
1186
if size of `long' is 8.
1164
1187
 
1165
1188
     typedef long              VF_OUTLINE_ELEM;
1166
1189
 
1167
 
Outline data is an array of VF_OUTLINE_ELEM type (`long' or `int' type).
1168
 
Outline data consists from two parts: header and outline.  The header
1169
 
part contains metric data and outline part contains outline
 
1190
Outline data is an array of VF_OUTLINE_ELEM type (`long' or `int'
 
1191
type).  Outline data consists from two parts: header and outline.  The
 
1192
header part contains metric data and outline part contains outline
1170
1193
representation of a character.
1171
1194
 
1172
1195
Documentation for this feature is not finished.  See the source code