dvitomp fix from Akira
[mplib] / src / texk / kpathsea / magstep.h
1 /* magstep.h: declaration for magstep fixing.
2
3    Copyright 1994, 2008 Karl Berry.
4    Copyright 1999, 2005 Olaf Weber.
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public License
17    along with this library; if not, see <http://www.gnu.org/licenses/>.  */
18
19 #ifndef KPATHSEA_MAGSTEP_H
20 #define KPATHSEA_MAGSTEP_H
21
22 #include <kpathsea/c-proto.h>
23 #include <kpathsea/types.h>
24
25 /* If DPI is close enough to some magstep of BDPI, return the true dpi
26    value, and the magstep found (or zero) in M_RET (if
27    non-null). ``Close enough'' means within one pixel.
28    
29    M_RET is slightly encoded: the least significant bit is on for a
30    half-magstep, off otherwise.  Thus, a returned M_RET of 1 means
31    \magstephalf, i.e., sqrt(1.2), i.e., 1.09544.  Put another way,
32    return twice the number of magsteps.
33    
34    In practice, this matters for magstephalf.  Floating-point computation
35    with the fixed-point DVI representation leads to 328 (for BDPI ==
36    300); specifying `at 11pt' yields 330; the true \magstephalf is 329
37    (that's what you get if you run Metafont with mag:=magstep(.5)).
38    
39    The time to call this is after you read the font spec from the DVI
40    file, but before you look up any files -- do the usual floating-point
41    computations, and then fix up the result.  */
42
43 extern KPSEDLL unsigned kpse_magstep_fix P3H(unsigned dpi, unsigned bdpi, int *m_ret);
44
45 #endif /* not KPATHSEA_MAGSTEP_H */