Commit Graph

3405 Commits

Author SHA1 Message Date
Werner Lemberg
a5e9dbd528 Fix Savannah bug #27742.
* src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
zero, using a threshold for `theta'.
2009-11-20 09:33:57 +01:00
Werner Lemberg
934d054f45 Fix Savannah bug #28036.
* src/type1/t1afm.c (t1_get_index): Fix comparison.
2009-11-20 06:26:22 +01:00
Werner Lemberg
0197508440 Fix compiler warnings.
Reported by Kevin Blenkinsopp <arqon@promode.org>.

* src/sfnt/ttload.c (check_table_dir): Use proper data type.
2009-11-16 23:10:53 +01:00
Werner Lemberg
0aa1de621c s/casted/cast/ 2009-11-15 10:53:50 +01:00
Werner Lemberg
7635ba64b7 Really fix FreeDesktop bug #21197.
This also fixes Savannah bug #28021.

* src/autofit/aflatin.c (af_latin_metrics_check_digits),
src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
2009-11-15 10:17:44 +01:00
Werner Lemberg
c4b22144d3 Add tracing messages for advance values.
* src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
(TT_Get_HMetrics, TT_Get_VMetrics): Do it.
2009-11-15 10:10:00 +01:00
Werner Lemberg
c0aeef4571 Fix compiler warning.
Reported by Jeremy Manson <jeremy.manson@gmail.com>.

* src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
2009-11-08 07:58:05 +01:00
Werner Lemberg
c6e4180c05 Remove compiler warning.
Reported by Sean McBride <sean@rogue-research.com>.

* src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
`int', as specified in the printf(3) man page.
2009-11-04 12:18:48 +01:00
Werner Lemberg
012552f143 Fix Savannah bug #27921.
* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
(cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
values for rounding if the argument can be negative.
2009-11-04 10:06:04 +01:00
Bram Tassyns
8821cc5df1 Add basic support for Type1 charstrings in CFF.
* src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
`seac', `sbw', and `setcurrentpoint' opcodes.
(cff_compute_bias): Add parameter to indicate the charstring type.
Update all callers.
(cff_operator_seac): Add parameter for side bearing.
(cff_decoder_parse_charstrings): Updated for more Type1 support.
2009-11-04 07:21:15 +01:00
Werner Lemberg
f186ba682d Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
Reported by Jeremy Manson <jeremy.manson@gmail.com>.

src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
quickly load the glyph header only.
Update all callers.
(tt_loader_init): Add parameter to quickly load the `glyf' table
only.
Update all callers.
(TT_Load_Glyph): Compute linear advance values for embedded bitmap
glyphs too.
2009-11-03 15:46:35 +01:00
Werner Lemberg
422210be64 Improve code readability.
* src/ttgload.c (load_truetype_glyph): Move metrics calculation
to...
(tt_get_metrics): This new function.
2009-11-03 08:11:02 +01:00
Werner Lemberg
ac0d52d851 Whitespace. 2009-11-02 08:35:24 +01:00
Werner Lemberg
350444d480 Improve documentation of the various advance values. 2009-11-02 08:12:45 +01:00
Werner Lemberg
c4bdb73571 Minor doc fix.
Found by Ian Britten.
2009-11-02 07:25:01 +01:00
Werner Lemberg
939bc785f2 Mention all used licenses. 2009-10-29 09:28:27 +01:00
bram tassyns
06ba45978d Fix Savannah bug #27811.
* src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
signed/unsigned mismatch.
2009-10-26 22:26:31 +01:00
Werner Lemberg
38449dceaf Whitespace. 2009-10-26 07:26:25 +01:00
Werner Lemberg
2d15120cb5 Fix handling of get' and put' CFF instructions.
* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
elements for the `get' and `put' operators to 32.
* src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
(CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
2009-10-19 21:09:13 +02:00
Werner Lemberg
d90567b1e6 Fix handling of `dup' CFF instruction.
Problem and solution reported by Ning Dong <flintning@163.com>.

* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
Increase `args' by 2, not 1.
2009-10-18 10:47:11 +02:00
Werner Lemberg
e1e723012d Documentation typo. 2009-10-18 09:47:52 +02:00
Werner Lemberg
dd9d7ca7ae Typos. 2009-10-10 21:19:35 +02:00
Werner Lemberg
d699c2994e * Version 2.3.11 released.
==========================

Tag sources with `VER-2-3-11'.

* docs/VERSION.DLL: Update documentation and bump version number to
2.3.11.

* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualce/index.html,
builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.

* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.

* builds/unix/configure.raw (version_info): Set to 9:22:3.
2009-10-10 20:25:48 +02:00
Werner Lemberg
3c4e6baadb * docs/CHANGES, docs/release: Updated. 2009-10-10 20:15:49 +02:00
suzuki toshiya
008686a123 [pcf] Fix a bug in the nprops truncation, Gentoo bug #288357. 2009-10-11 02:07:16 +09:00
Werner Lemberg
19dfcbd2a4 * Version 2.3.10 released.
==========================

Tag sources with `VER-2-3-10'.

* builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
than a single digit.
(dist): We now use git.

* docs/VERSION.DLL: Update documentation and bump version number to
2.3.10.

* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualce/index.html,
builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.

* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.

* builds/unix/configure.raw (version_info): Set to 9:21:3.
2009-10-06 12:00:43 +02:00
Werner Lemberg
bcdde60e5d Whitespace. 2009-10-06 11:14:19 +02:00
Werner Lemberg
5c3160ec14 Formatting. 2009-10-06 11:12:28 +02:00
Werner Lemberg
ca87cd0bda Fix `make multi'.
* src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.

* src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
2009-10-06 11:09:29 +02:00
suzuki toshiya
6167357e8f [cache] Fold too long lines. 2009-09-29 03:19:47 +09:00
suzuki toshiya
82633a2440 [cache] Fix Savannah bug #27441, cleanup Redhat bugzilla #513582. 2009-09-27 16:55:44 +09:00
suzuki toshiya
f2647ddabb [cache, psaux, type1] Fix for multi build. 2009-09-26 00:48:37 +09:00
suzuki toshiya
76f1b9d9cf [autofit] Fix for multi build. 2009-09-25 23:57:30 +09:00
suzuki toshiya
4e0c9ee155 [cache] Check the face filled by FTC_Manager_LookupFace(). 2009-09-24 14:30:40 +09:00
Werner Lemberg
e2184505b1 * docs/CHANGES: Updated. 2009-09-23 09:28:48 +02:00
Werner Lemberg
766b822f4c [raster] Fix 5-levels grayscale output.
This was broken since version 2.3.0.

* src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
were then computed dynamically).
(Vertical_Gray_Sweep_Step): Updated.

(ft_black_render): Initialize `worker->gray_lines' (problem found by
valgrind).

(FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
comment out.
2009-09-12 23:15:17 +02:00
suzuki toshiya
812d1bc90d Improve configure.raw for cross build. 2009-09-13 02:12:44 +09:00
suzuki toshiya
704f4d75cd [BDF] Modify hash API to take size_t value instead of void *. 2009-09-13 00:50:14 +09:00
suzuki toshiya
519a5eafd7 Whitespace. 2009-09-13 00:00:28 +09:00
suzuki toshiya
0729bc9f52 [Win64] Improve the computation of random seed from stack address. 2009-09-10 16:09:55 +09:00
Werner Lemberg
fecb7a60fa Replace CR line endings with CRLF in Visual C/CE project files. 2009-09-10 07:36:11 +02:00
Werner Lemberg
d30062d25c Whitespace. 2009-09-08 07:06:54 +02:00
Werner Lemberg
4539b3eec8 Whitespace. 2009-09-08 07:05:26 +02:00
Werner Lemberg
5e240c1270 [raster] Improvements for stand-alone mode.
* src/raster/rules.mk: Don't handle ftmisc.h.  It is needed for
stand-alone mode only.

* src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
FT_Realloc_Func): Copy declarations from ftsystem.h.
2009-09-03 13:14:24 +02:00
Bram Tassyns
4694ea2b95 Improve vertical metrics calculation (Savannah bug #27364).
The calculation of `vertBearingX' is not defined in the OTF font
spec so FreeType does a `best effort' attempt.  However, this value
is defined in the PDF and PostScript specs, and that algorithm is
better than the one FreeType currently uses:

  FreeType: Use the middle of the bounding box as the X coordinate
            of the vertical origin.

  Adobe PDF spec: Use the middle of the horizontal advance vector as
                  the X coordinate of the vertical origin.

FreeType's algorithm goes wrong if you have a really small glyph
(like the full-width, circle-like dot at the end of the sentence, as
used in CJK scripts) with large bearings.  With the FreeType
algorithm this dot gets centered on the baseline; with the PDF
algorithm it gets the correct location (in the top right).  Note
that this is a serious issue, it's like printing the dot at the end
of a Roman sentence at the center of the textline instead of on the
baseline like it should. So i believe the PDF spec's algorithm
should be used in FreeType as well.

The `vertBearingY' value for such small glyphs is also very strange
if no `vmtx' information is present, since the height of the bbox is
not representable for the height of the glyph visually (the
whitespace up to the baseline is part of the glyph).  The fix also
includes some code for a better estimate of `vertBearingY'.

* src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
is now calculated as described by the Adobe PDF Spec.  Estimate for
`vertBearingY' now works better for small glyphs completely above or
below the baseline into account.

* src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
calculated as described by the Adobe PDF Spec.  Vertical metrics
information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
was not defined.

* src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
now calculated as described by the Adobe PDF Spec.
2009-09-02 13:06:33 +02:00
John Tytgat
03e8b2f763 Fix custom cmap for empty Type 1 font (Savannah bug #27294).
* include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
comment to reflect revised code_last meaning.
* src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
(T42_Open_Face): Assign max_char as highest character code + 1 and
use this for T1_EncodingRecRec_::code_last.
* src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
T1_EncodingRecRec_::code_last meaning.
2009-09-01 08:10:24 +02:00
Ralph Giles
17904a107a Document that FT_Get_X11_Font_Format() is a general call.
This function was originally added to return the underlying font
format in a way which was compatible with the needs of the XFree86
font server.  However, a function of this sort is also necessary when
freetype is used by PDF interpreters which apply different rules
based on the font format.

The X11 namespace is confusing for such users.  This commit ameliorates
that confusion by documenting that this function is in fact entirely
internal to freetype and doesn't depend on X11 in any way.
2009-08-28 09:08:00 +02:00
Werner Lemberg
d77cd8ce7e Fix rendering of horizontally compressed CFFs.
Bug reported by Ivan Nincic <inincic@pdftron.com>.

* src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
`font_matrix' also.

* docs/CHANGES: Updated.
2009-08-27 00:10:56 +02:00
Su Yu
efaf5abcf8 Don't call ft_fseek' every time when executing ft_fread'.
* src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
(ft_ansi_stream_io): Implement it.
2009-08-03 19:55:58 +02:00
suzuki toshiya
2b6a3f0be9 sfnt: Cast a charcode to 32-bit in cmap format 14 parser. 2009-08-01 00:37:59 +09:00