Commit Graph

4853 Commits

Author SHA1 Message Date
Werner Lemberg d26cd5ed27 The FT_LOAD_BITMAP_CROP flag is obsolete.
It's not used by any driver.
2014-11-22 18:49:25 +01:00
Werner Lemberg af8346172a [bdf] Fix Savannah bug #43660.
* src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
`_BDF_GLYPH_BITS'.
2014-11-22 13:29:10 +01:00
Werner Lemberg 42fcd6693e [type42] Allow only embedded TrueType fonts.
This is a follow-up to Savannah bug #43659.

* src/type42/t42objs.c (T42_Face_Init): Exclusively use the
`truetype' font driver for loading the font contained in the `sfnts'
array.
2014-11-22 12:44:33 +01:00
Werner Lemberg 3788187e0c [type42] Fix Savannah bug #43659.
* src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.

* src/type42/t42parse.c (t42_parse_sfnts): Always set
`face->ttf_size' directly.  This ensures a correct stream size in
the call to `FT_Open_Face', which follows after parsing, even for
buggy input data.
Fix error messages.
2014-11-22 10:46:47 +01:00
Werner Lemberg 5f201ab5c2 [cff] Fix Savannah bug #43658.
* src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
return values of point allocation routines.
2014-11-22 09:16:39 +01:00
Werner Lemberg 801b35fe81 Formatting. 2014-11-22 07:21:11 +01:00
Werner Lemberg 9bd20b7304 [sfnt] Fix Savannah bug #43656.
* src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
tests.
2014-11-22 06:24:45 +01:00
Werner Lemberg dd89710f0f [type1, type42] Fix Savannah bug #43655.
* src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
(t42_parse_charstrings): Fix boundary testing.
2014-11-21 22:19:28 +01:00
Werner Lemberg b1fc00d5dc * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics. 2014-11-21 12:06:40 +01:00
Werner Lemberg 23c093fc38 Minor. 2014-11-21 08:41:39 +01:00
Werner Lemberg 9154dab815 [ftlcdfil] Obey flow direction.
* src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
Handle `up' flow.
2014-11-21 08:03:51 +01:00
Werner Lemberg 644d6fab7e * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
This commit completes argument checks and adds support for different
flow directions.
2014-11-21 07:28:50 +01:00
Werner Lemberg 6de761744c * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
This commit adds argument checks and support for different flow
directions.
2014-11-21 06:38:46 +01:00
Werner Lemberg 1e6e1b8390 * src/base/ftbitmap.c (FT_Bitmap_New): Check argument. 2014-11-21 06:38:46 +01:00
Werner Lemberg b3500af717 Change some fields in `FT_Bitmap' to unsigned type.
This doesn't break ABI.

* include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
`pixel_mode', and `palette_mode' unsigned types.

* src/base/ftbitmap.c: Updated.
(FT_Bitmap_Copy): Fix casts.

* src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
Updated.
2014-11-21 06:38:46 +01:00
Werner Lemberg df485774fb Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
* src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
for the pitch while copying data.
Correctly set pitch sign in target bitmap.
2014-11-21 06:38:46 +01:00
Werner Lemberg d6061212c3 Minor code improvement in `FT_Bitmap_Embolden'.
* src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
Fix thinko.
2014-11-21 06:38:01 +01:00
Werner Lemberg 8d05486eab Minor documentation improvements and whitespace. 2014-11-21 06:10:25 +01:00
Alexei Podtelezhnikov 237c0abfdc Trailing space. 2014-11-19 22:10:29 -05:00
Alexei Podtelezhnikov f841ad3ec2 * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table. 2014-11-19 21:19:06 -05:00
Werner Lemberg a67c43e1c8 Avoid compiler warnings on x86-64 for `FT_MulFix'.
`FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
but several inline implementations of it in `ftcalc.h' take
`FT_Int32' arguments.  This is causing compiler warnings on x86-64:
If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
inline implementation of this function, integer values are truncated
from 64bit to 32bit.

* include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
casts.
2014-11-19 06:46:23 +01:00
Werner Lemberg 54abd22891 [sfnt] Fix Savannah bug #43597.
* src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
bitmaps.
2014-11-15 09:05:22 +01:00
Werner Lemberg 257c270bd2 [sfnt] Fix Savannah bug #43591.
* src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
and multiplication overflow.
2014-11-12 21:42:13 +01:00
Werner Lemberg 677ddf4f1d [sfnt] Fix Savannah bug #43590.
* src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
Protect against addition overflow.
2014-11-12 21:26:44 +01:00
Werner Lemberg f46add1389 [sfnt] Fix Savannah bug #43589.
* src/sfnt/sfobjs.c (woff_open_font): Protect against addition
overflow.
2014-11-12 21:06:08 +01:00
Werner Lemberg 602040b111 [sfnt] Fix Savannah bug #43588.
* src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
against overflow in additions and multiplications.
2014-11-12 20:51:20 +01:00
Alexei Podtelezhnikov 2e73a1b4fd [base] CORDIC improvements.
The scaling between the hypotenuse and its CORDIC approximation is
based on regression analysis. The smaller padding for `theta' is
justifed by its maximum error of less than 6.

* src/base/fttrigon.c (ft_trig_downscale): Borrow code from
./ftcalc.c (ft_multo64), change linear intercept.
(ft_trig_pseudo_polarize): Decrease `theta' padding.
2014-11-09 23:22:43 -05:00
Werner Lemberg c3e9f02605 Minor documentation fixes. 2014-11-09 23:21:37 +01:00
Werner Lemberg 0e73d218bc * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
One more place to check whether `radius' is zero.

Problem reported by Marco Wertz <marco.wertz@gmx.de>.
2014-11-09 01:27:38 +01:00
Werner Lemberg 2c4832d309 Fix Savannah bug #43535.
* src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
character more than `strncmp'.
s/ft_strncmp/_bdf_strncmp/ everywhere.
2014-11-07 07:42:33 +01:00
Werner Lemberg ef1eba7518 Fix Savannah bug #43548.
* src/pcf/pcfread (pcf_get_encodings): Add sanity checks for row and
column values.
2014-11-06 23:25:05 +01:00
Werner Lemberg 0e2f5d518c Fix Savannah bug #43547.
* src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
values.
2014-11-06 22:32:46 +01:00
Werner Lemberg f49a100a6c * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak. 2014-11-06 13:30:28 +01:00
Infinality facfc79a16 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
The previous commit deteriorates rendering of DejaVu and similar
fonts; this gets compensated with this rule.
2014-11-03 07:24:59 +01:00
Werner Lemberg 706f752b5e * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
Before this patch, it was impossible to ever call DELTAP[123] in
subpixel hinting mode as described in the ClearType whitepaper; it
only worked if in `compatibility mode'.  However, compatibility mode
essentially disables SHPIX, completely ruining hinting of
ttfautohint output, for example.

We now follow the whitepaper more closely so that DELTAP[123]
instructions for touched points in the non-subpixel direction are
executed.
2014-11-03 07:20:57 +01:00
Alexei Podtelezhnikov 525d4876be [smooth] Improve code readability.
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2014-10-31 22:12:37 -04:00
Alexei Podtelezhnikov e1efe0a2fc [smooth] Reduce outline translations during rendering.
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
virtually by modifying cbox, actually translate outline if cumulative
shift is not zero.
2014-10-31 00:07:14 -04:00
Alexei Podtelezhnikov c7fd93565c [smooth] Fix Savannah bug #35604 (cont'd).
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
casts that became unnecessary after the variable type upgrades.
2014-10-30 22:43:01 -04:00
Alexei Podtelezhnikov 465ab99585 [smooth] Improve code readability.
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2014-10-29 23:45:23 -04:00
Alexei Podtelezhnikov 74916997de Unify hypotenuse approximations.
* include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
* include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
* src/smooth/ftgrays.c (gray_render_cubic): Use it here.
2014-10-29 22:24:24 -04:00
Werner Lemberg d8632a842e Improve comments, remove dead code. 2014-10-25 06:28:18 +02:00
Werner Lemberg fe15152ce7 [cff] Test valid darkening parameter macros in `ftoption.h'.
We no longer need an otherwise unused typedef that can cause a gcc
warning.
Problem reported by Alexei.

* src/cff/cffobjs.c (cff_driver_init): Use
`CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
(SET_DARKENING_PARAMETERS): Removed.
Compile time tests are now ...

* devel/ftoption.h, include/config/ftoption.h: ... here.
2014-10-25 05:56:59 +02:00
Alexei Podtelezhnikov aba0f498c3 Improve flat corner definition.
* include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
distance with the alpha max plus beta min algorithm.
* src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab metric.
2014-10-24 23:50:57 -04:00
Werner Lemberg d0422b23d3 Whitespace. 2014-10-25 05:20:08 +02:00
David Weiß dd8de1a008 [build] Improve property file for vc2010.
User-defined properties should be empty by default to prevent linker
failures.

* builds/windows/vc2010/freetype.user.props,
builds/windows/vc2010/freetype.vcxproj:
s/OptionsDirectory/UserOptionDirectory/.
Comment out all user options.
2014-10-23 20:01:48 +02:00
Werner Lemberg dd570e99ab [cff] Work around bug in preprocessor of MSVC 2010.
We have been hit by

  https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr

* devel/ftoption.h, include/config/ftoption.h: Replace
`CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
`CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.

* src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed.  We no
longer need double expansion.
(SET_DARKENING_PARAMETERS_0): Renamed to ...
(SET_DARKENING_PARAMETERS): ... this.
Update call.
2014-10-23 19:57:37 +02:00
Werner Lemberg cc7bb80bde [sbit] Minor fixes.
* src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
Accept overlay format also, but emit warning message in that case.
(tt_sbit_decoder_load_metrics): Add missing newline to error
message.
(tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
7.1) to the list of unsupported formats.
2014-10-20 08:35:50 +02:00
Alexei Podtelezhnikov 118e651b0b [truetype] Clean up bytecode rounding.
Zero distance does not have to be treated specially if you follow
specifications and check the sign as the very last step of rounding.

* src/truetype/ttinterp.c (Round_None, Round_To_Grid,
Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
macros when available, do not check for non-zero distance.
(Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
if sign changed.
2014-10-19 23:31:08 -04:00
David Weiß fede19ec1c [build] Add property file to vc2010 project.
This simplifies custom build configurations, especially for
automated build environments.

* builds/windows/vc2010/freetype.user.props: New configuration file.

* builds/windows/vc2010/freetype.vcxproj: Include
`freetype.user.props' and use its data fields.

* builds/windows/vc2010/index.html: Updated.
2014-10-18 16:44:44 +02:00
Alexei Podtelezhnikov d4aabda388 [truetype] Unwrap engine compensation settings.
* src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
2014-10-18 10:10:04 -04:00