Commit Graph

4668 Commits

Author SHA1 Message Date
Alexei Podtelezhnikov a8bc49e141 [truetype] Optimize DELTAP and DELTAC.
* src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
calculations outside of the loop.
2014-08-24 22:14:01 -04:00
Alexei Podtelezhnikov 5bb5750f98 Minor. 2014-08-21 23:44:44 -04:00
Alexei Podtelezhnikov 986885965a Fix Savannah bug #43033.
* include/config/ftconfig.h, builds/unix/ftconfig.in,
builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
64-bit type is `long'.
2014-08-21 23:28:52 -04:00
Werner Lemberg 70961e5772 Minor. 2014-08-20 16:19:32 +02:00
Alexei Podtelezhnikov 8fd87d4e69 [base] Small optimization of `FT_MulFix'.
* src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
32-bit calculations.
2014-08-20 00:57:22 -04:00
Alexei Podtelezhnikov f09326a1a6 [base] Use unsigned calculation in `FT_MulDiv'.
* src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
2014-08-20 00:08:38 -04:00
Alexei Podtelezhnikov 382f3155f6 [base] Remove truncation in `FT_DivFix'.
* src/base/ftcalc.c (FT_DivFix): Updated.
2014-08-18 23:16:15 -04:00
Alexei Podtelezhnikov 5ef2023c45 Minor refactoring.
* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
2014-08-14 23:21:46 -04:00
Alexei Podtelezhnikov c7022467d2 Turn FT_MSB into a macro when using gcc builtins.
* src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
2014-08-14 23:01:01 -04:00
Alexei Podtelezhnikov 87e56b043a Fix comment and whitespace. 2014-08-14 22:41:06 -04:00
Alexei Podtelezhnikov f8efbcfb8e [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
* src/base/ftbbox.c (BBox_Cubic_Check): Update.
(update_cubic_max): Repalce with...
(cubic_peak): ... this, which now handles upscaling.
2014-08-12 23:22:17 -04:00
Alexei Podtelezhnikov d2935e2969 * src/base/fttrigon.c (ft_trig_prenorm): Comment on undefined behavior. 2014-08-12 00:41:04 -04:00
Alexei Podtelezhnikov 28018d42a8 [base] Handle collapsed outlines to avoid undefined FT_MSB.
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
2014-08-12 00:26:16 -04:00
Alexei Podtelezhnikov 4728993fa8 [base] Restore FT_MulFix inlining.
* include/freetype.h (FT_MulFix): Unconditionally defined.

* src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...

* include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
which conditionally replaces the function with an inline version
through the macro.
2014-08-11 23:39:34 -04:00
Alexei Podtelezhnikov 90be4b6377 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor. 2014-08-08 22:27:10 -04:00
Werner Lemberg e1394d5675 Minor documentation improvement. 2014-08-04 07:35:13 +02:00
Werner Lemberg d17cabf57d [cff] Fix typo.
* src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
offsets in third quadrant.

Reported by maks <maksqwe1@ukr.net>.
2014-07-26 09:53:50 +09:00
Werner Lemberg 4e75413334 Fix Savannah bug #42788.
* src/pfr/pfrobjs.c: Include `ftcalc.h'.
2014-07-17 17:34:49 +09:00
Werner Lemberg cbbf26b705 Whitespace. 2014-07-17 17:27:12 +09:00
Werner Lemberg 3939c200f3 Minor. 2014-07-17 17:24:22 +09:00
Alexei Podtelezhnikov c0a6f20a4b Replace `ft_highpow2' function.
* src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
`ft_highpow2'.

* src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
it.
2014-07-16 22:05:56 -04:00
Alexei Podtelezhnikov 177982e933 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins. 2014-07-15 23:54:34 -04:00
Alexei Podtelezhnikov 71330ceb50 [base] Move assembler code back in the source file.
FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.

* include/config/ftconfig.h, builds/unix/ftconfig.in,
builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...

* src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
2014-07-15 23:30:45 -04:00
Alexei Podtelezhnikov 1183cd4e17 [base] Further clean up color bitmap conversion.
* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
2014-07-14 22:30:55 -04:00
Werner Lemberg 441b3f3898 [truetype] Improve handling of buggy `prep' tables.
In case of an error in the `prep' table, no longer try to execute it
again and again.  This makes FreeType handle endless loops in buggy
fonts much faster.

* src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
and `cvt_ready' are now negative if not initialized yet, otherwise
they indicate the error code of the last run.

* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
tt_size_done_bytecode, tt_size_init_bytecode,
tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
Updated.

* src/truetype/ttgload.c (tt_loader_init): Updated.
* src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
and `prep' only if we are in the `glyf' table.
2014-07-13 02:28:14 +09:00
Werner Lemberg e98e2bc1aa * builds/vms/ftconfig.h: Synchronize.
Problem reported by Alexei.
2014-07-12 16:37:39 +09:00
Alexei Podtelezhnikov 35576bf067 [base] Clean up bitmap conversion.
* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
appropriate FT_DivFix and remove superfluous upscaling.
2014-07-11 22:40:34 -04:00
Alexei Podtelezhnikov 2f52df4a0d [base] Improve comment. 2014-07-05 22:29:26 -04:00
Alexei Podtelezhnikov ceab95a649 [base] Small optimization of the ancient code.
* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
condition for direct 32-bit calculations.
2014-07-04 23:01:32 -04:00
Werner Lemberg 3897556a13 Fix Apple standard glyph names.
* src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
`tools/glnames.py'

Problem reported by Adam Twardoch <adam@fontlab.com>.
2014-06-27 06:55:56 +02:00
Werner Lemberg ccf60ad445 Formatting. 2014-06-25 08:58:14 +02:00
Werner Lemberg 231171fc3a Partially revert commit from 2014-06-13.
* src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
declaration of `p_first' and `p_last' out of the loop.
2014-06-17 09:14:32 +02:00
Werner Lemberg cf2347c962 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
This simplifies cross-compiling.
2014-06-17 09:01:04 +02:00
Werner Lemberg d708658c4a And another warning from Wojciech. 2014-06-13 15:56:11 +02:00
Werner Lemberg e5c0fff5af Fix more compiler warnings.
Reported by Wojciech Mamrak <wmamrak@gmail.com>.

* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
Make integer constant unsigned.

* src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
<TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
(tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
casts.
2014-06-13 14:01:20 +02:00
Werner Lemberg 6497b9c5a5 Fix compiler warnings.
Reported by Wojciech Mamrak <wmamrak@gmail.com>.

* src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
`unsigned' issues.

* src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
happy.

* src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
for `fir'.
Fix `signed' vs. `unsigned' issues.

* src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
(WRITE_USHORT, WRITE_ULONG): Add proper casts.

* src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.

* src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
and `B2'.
2014-06-13 09:28:00 +02:00
Werner Lemberg 099489feff Update CHANGES file. 2014-06-10 06:51:52 +02:00
Alexey Petruchik 02f2170432 [cmake] Add option to build OS X framework.
* CMakeLists.txt: Update accordingly.

* builds/mac/freetype-Info.plist: New file.
2014-05-16 08:09:43 +02:00
Werner Lemberg d7f4594317 [autofit] Fix comment. 2014-05-13 15:33:11 +02:00
Pavel Koshevoy 15da66a630 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'. 2014-05-13 07:33:48 +02:00
Werner Lemberg faa21472b7 [autofit] Fix variable initializations.
* src/autofit/afhints.c (af_glyph_hints_reload): Assign default
values to `in_dir' and `out_dir' for all points.
2014-05-11 12:44:00 +02:00
Werner Lemberg 07e7b8affe [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
Problem reported by Ralf S. Engelschall <rse@engelschall.com>.

* src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
finding first non-near point.
Properly initialize non-near point deltas.
2014-05-11 08:00:25 +02:00
Werner Lemberg 5f18a0c35d Formatting. 2014-05-01 17:26:52 +02:00
Werner Lemberg c576bb0d21 [autofit] Add blue-zone support for Devanagari.
This essentially moves the Devanagari script from the `Indic' hinter
to the `Latin' hinter.  Thanks to Girish Dalvi
<girish.dalvi@gmail.com> for guidance with blue zone characters!

* src/autofit/afblue.dat: Add blue zone data for Devanagari.

* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

* src/autofit/afscript.h: Add Devanagari standard characters and
move data out of AF_CONFIG_OPTION_INDIC block.

* src/autofit/afranges.c: Move Devanagari data out of
AF_CONFIG_OPTION_INDIC block.
Move U+20B9, (new) Rupee sign, from Latin to Devanagari.

* src/autofit/afstyles.h: Update Devanagari data; in particular, use
AF_WRITING_SYSTEM_LATIN.
2014-05-01 17:24:19 +02:00
Werner Lemberg 63bef9a588 [autofit] Fix handling of neutral blue zones in stems.
* src/autofit/afhints.h (AF_Edge_Flags): New value
`AF_EDGE_NEUTRAL'.

* src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
neutral blue zones with AF_EDGE_NEUTRAL.
(af_latin_hint_edges): Skip neutral blue zones if necessary.
2014-05-01 07:16:05 +02:00
Werner Lemberg ccfc4b4c4e [autofit] Introduce neutral blue zones to the latin module.
Such blue zones match either the top or the bottom of a contour.  We
need them for scripts where accent-like elements directly touch the
base character (for example, some vowel signs in Devanagari, cf.
U+0913 or U+0914).

* src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
property.

* src/autofit/afblue.h: Regenerated.

* src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
(AF_LATIN_BLUE_NEUTRAL): New enumeration value.

* src/autofit/aflatin.c (af_latin_metrics_init_blues,
af_latin_hints_compute_blue_edges): Handle neutral blue zones.
2014-04-28 21:13:14 +02:00
Werner Lemberg abb3fcac85 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
Using input glyph coverage data is simply wrong.

Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
Mantas Mikulėnas <grawity@gmail.com>.
2014-04-25 22:13:32 +02:00
Werner Lemberg 426f0e0453 Minor. 2014-04-24 07:13:31 +02:00
Werner Lemberg f193637f63 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
This spot has been missed while introducing support for various
drop-out modes years ago (including no drop-out mode, which this
commit fixes).

Problem reported by Patrick Thomas <pthomas505@gmail.com>.
2014-04-23 08:22:33 +02:00
Werner Lemberg d9b4470e39 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/. 2014-04-22 07:33:07 +02:00