|
06474c3e
|
2013-04-13T18:53:28
|
|
[cff] Add a new Type 2 interpreter and hinter.
This work, written by Dave Arnold <darnold@adobe.com> and fully
integrated into FreeType by me, is a donation by Adobe in
collaboration with Google. It is vastly superior to the old CFF
engine, and it will replace it soon. Right now, it is still off by
default, and you have to explicitly select it using the new
`hinting-engine' property of the cff driver.
For convenience, (most of) the new files are committed separately.
* include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro.
* include/freetype/ftcffdrv.h: New file to access CFF driver
properties.
* include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error
code.
* include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints',
and `cf2interp'.
* src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'.
* src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine'
and `no_stem_darkening'.
* src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'.
* src/cff/cff.c: Include new files.
* src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
`hinting-engine' and `no-stem-darkening' properties (only the Adobe
engine listens to them).
* src/cff/cffgload.c: Include `cf2ft.h'.
(cff_decoder_prepare): Initialize `current_subfont'.
(cff_build_add_point): Handle Adobe engine which uses 16.16
coordinates.
(cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING
separately.
Choose rendering engine based on `hinting_engine' property.
* src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe
engine.
* src/cff/cffobjs.c: Include FT_CFF_DRIVER_H.
(cff_driver_init): Set default property values.
* src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files.
* src/cff/cf2*.*: New files, containing the Adobe engine.
|
|
283c8ed8
|
2013-04-13T15:02:31
|
|
[cff] New files for Adobe's Type 2 interpreter and hinting engine.
|
|
831dac88
|
2013-04-12T21:13:49
|
|
[cff] Minor code administration issues.
* src/cff/cffgload.c (check_points): Rename to...
(cff_check_points): ...this and make it FT_LOCAL.
(cff_builder_add_point, cff_builder_add_point1,
cff_builder_start_point, cff_builder_close_contour,
cff_lookup_glyph_by_stdcharcode, cff_get_glyph_data,
cff_free_glyph_data): Make them FT_LOCAL.
* src/cff/cffgload.h: Updated.
|
|
2dc26621
|
2013-04-12T20:11:38
|
|
Add output bitmap checksums.
Use `FT2_DEBUG=bitmap:3' for tracing.
* src/base/md5.c, src/base/md5.h: New files, taken from
http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
* include/freetype/internal/fttrace.h: Add `bitmap'.
* src/base/ftobjs.c [FT_DEBUG_LEVEL_TRACE]: Include `md5.c'
(FT_Render_Glyph_Internal) [FT_DEBUG_LEVEL_TRACE]: For tracing,
convert resulting bitmap to a uniform format and compute a checksum.
Use `bitmap' category for the tracing message.
* src/base/rules.mk (BASE_H): Updated.
* docs/LICENSE.TXT: Updated.
|
|
fc185ef4
|
2013-04-12T19:48:06
|
|
Add framework for CFF properties.
* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC7):
New macro.
* src/cff/cffdrivr.c: Include FT_SERVICE_PROPERTIES_H.
(cff_property_set, cff_property_get): New function, still empty.
Define `cff_service_properties' service.
Update `cff_services'.
* src/cff/cffpic.h: Include FT_SERVICE_PROPERTIES_H.
(CFF_SERVICE_PROPERTIES_GET): New macro.
CffModulePIC: Add `cff_service_properties'.
|
|
04e547bd
|
2013-04-03T07:37:56
|
|
Fix Savannah bug #38589.
* src/bdf/bdflib.c (_bdf_readstream): Thinko.
|
|
762bf19a
|
2013-03-24T08:37:12
|
|
Typo.
|
|
eed83061
|
2013-03-23T14:25:43
|
|
Whitespace.
|
|
fbb0773c
|
2013-03-23T14:06:54
|
|
[autofit] Minor.
* src/autofit/afmodule.c (af_property_set): Typo.
(af_autofitter_init, af_autofitter_done): Use cast.
|
|
b114b7c0
|
2013-03-17T22:42:07
|
|
Fix Savannah bug #38538.
* builds/amiga/src/base/ftdebug.c, builds/win32/ftdebug.c,
builds/wince/ftdebug.c (FT_Throw): Add function.
|
|
5ea06ce0
|
2013-03-17T08:14:46
|
|
Whitespace.
|
|
706fc833
|
2013-03-17T08:09:17
|
|
Remove dead code.
* src/raster/rastpic.c (ft_raster1_renderer_class_pic_init)
src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init): Do it.
|
|
8b4459b8
|
2013-03-17T07:44:35
|
|
* src/pshinter/pshpic.h (GET_PIC): Use correct container.
|
|
89f50647
|
2013-03-14T17:50:49
|
|
*/*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate.
FT_Err_XXX and friends are no longer directly used in the source
code.
|
|
e3c93015
|
2013-03-14T11:21:17
|
|
*/*: Use FT_Err_Ok only.
This is a purely mechanical conversion.
|
|
059bc335
|
2013-03-14T10:27:35
|
|
*/*: Use `FT_THROW'.
This is essentially a mechanical conversion, adding inclusion of
`FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for
stand-alone compiling modes of the rasterizer modules.
To convert the remaining occurrences of FT_Err_XXX and friends it is
necessary to rewrite the code. Note, however, that it doesn't harm
if some cases are not handled since FT_THROW is a no-op.
|
|
c58ce3be
|
2013-03-13T11:06:39
|
|
Introduce `FT_THROW' macro.
The idea is to replace code like
return FT_Err_Foo_Bar;
or
return CFF_Err_Foo_Bar;
with
return FT_THROW( Foo_Bar );
The FT_THROW macro has two functions:
. It hides the module specific prefix.
. In debug mode, it calls the empty function `FT_Throw' which can
be thus used to set a breakpoint.
* include/freetype/internal/ftdebug.h (FT_THROW): New macro.
(FT_Throw): New prototype.
* src/base/ftdebug.c (FT_Throw): New function.
|
|
dbc6e3f1
|
2013-03-12T11:42:20
|
|
Remove `FT_KEEP_ERR_PREFIX'.
The idea is to always have FT_ERR_PREFIX available internally.
* include/freetype/fterrors.h: Use FT2_BUILD_LIBRARY to guard
undefinition of FT_ERR_PREFIX
* src/gxvalid/gxverror.h, src/otvalid/otverror.h,
src/sfnt/sferrors.h: Updated.
|
|
c879f245
|
2013-03-11T10:11:57
|
|
[gxvalid] Fix module error.
* src/gxvalid/gxverror.h (FT_ERR_BASE): Define as
FT_Mod_Err_GXvalid.
* include/freetype/ftmoderr.h: Add module error for `GXvalid'.
|
|
d6bc524b
|
2013-03-11T09:50:53
|
|
Always use module related error codes.
* src/cff/cffobjs.c (cff_face_init), src/type1/t1objs.c
(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Use
`FT_ERROR_BASE'.
* src/type1/t1load.c (parse_encoding): Use
T1_Err_Unknown_File_Format.
|
|
2d882540
|
2013-03-08T21:23:45
|
|
[cff] Set `linear{Hori,Vert}Advance' for embedded bitmaps also.
* src/cff/cffgload.c (cff_slot_load): Implement it.
|
|
2ba18ba1
|
2013-02-22T23:58:57
|
|
[base] Fix commit ab02d9e8.
* src/base/ftbbox.c (BBox_Cubic_Check): Change scaling to msb of 22.
|
|
f9434dba
|
2013-02-19T21:27:18
|
|
[base] New bisecting BBox_Cubic_Check (disabled).
* src/base/ftbbox.c (BBox_Cubic_Check): New bisecting algorithm
for extremum search built around simple condition that defines
which half contains the extremum.
|
|
0e536676
|
2013-02-18T20:41:56
|
|
[tools] Update BBox testing tool.
* src/tools/test_bbox.c: Add another cubic outline with exact BBox.
(REPEAT): Increase the number of benchmarking cycles.
(profile_outline): Tweak output formatting.
|
|
a2c7eb18
|
2013-02-07T19:49:12
|
|
* src/truetype/ttobjs.c (tt_size_run_prep): Reset more GS variables.
BTW, Greg agrees that the OpenType specification is missing the list
of GS variables which will always be reset to the default values
after the `prep' table has been executed.
|
|
bfcc375b
|
2013-02-06T08:47:29
|
|
* src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points.
Up to now, we simply took a snapshot of the Graphics State after the
`prep' table has been executed, and right before a glyph's bytecode
was run it got reloaded. However, as Greg Hitchcock has told us in
private communication, reference points get reset to zero in the MS
rasterizer and we follow in due course. While reasonable, this is
undocumented behaviour.
Most notably, this fixes the rendering of Arial's `x' glyph in
subpixel hinting mode.
|
|
00dfa330
|
2013-02-05T19:23:16
|
|
[truetype] A better fix for Savannah bug #38211.
* src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to
MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock).
|
|
0eb6316f
|
2013-02-01T20:24:00
|
|
[pcf] Streamline parsing of PCF encoding table.
* src/pcf/pcfread.c (pcf_get_encodings): Use simpler double for-loop.
Reallocate array instead of using temporary storage.
|
|
30f1e6ca
|
2013-02-01T14:50:08
|
|
Fix Savannah bug #38221.
This complements commit 83c0ebab.
* src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with
`TT_USE_BYTECODE_INTERPRETER'.
|
|
40633205
|
2013-02-01T12:55:44
|
|
[truetype] Fix Savannah bug #38211.
* src/truetype/ttinterp.c (Ins_IP): Make FreeType behave identical
to other interpreters if rp1 == rp2 (which is invalid).
|
|
fba917d0
|
2013-01-30T20:14:18
|
|
Improve comments.
|
|
d56e544d
|
2013-01-28T22:29:51
|
|
Add an important comment.
Thanks to Hin-Tak Leung for the analysis.
|
|
6b9034f0
|
2013-01-28T13:56:23
|
|
Formatting, comment improvements.
|
|
ab02d9e8
|
2013-01-28T06:35:19
|
|
[base] Small optimization of BBox calculation.
* src/base/ftbbox.c (BBox_Cubic_Check): Use FT_MSB function in
scaling algorithm.
|
|
c574d72c
|
2013-01-26T17:40:44
|
|
[truetype] Minor formatting fix.
|
|
97ba5109
|
2013-01-26T17:05:40
|
|
[truetype] Fix rasterizer_version logic in sph.
|
|
a5fe3595
|
2013-01-26T12:29:52
|
|
[truetype] Align more to ClearType whitepaper for sph.
|
|
610ee58e
|
2013-01-25T23:33:00
|
|
[base] Fix broken emboldening at small sizes.
* src/base/ftoutln.c (FT_Outline_EmboldenXY): Do not attempt to
normalize zero-length vectors.
|
|
f41ee054
|
2013-01-25T16:41:24
|
|
Fix Savannah bug #38167.
This fixes commit 83c0ebab from 2012-06-27.
* src/truetype/ttinterp.h:
s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
|
|
ba931be2
|
2013-01-25T00:57:09
|
|
[sfnt] Fix broken pointer overflow checks.
Many compilers such as gcc and clang optimize away pointer overflow
checks `p + n < p', because pointer overflow is undefined behavior.
Use a safe form `n > p_limit - p' instead.
Also avoid possible integer overflow issues, for example, using
`num_glyphs > ( p_limit - p ) / 2' rather than `num_glyphs * 2'
given a large `num_glyphs'.
* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Implement it.
|
|
817caa9f
|
2013-01-25T00:40:56
|
|
Fix `make multi'
* src/base/ftoutln.c, src/base/fttrigon.c: Include
FT_INTERNAL_CALC_H.
|
|
72447195
|
2013-01-25T00:36:35
|
|
[truetype] Fix C++ compilation.
* src/truetype/ttsubpix.h: Updated.
(SPH_X_SCALING_RULES_SIZE): Moved and renamed to...
* src/truetype/ttsubpix.c (X_SCALING_RULES_SIZE): This.
(sph_X_SCALING_Rules): Removed.
(scale_test_tweak): Make function static.
(sph_test_tweak_x_scaling): New function.
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Updated.
|
|
4cd5fd46
|
2013-01-24T13:33:06
|
|
Remove trailing whitespace.
|
|
e9f330ad
|
2013-01-24T09:12:56
|
|
[base] Make `FT_Hypot' really internal.
* include/freetype/fttrigon.h (FT_Hypot): Move to...
* include/freetype/internal/ftcalc.h: This file.
* src/base/fttrigon.c (FT_Hypot): Move to...
* src/base/ftcalc.c: This file.
Include FT_TRIGONOMETRY_H.
* src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H.
|
|
87dc86d6
|
2013-01-24T08:39:43
|
|
[truetype] Revert change from 2013-01-22.
FreeType's `height' value is the baseline-to-baseline distance...
* src/truetype/ttobjs.c (tt_size_reset): Undo.
|
|
b6de8e66
|
2013-01-23T23:31:41
|
|
[base, truetype] New internal FT_Hypot function.
* include/freetype/fttrigon.h (FT_Hypot): Declare it.
* src/base/fttrigon.c (FT_Hypot): Define it.
* src/truetype/ttgload.c (TT_Process_Composite_Component): Use it
instead of explicit expressions.
* src/truetype/ttinterp.c (Current_Ratio, Normalize): Use it instead
of TT_VecLen.
(TT_VecLen): Removed.
|
|
dcc0d070
|
2013-01-23T23:09:59
|
|
Typo.
|
|
da11e5e7
|
2013-01-23T20:11:40
|
|
[base] Fix integer overflow.
* src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and
outgoing vectors and use fixed point arithmetic.
|
|
e1a2ac19
|
2013-01-23T19:51:28
|
|
[base] Fix integer overflow.
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Scale the
coordinates down to avoid overflow.
|
|
869fb8c4
|
2013-01-23T19:43:28
|
|
[base] Split out MSB function.
* src/base/fttrigon.c (ft_trig_prenorm): Borrow from here.
* include/freetype/internal/ftcalc.h (FT_MSB): Declare here.
* src/base/ftcalc.c (FT_MSB): Define here.
|
|
e0469372
|
2013-01-22T11:07:07
|
|
[truetype] Fix font height.
* src/truetype/ttobjs.c (tt_size_reset): The Windows rendering
engine uses rounded values of the ascender and descender to compute
the TrueType font height.
|
|
71900980
|
2013-01-16T20:08:35
|
|
Minor.
|
|
cd3f871e
|
2013-01-16T19:56:08
|
|
[sfnt] Fix optimized sbit loader.
It was not taking bit_depth into consideration when blitting!
* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_byte_aligned,
* tt_sbit_decoder_load_bit_aligned): Handle bit
depth.
|
|
3a406127
|
2013-01-16T19:48:31
|
|
[truetype] Improve sub-pixel code.
This patches fixes many issues with the ttsubpix implementation.
1. Data tables are defined, instead of declared, in the header, and
thus copied into each source file that includes it.
2. These tables were defined as global, mutable, visible variables,
and thus costing private RAM to every process that loads the
library (> 50 KB / process, this is huge!).
Additionally, this also made the library export the symbols
completely needlessly.
3. Missing `sph_' and `SPH_' prefixes to some of the definitions.
Note that this doesn't try to fix the incredibly inefficient storage
format for the data tables used by the code. This one will require
another pass in the future.
* src/truetype/ttinterp.h (MAX_NAME_SIZE, MAX_CLASS_MEMBERS):
Renamed to...
(SPH_MAX_NAME_SIZE, SPH_MAX_CLASS_MEMBERS): This.
Update all users.
(SPH_TweakRule, SPH_ScaleRule): Decorate with `const' where
appropriate.
(Font_Class): Rename to...
(SPH_Font_Class): This. Decorate with `const' where appropriate.
* src/truetype/ttsubpix.h (scale_test_tweak, sph_test_tweak):
Decorate arguments with `const' where appropriate.
Move font tweaking tables to...
* src/truetype/ttsubpic.c: This file and decorate them with `static'
and `const' where appropriate.
(X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to...
(spu_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This.
Update all users.
|
|
0e0fdc5d
|
2013-01-12T23:05:55
|
|
[truetype] Improve accuracy of normalization of short vectors.
Unit vector components are stored as 2.14 fixed-point numbers. In
order to calculate all 14 bits accurately, a short vector to be
normalized has to be upscaled to at least 14 bits before its length
is calculated. This has been safe since accurate CORDIC algorithms
were adopted.
* src/truetype/ttinterp.c (Normalize): Scale short vectors by 0x4000.
|
|
081aba39
|
2013-01-12T22:36:37
|
|
[truetype] Kill very old vector normalization hacks.
Back in the days, vector length calculations were not very accurate
and the vector normalization function, Normalize, had to meticulously
correct the errors for long vectors [commit b7ef2b096867]. It was no
longer necessary after accurate CORDIC algorithms were adopted, but
the code remained. It is time to kill it.
* src/truetype/ttinterp.c (Normalize): Remove error compensation.
(TT_VecLen): Remove any mention of old less accurate implementation.
|
|
a692170a
|
2013-01-12T19:17:05
|
|
Call it fixed-point.
|
|
53c0cb59
|
2013-01-11T08:29:22
|
|
Typos, whitespace.
|
|
ad9d5c97
|
2013-01-10T22:29:07
|
|
[base] Update the overflow protection bit.
The recent optimizations of CORDIC iterations drastically reduce
the expansion factor. The vector components with MSB of 29 are now
safe from overflow.
* src/base/fttrigon.c (FT_TRIG_SAFE_MSB): New macro.
(ft_trig_prenorm): Use it and remove dead code.
|
|
4412e74d
|
2013-01-10T20:16:20
|
|
Minor comment improvements.
|
|
6b83a367
|
2013-01-09T00:25:32
|
|
[base, pshinter] Use FT_ABS, FT_MIN, and FT_MAX for readability.
* src/base/ftbbox.c: Updated.
* src/base/ftobjs.c: Updated.
* src/base/fttrigon.c: Updated.
* src/pshinter/pshalgo.c: Updated.
* src/pshinter/pshrec.c: Updated.
|
|
09dbb059
|
2013-01-08T23:29:44
|
|
[base] Clean up trigonometric core.
* src/base/fttrigon.c: Document the algorithm in a large comment.
(FT_TRIG_COSCALE): Remove macro.
(FT_Tan: Use `FT_TRIG_SCALE' instead.
(FT_Cos, FT_Vector_Unit): Ditto and round the return values.
|
|
5dd9657f
|
2013-01-02T23:45:14
|
|
[base] Use rounding in CORDIC iterations.
* src/base/fttrigon.c (ft_trig_pseudo_rotate,
ft_trig_pseudo_polarize): Improve accuracy by rounding.
|
|
b4ac30b0
|
2013-01-02T22:21:37
|
|
[base] Reduce trigonometric algorithms.
After we get within 45 degrees by means of true 90-degree rotations,
we can remove initial 45-degree CORDIC iteration and start from
atan(1/2) pseudorotation, reducing expansion factor thereby.
* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros.
(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update.
* src/tools/cordic.py: Bring up to date with trigonometric core.
* docs/CHANGES: Old typo.
|
|
50e634ab
|
2013-01-02T20:31:56
|
|
* src/pshinter/pshalgo.h: Remove unused code.
|
|
7d6dc907
|
2012-12-27T01:08:24
|
|
* src/truetype/ttgload.c (tt_loader_init): Add more tracing.
|
|
2ef0a198
|
2012-12-23T21:14:37
|
|
[type1] Fix handling of /FontBBox in MM fonts.
Problem reported by Del Merritt <del@alum.mit.edu>
If we have
/FontBBox { { 11 12 13 14 15 16 17 18 }
{ 21 22 23 24 25 26 27 28 }
{ 31 32 33 34 35 36 37 38 }
{ 41 42 43 44 45 46 47 48 } }
in the /Blend dictionary, then the first BBox is { 11 21 31 41 },
the second { 12 22 32 42 }, etc.
* include/freetype/internal/psaux.h (T1_FieldType): Add
`T1_FIELD_TYPE_MM_BBOX' (for temporary use).
* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
Implement it.
|
|
f44f3f0e
|
2012-12-23T18:30:34
|
|
Formatting, minor internal documentation improvement.
|
|
cbf3fb39
|
2012-12-21T14:20:25
|
|
* src/tools/cordic.py: Bring up to date with trigonometric core.
|
|
3ffb822e
|
2012-12-21T16:45:27
|
|
Check parameters of `FT_Outline_New'.
Problem reported by Robin Watts <robin.watts@artifex.com>.
* src/base/ftoutln.c (FT_Outline_New_Internal): Ensure that
`numContours' and `numPoints' fit into FT_Outline's `n_points' and
`n_contours', respectively.
|
|
d7383b7b
|
2012-12-20T01:03:22
|
|
[base] Improve trigonometric core.
FreeType used to rely on a 24-step iteration CORDIC algorithm to
calculate trigonometric functions and rotate vectors. It turns out
that once the vector is in the right half-plane, the initial rotation
by 63 degrees is not necessary. The algorithm is perfectly capable
to converge to any angle starting from the second 45 degree rotation.
This patch removes the first rotation and makes it a 23-step CORDIC
algorithm.
* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macro
values.
(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Remove initial
rotation.
|
|
768590a9
|
2012-12-20T06:08:23
|
|
* src/base/ftobjs.c (ft_property_do): Fix compiler warning.
|
|
df018924
|
2012-12-20T06:07:33
|
|
Formatting.
|
|
32fc416f
|
2012-12-19T23:05:32
|
|
* src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters.
|
|
06174dbb
|
2012-12-19T22:46:27
|
|
[base] Clean up trigonometric core.
* src/base/fttrrigon.c (ft_trig_pseudo_polarize): Align algorithm
with `ft_trig_pseudo_rotate'.
|
|
1749ae20
|
2012-12-18T07:23:09
|
|
[truetype] Minor performance enhancement.
|
|
94b79e74
|
2012-12-17T19:17:30
|
|
[truetype] Remove unusued code and variables.
|
|
a9f6f85e
|
2012-12-17T09:08:09
|
|
Various compiler warning fixes.
* include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Use
`logical not' operator instead of negation. The idea is that `~'
returns exactly the data type enforced by the cast to a pointer (be
it 32bit or 64bit or whatever), while a negative integer has not
this flexibility.
* src/cache/ftccmap.c (FTC_CMAP_UNKNOWN): Ditto.
* src/truetype/ttgxvar.c (ALL_POINTS, TT_Get_MM_Var): Ditto.
* src/type/t1load.c (T1_Get_MM_Var): Ditto.
(parse_blend_axis_types): Use cast.
* src/bdf/bdflib.c (_bdf_readstream): Use cast.
|
|
461cc936
|
2012-12-16T20:02:42
|
|
Merge branch 'master' of ssh://git.sv.nongnu.org/srv/git/freetype/freetype2
Conflicts:
src/truetype/ttinterp.c
|
|
71f242c2
|
2012-12-16T19:52:01
|
|
[truetype ] Remove unusued code. Add minor fixes.
|
|
e2fa4a6c
|
2012-12-16T20:19:56
|
|
[truetype] Remove dead code.
|
|
309b8b31
|
2012-12-16T19:08:36
|
|
[sfnt] Fix Savannah bug #37936.
* src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak.
|
|
8ac5c5c8
|
2012-12-15T23:33:55
|
|
[base] Fix 11-year old bug.
Since the initial commit (ebe85f59) the value of FT_TRIG_SCALE has
always been slightly less than the correct value, which has been
given in the comment as a hexadecimal. As a result, vector lengths
were underestimated and rotated vectors were shortened.
|
|
7f2e4f4f
|
2012-12-15T09:39:41
|
|
[bdf] Fix Savannah bug #37907.
* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize
negative second parameter of `ENCODING' field also.
|
|
07bdb6e2
|
2012-12-15T02:02:23
|
|
[bdf] Fix Savannah bug #37906.
* src/bdf/bdflib.c (_bdf_parse_glyphs): Use correct array size for
checking `glyph_enc'.
|
|
9b6b5754
|
2012-12-15T01:34:41
|
|
[bdf] Fix Savannah bug #37905.
* src/bdf/bdflib.c (_bdf_parse_start): Reset `props_size' to zero in
case of allocation error; this value gets used in a loop in
`bdf_free_font'.
|
|
65d65721
|
2012-12-10T06:59:29
|
|
[truetype] Scale F_dot_P down.
The dot product between freeVector and projVector or cosine of
the angle between these FT_F2Dot14 unit vectors used to be scaled up
by 4 and routinely occupied 32 bits in an FT_Long field F_dot_P.
This patch scales the value down by 2^14 instead, which simplifies
its use throughout the bytecode interpreter.
This does not lead to the loss of precision because the lower bits
are unreliable anyway. Consider two unit vectors (1,0) and (.6,.8)
for which the true value of F_dot_P is .6 * 0x40000000 = 0x26666666.
These vectors are stored as (0x4000,0) and (0x2666,0x3333) after
rounding and F_dot_P is assigned 0x26660000. The lower bits were
already lost while rounding the unit vector components.
Besides code simplification, this change can lead to better
performance when FT_MulDiv with the scaled-down F_dot_P is less
likely to use the costly 64-bit path. We are not changing the type
of F_dot_P to FT_F2Dot14 at this point.
* src/truetype/ttinterp.c (Compute_Funcs): Scale F_dot_P down by 14
bits and modify its use accordingly.
(Direct_Move, Direct_Move_Orig, Compute_Point_Displacement): Modify
the use of F_dot_P field.
* src/truetype/ttobjs.c (tt_size_run_fpgm): Change arbitrary
assignment of F_dot_P to its theoretical maximum in case we decide
to scale back its type later.
|
|
13e87e04
|
2012-12-09T19:48:22
|
|
Formatting.
|
|
06d6916c
|
2012-12-09T00:07:51
|
|
[type1] Another fix for 2012-09-17 commit.
* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set
`limit' value.
|
|
cece4d3b
|
2012-12-06T20:23:38
|
|
[truetype] Tweak the previous commit.
* src/truetype/ttinterp.c (Current_Ratio): Put unit vector
components as the second TT_MulFix14 arguments. This is required
on 16-bit systems.
|
|
5ad05f97
|
2012-12-06T00:27:20
|
|
[truetype] Microoptimizations in bytecode interpreter.
* src/truetype/ttinterp.c (TT_DivFix14): New macro.
(Normalize): Use it here.
(Current_Ratio): Use TT_MulFix14 instead of FT_MulDiv.
(Ins_SHPIX): Cancel out two TT_MulFix14 calls.
|
|
b50088bd
|
2012-12-05T23:05:47
|
|
[truetype] Cosmetic improvement in bytecode interpreter.
* src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv,
FT_MulFix, and FT_DivFix instead of macros.
|
|
54d43a39
|
2012-12-05T11:14:41
|
|
[pshinter] Clamp BlueScale value.
This is Savannah bug #37856.
* src/pshinter/pshglob.c (psh_calc_max_height): New function.
(psh_globals_new): Use it to limit BlueScale value to
`1 / max_of_blue_zone_heights'.
|
|
4d3a1e6c
|
2012-12-05T06:32:57
|
|
Formatting.
|
|
4ae9cbb0
|
2012-12-01T23:36:02
|
|
[truetype, type1] Revise the use of FT_MulDiv.
* src/truetype/ttgxvar.c: Updated.
* src/truetype/ttobjs.c: Updated.
* src/type1/t1load.c: Updated.
|
|
337fcb6a
|
2012-11-29T21:10:10
|
|
[type1] Fix Savannah bug #37831.
The bug report also contains a patch.
* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix
change from 2012-09-17.
|
|
6a126e14
|
2012-11-28T23:32:02
|
|
[truetype] Fix formatting and typo.
|
|
79180ad0
|
2012-11-27T21:36:20
|
|
[cid, type1, type42] Clean up units_per_EM calculations.
* src/cid/cidload.c (cid_parse_font_matrix): Updated.
* src/type1/t1load.c (t1_parse_font_matrix): Updated.
* src/type42/t42parse.c (t42_parse_font_matrix): Updated.
|
|
72e976d4
|
2012-11-27T21:18:34
|
|
[ftstroke] Minor improvement.
* src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with
FT_MulDiv.
|
|
fa22ec1c
|
2012-11-17T11:45:24
|
|
* src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work.
|