Commit graph

2005 commits

Author SHA1 Message Date
suzuki toshiya
12742fd35a cache: Fix some data types mismatching with their sources. 2009-07-03 18:01:23 +09:00
suzuki toshiya
6867d87ca8 cache: Cast NULL to a required function type explicitly. 2009-07-03 18:01:23 +09:00
suzuki toshiya
e4831fc3c3 fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly. 2009-07-03 18:01:22 +09:00
suzuki toshiya
9f8e1eff87 psnames: Handle Unicode codepoints by FT_UInt32 variables. 2009-07-03 18:01:22 +09:00
suzuki toshiya
2cd993da4d psaux: Use size_t variable to pass the buffer size. 2009-07-03 18:01:22 +09:00
suzuki toshiya
da874016eb type1: Use size_t variable to pass the string length. 2009-07-03 18:01:22 +09:00
suzuki toshiya
3fb76769ed cid: Fix some data types mismatching with their sources. 2009-07-03 18:01:21 +09:00
suzuki toshiya
8f357a2e2e cff: Fix for unused variable `rest'. 2009-07-03 18:01:21 +09:00
suzuki toshiya
c1608d1257 cff: Fix some data types mismatching with their sources. 2009-07-03 18:01:21 +09:00
suzuki toshiya
328a0cc745 bdf: Fix some data types mismatching with their sources. 2009-07-03 18:01:20 +09:00
suzuki toshiya
b06e906ec2 sfnt: Count the size of the memory object by ptrdiff_t. 2009-07-03 18:01:20 +09:00
suzuki toshiya
2680780884 lzw: Count the size of the memory object by ptrdiff_t. 2009-07-03 18:01:20 +09:00
suzuki toshiya
351d3c9682 otvalid: Count the table size on memory by ptrdiff_t. 2009-07-03 18:01:19 +09:00
suzuki toshiya
d5337b8965 otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset. 2009-07-03 18:01:19 +09:00
suzuki toshiya
4053559b19 ftobjs.c: Prevent an overflow in glyph index handling. 2009-07-03 18:01:19 +09:00
suzuki toshiya
4b431ddca8 Improve the variable types in raccess_make_file_name(). 2009-07-03 18:01:19 +09:00
suzuki toshiya
ab888c9c87 ftpatent.c: Fix for unused variable `error'. 2009-07-03 18:01:18 +09:00
suzuki toshiya
f23aef3f09 type1: Check invalid string longer than PostScript limit. 2009-07-03 18:01:18 +09:00
suzuki toshiya
848dbd9840 gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default. 2009-07-03 18:01:18 +09:00
suzuki toshiya
4f9802468e gzip: Distinguish PureC from TurboC on MSDOS. 2009-07-03 18:01:17 +09:00
suzuki toshiya
5baa5c0983 gxvalid: Insert PureC pragma to allow unevaluated variables. 2009-07-03 18:01:17 +09:00
suzuki toshiya
db4a2afc5f gxvalid: Pass the union by the pointer instead of the value. 2009-07-03 18:01:17 +09:00
suzuki toshiya
ad289d139f ftpatent: Fix a bug by wrong usage of service->table_info(). 2009-06-29 03:09:17 +09:00
Werner Lemberg
24370d67f5 Uff, another thinko. 2009-06-28 02:11:51 +02:00
Werner Lemberg
e7389a4405 [psaux, cff] Protect against nested `seac' calls.
* include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
(CFF_Decoder): Add `seac' boolean variable.

* src/cff/cffgload.c (cff_operator_seac,
cff_decoder_parse_charstrings), src/psaux/t1decode.c
(t1operator_seac, t1_decoder_parse_charstrings): Use it.
2009-06-28 01:25:55 +02:00
Werner Lemberg
6bb34880e8 Thinko.
* src/psaux/t1decode.c (t1operator_seac)
[FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
interface.
2009-06-28 00:43:37 +02:00
Werner Lemberg
a7e5a335f2 * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define. 2009-06-28 00:40:05 +02:00
Werner Lemberg
b8f97f17cd Formatting. 2009-06-28 00:37:53 +02:00
suzuki toshiya
fee19a786d Add tools to preprocess the source files for AtariST PureC. 2009-06-27 17:07:14 +09:00
suzuki toshiya
3609141de4 Fix wrong date in ChangeLog 2009-06-27 15:02:36 +09:00
suzuki toshiya
912f039743 Keep existing modules.cfg in the building tree. 2009-06-27 14:38:32 +09:00
suzuki toshiya
66d308edfd Filter --srcdir= option before invoking builds/unix/configure. 2009-06-27 14:33:06 +09:00
suzuki toshiya
20fb146351 Improve configure.raw for cross-building on exe-suffixed systems. 2009-06-27 14:27:55 +09:00
Werner Lemberg
610cddcac4 [truetype] Remove TT_SubGlyphRec.
* src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
2009-06-26 07:39:08 +02:00
Werner Lemberg
858abbedc0 For warning messages, replace FT_ERROR with FT_TRACE0.
FT_ERROR is now used only if a function produces a non-zero `error'
value.

Formatting, improving and harmonizing debug strings.
2009-06-26 06:15:41 +02:00
Werner Lemberg
777d6d59ed Provide version information better.
* src/base/ftinit.c (FT_Init_FreeType): Don't set version here
but...
* src/base/ftobjs.c (FT_New_Library): Here.
2009-06-25 16:46:39 +02:00
Werner Lemberg
11cb8c36ed Use 16.16 format while parsing Type 1 charstrings.
This fixes Savannah bug #26867.

Previously, only integers have been used which can lead to serious
rounding errors.

However, fractional values are only used internally; after the
charstrings (of either Type 1 or 2) have been processed, the
resulting coordinates get rounded to integers currently -- before
applying scaling.  This should be fixed; at the same time a new load
flag should be introduced, to be used in combination with
FT_LOAD_NO_SCALE, which indicates that font units are returned in
16.16 format.  Similarly, the incremental interface should be
extended to allow fractional values for metrics.

* include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
field.
* include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.

* src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H.
(t1_build_add_point): Always convert fixed to integer.
* src/psaux/t1decode.c (t1_decoder_parse_charstrings):
Use 16.16 format everywhere (except for large integers followed by a
`div').
[CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
code uncoditionally.
Add support for random numbers and update remaining code
accordingly; this should work now.
(t1_operator_seac): Updated.
* src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
(ps_hints_t1stem3, t1_hints_stem): Updated.

* src/cid/cidgload.c: Include FT_INTERNAL_CALC_H.
(cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL],
(cid_face_compute_max_advance, cid_slot_load_glyph): Updated.

* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
[FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
Updated.
* src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
* src/type1/t1objs.c (T1_Face_Init): Updated.
2009-06-22 16:56:47 +02:00
Werner Lemberg
df9cd975d3 src/pshinter/pshrec.c: Use PSH_Err_Ok. 2009-06-21 23:25:36 +02:00
Werner Lemberg
f79df78a53 Code beautification.
* src/type1/t1load.c (FT_INT_TO_FIXED): Removed.
Replace everywhere with INT_TO_FIXED.
(FT_FIXED_TO_INT): Move to ...
* include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here.
Update all users.
2009-06-21 20:17:01 +02:00
Werner Lemberg
1f540eff0b Remove unused variables.
* include/freetype/internal/psaux.h (T1_BuilderRec),
src/cff/cffgload.h (CFF_Builder): Remove `last'.
Update all users.
2009-06-20 13:24:08 +02:00
Werner Lemberg
41821f8a8a [psaux] Check large integers while parsing charstrings.
* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
integers must be followed by a `div' operator.
2009-06-20 09:31:19 +02:00
Werner Lemberg
541ab5adda [cff] Revert last change.
* src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
Next time, don't confuse Type 2 charstring opcodes with TOP DICT
values...
2009-06-20 07:31:44 +02:00
Werner Lemberg
b34c9b49cc aflatin.c: Fix compiler warning. 2009-06-20 06:32:23 +02:00
Werner Lemberg
ae342dab60 builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6. 2009-06-20 06:01:57 +02:00
Werner Lemberg
f1631f2db0 [cff] Fix handling of reserved byte 0xFF.
* src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
0xFF is encountered.
2009-06-19 23:50:37 +02:00
Werner Lemberg
86fa2ebc1f Improve debug messages for Type1 charstrings.
* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
after instructions.
Prettify output.
2009-06-19 14:56:26 +02:00
Werner Lemberg
d1862d227c More ftgray fixes for FT_STATIC_RASTER.
Problems reported by suyu@cooee.cn.

* src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
RAS_VAR.
2009-06-19 09:09:34 +02:00
Werner Lemberg
140a694373 docs/CHANGES: Updated. 2009-06-18 16:07:11 +02:00
Werner Lemberg
7227114043 Fix B/W rasterization of subglyphs with different drop-out modes.
Normally, the SCANMODE instruction (if present) to set the drop-out
mode in a TrueType font is located in the `prep' table only and thus
valid for all glyphs.  However, there are fonts like `pala.ttf'
which additionally contain this instruction in the hinting code of
some glyphs (but not all).  As a result it can happen that a
composite glyph needs multiple drop-out modes for its subglyphs
since the rendering state gets reset for each subglyph.

FreeType collects the hinted outlines from all subglyphs, then it
sends the data to the rasterizer.  It also sends the drop-out mode
-- after hinting has been applied -- and here is the error: It sends
the drop-out mode of the last subglyph only; drop-out modes of all
other subglyphs are lost.

This patch fixes the problem; it adds a second, alternative
mechanism to pass the drop-out mode: For each contour, the
rasterizer now checks the first `tags' array element.  If bit 2 is
set, bits 5-7 contain the contour's drop-out mode, overriding the
global drop-out mode.

* include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.

* src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
`tags[0]'.

* src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom):
Use bits 3-5 instead of 0-2.
(New_Profile): Set the drop-out mode in the profile's `flags' field.
(Decompose_Curve): Check `tags[0]' and set `dropOutControl' if
necessary.
(Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
mode.
2009-06-18 15:42:52 +02:00
Werner Lemberg
42206ad86a Improve scan conversion rules 4 and 6.
Two new constraints are introduced to better identify a `stub' -- a
concept which is only vaguely described in the OpenType
specification.  The old code was too rigorous and suppressed more
pixel than it should.

  . The intersection of the two profiles with the scanline is less
    than a half pixel.  Code related to this was already present in
    the sources but has been commented out.

  . The endpoint of the original contour forming a profile has a
    distance (`overshoot') less than half a pixel to the scanline.

Note that the two additional conditions fix almost all differences
to the Windows rasterizer, but some problematic cases remain.

* src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New
macros for the `flags' field in the `TProfile' structure.
(IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros.
(New_Profile, End_Profile): Pass overshoot flag as an argument and
set it accordingly.
Update callers.
(Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
constraints.
2009-06-16 15:14:21 +02:00