formatting
This commit is contained in:
parent
09d55ceabf
commit
a64c55b17f
54
ChangeLog
54
ChangeLog
|
@ -1,38 +1,50 @@
|
||||||
2001-05-11 David Turner <david@freetype.org>
|
2001-05-11 David Turner <david@freetype.org>
|
||||||
|
|
||||||
* src/cff/cffparse.c, src/cid/cidload.c, src/type1/t1load.c: fixed
|
* src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
|
||||||
the incorrect EM size computation
|
(parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed
|
||||||
|
the incorrect EM size computation.
|
||||||
|
|
||||||
* include/freetype/fttrigon.h, src/base/fttrigon.c, src/base/ftbase.c,
|
* include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
|
||||||
src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
|
adding trigonometric functions to the core API (using Cordic
|
||||||
to the core API (using Cordic algorithms).
|
algorithms).
|
||||||
|
* src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
|
||||||
|
|
||||||
* builds/top_level.mk, builds/newline, builds/detect.mk: fixed problems
|
* builds/newline: New file.
|
||||||
with Make on Windows 2000, as well as problems when "make distclean" is
|
* builds/top_level.mk, builds/detect.mk: Use it. This fixes
|
||||||
invoked on a non-Unix platform when there is no "config.mk" in the
|
problems with Make on Windows 2000, as well as problems when "make
|
||||||
current directory..
|
distclean" is invoked on a non-Unix platform when there is no
|
||||||
|
"config.mk" in the current directory.
|
||||||
|
|
||||||
* builds/freetype.mk: fixed a problem with object deletions under
|
* builds/freetype.mk: Fixed a problem with object deletions under
|
||||||
Dos/Windows/OS/2 systems
|
Dos/Windows/OS/2 systems.
|
||||||
|
|
||||||
* src/tools: added new directory to hold tools and test programs
|
Added new directory to hold tools and test programs.
|
||||||
moved docmaker.py, glnames.py to it..
|
|
||||||
|
|
||||||
* src/tools/docmaker.py: improved the script to add the current date
|
* docs/docmaker.py, docs/glnames.py: Moved to...
|
||||||
at the footer of each web page (useful to distinguish between versions)
|
* src/tools/docmaker.py, src/tools/glnames.py: This place.
|
||||||
|
* src/tools/cordic.py: New file used to compute arctangent table
|
||||||
|
needed by fttrigon.c.
|
||||||
|
* src/tools/test_bbox.c, src/tools/test_trig.c: New test files.
|
||||||
|
|
||||||
* Jamfile: fixed incorrect HDRMACRO argument.
|
* src/tools/docmaker.py: Improved the script to add the current date
|
||||||
|
at the footer of each web page (useful to distinguish between
|
||||||
|
versions).
|
||||||
|
|
||||||
* TODO: removed the cubic arc bbox computation note, since it has been
|
* Jamfile: Fixed incorrect HDRMACRO argument.
|
||||||
fixed recently..
|
|
||||||
|
* TODO: Removed the cubic arc bbox computation note, since it has been
|
||||||
|
fixed recently.
|
||||||
|
* src/base/ftbbox.c (test_cubic_zero): Renamed to...
|
||||||
|
(test_cubic_extrema): This function. Use `UL' for unsigned long
|
||||||
|
constants.
|
||||||
|
|
||||||
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
|
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
|
||||||
formatting
|
Formatting.
|
||||||
|
|
||||||
2001-05-10 David Turner <david@freetype.org>
|
2001-05-10 David Turner <david@freetype.org>
|
||||||
|
|
||||||
* src/base/ftobjs.c (FT_Open_Face): fixed a small memory leaked
|
* src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
|
||||||
which happened when trying to open 0-size font files !!
|
which happened when trying to open 0-size font files!
|
||||||
|
|
||||||
2001-05-09 Werner Lemberg <wl@gnu.org>
|
2001-05-09 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ std_setup:
|
||||||
@$(COPY) $(CONFIG_RULES) $(CONFIG_MK)
|
@$(COPY) $(CONFIG_RULES) $(CONFIG_MK)
|
||||||
|
|
||||||
|
|
||||||
# special case for Dos, Windows, OS/2, where echo "" doesn't work correctly !!
|
# Special case for Dos, Windows, OS/2, where echo "" doesn't work correctly!
|
||||||
#
|
#
|
||||||
dos_setup:
|
dos_setup:
|
||||||
@type builds\newline
|
@type builds\newline
|
||||||
|
|
|
@ -273,8 +273,8 @@ distclean_project_std: clean_project_std
|
||||||
# The Dos command shell does not support very long list of arguments, so
|
# The Dos command shell does not support very long list of arguments, so
|
||||||
# we are stuck with wildcards.
|
# we are stuck with wildcards.
|
||||||
#
|
#
|
||||||
# don't break the command lines with, this prevents the "del" command from
|
# Don't break the command lines with; this prevents the "del" command from
|
||||||
# working correctly on Win9x
|
# working correctly on Win9x.
|
||||||
#
|
#
|
||||||
clean_project_dos:
|
clean_project_dos:
|
||||||
-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(OBJ_))*.$O $(CLEAN) $(NO_OUTPUT)
|
-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(OBJ_))*.$O $(CLEAN) $(NO_OUTPUT)
|
||||||
|
|
|
@ -97,11 +97,11 @@ ifdef check_platform
|
||||||
# GNU make. Similarly, `nul' is created if e.g. `make setup win32' has
|
# GNU make. Similarly, `nul' is created if e.g. `make setup win32' has
|
||||||
# been erroneously used.
|
# been erroneously used.
|
||||||
#
|
#
|
||||||
# note: this test is duplicated in "builds/toplevel.mk"
|
# note: This test is duplicated in "builds/toplevel.mk".
|
||||||
|
#
|
||||||
is_unix := $(strip $(wildcard /sbin/init) $(wildcard /hurd/auth))
|
is_unix := $(strip $(wildcard /sbin/init) $(wildcard /hurd/auth))
|
||||||
ifneq ($(is_unix),)
|
ifneq ($(is_unix),)
|
||||||
|
|
||||||
|
|
||||||
distclean:
|
distclean:
|
||||||
$(RM) builds/unix/config.cache
|
$(RM) builds/unix/config.cache
|
||||||
$(RM) builds/unix/config.log
|
$(RM) builds/unix/config.log
|
||||||
|
|
|
@ -16,7 +16,8 @@
|
||||||
|
|
||||||
ifeq ($(PLATFORM),ansi)
|
ifeq ($(PLATFORM),ansi)
|
||||||
|
|
||||||
# note: this test is duplicated in "builds/toplevel.mk"
|
# Note: this test is duplicated in "builds/toplevel.mk".
|
||||||
|
#
|
||||||
is_unix := $(strip $(wildcard /sbin/init) $(wildcard /hurd/auth))
|
is_unix := $(strip $(wildcard /sbin/init) $(wildcard /hurd/auth))
|
||||||
ifneq ($(is_unix),)
|
ifneq ($(is_unix),)
|
||||||
|
|
||||||
|
|
|
@ -357,7 +357,7 @@
|
||||||
FT_Fixed t;
|
FT_Fixed t;
|
||||||
|
|
||||||
|
|
||||||
/* we need to solve "ax^2+2bx+c" here, without floating points! */
|
/* We need to solve "ax^2+2bx+c" here, without floating points! */
|
||||||
/* The trick is to normalize to a different representation in order */
|
/* The trick is to normalize to a different representation in order */
|
||||||
/* to use our 16.16 fixed point routines. */
|
/* to use our 16.16 fixed point routines. */
|
||||||
/* */
|
/* */
|
||||||
|
@ -373,25 +373,25 @@
|
||||||
int shift = 0;
|
int shift = 0;
|
||||||
|
|
||||||
|
|
||||||
/* technical explanation of what's happening there */
|
/* Technical explanation of what's happening there. */
|
||||||
/* */
|
/* */
|
||||||
/* the following computation is based on the fact that for */
|
/* The following computation is based on the fact that for */
|
||||||
/* any value "y", if "n" is the position of the most */
|
/* any value "y", if "n" is the position of the most */
|
||||||
/* significant bit of "abs(y)" (starting from 0 for the */
|
/* significant bit of "abs(y)" (starting from 0 for the */
|
||||||
/* least significant bit), then y is in the range */
|
/* least significant bit), then y is in the range */
|
||||||
/* */
|
/* */
|
||||||
/* "-2^n..2^n-1" */
|
/* "-2^n..2^n-1" */
|
||||||
/* */
|
/* */
|
||||||
/* we want to shift "a", "b" and "c" concurrently in order */
|
/* We want to shift "a", "b" and "c" concurrently in order */
|
||||||
/* to ensure that they all fit in 8.16 values, which maps */
|
/* to ensure that they all fit in 8.16 values, which maps */
|
||||||
/* to the integer range "-2^23..2^23-1" */
|
/* to the integer range "-2^23..2^23-1". */
|
||||||
/* */
|
/* */
|
||||||
/* necessarily, we need to shift "a", "b" and "c" so that */
|
/* Necessarily, we need to shift "a", "b" and "c" so that */
|
||||||
/* the most significant bit of their absolute values is at */
|
/* the most significant bit of their absolute values is at */
|
||||||
/* _most_ at position 23 */
|
/* _most_ at position 23. */
|
||||||
/* */
|
/* */
|
||||||
/* we begin by computing "t1" as the bitwise "or" of the */
|
/* We begin by computing "t1" as the bitwise "or" of the */
|
||||||
/* absolute values of "a", "b", "c" */
|
/* absolute values of "a", "b", "c". */
|
||||||
/* */
|
/* */
|
||||||
t1 = (FT_ULong)((a >= 0) ? a : -a );
|
t1 = (FT_ULong)((a >= 0) ? a : -a );
|
||||||
t2 = (FT_ULong)((b >= 0) ? b : -b );
|
t2 = (FT_ULong)((b >= 0) ? b : -b );
|
||||||
|
@ -399,31 +399,30 @@
|
||||||
t2 = (FT_ULong)((c >= 0) ? c : -c );
|
t2 = (FT_ULong)((c >= 0) ? c : -c );
|
||||||
t1 |= t2;
|
t1 |= t2;
|
||||||
|
|
||||||
/* now, the most significant bit of "t1" is sure to be the */
|
/* Now, the most significant bit of "t1" is sure to be the */
|
||||||
/* msb of one of "a", "b", "c", depending on which one is */
|
/* msb of one of "a", "b", "c", depending on which one is */
|
||||||
/* expressed in the greatest integer range.. */
|
/* expressed in the greatest integer range. */
|
||||||
/* */
|
/* */
|
||||||
/* we will now compute the "shift", by shifting "t1" as many */
|
/* We now compute the "shift", by shifting "t1" as many */
|
||||||
/* times as necessary to move its msb to position 23. */
|
/* times as necessary to move its msb to position 23. */
|
||||||
/* */
|
/* */
|
||||||
/* this corresponds to a value of t1 that is in the range */
|
/* This corresponds to a value of t1 that is in the range */
|
||||||
/* 0x40_0000..0x7F_FFFF */
|
/* 0x40_0000..0x7F_FFFF. */
|
||||||
/* */
|
/* */
|
||||||
/* finally, we shift "a", "b" and "c" by the same amount. */
|
/* Finally, we shift "a", "b" and "c" by the same amount. */
|
||||||
/* this ensure that all values are now in the range */
|
/* This ensures that all values are now in the range */
|
||||||
/* -2^23..2^23, i.e. that they're now expressed as 8.16 */
|
/* -2^23..2^23, i.e. that they are now expressed as 8.16 */
|
||||||
/* fixed float numbers.. */
|
/* fixed float numbers. */
|
||||||
/* */
|
/* */
|
||||||
/* this also means that we're using 24 bits of precision */
|
/* This also means that we are using 24 bits of precision */
|
||||||
/* to compute the zeros, independently of the range of */
|
/* to compute the zeros, independently of the range of */
|
||||||
/* the original polynom coefficients. */
|
/* the original polynom coefficients. */
|
||||||
/* */
|
/* */
|
||||||
/* this should ensure reasonably accurate values for the */
|
/* This should ensure reasonably accurate values for the */
|
||||||
/* zeros. Note that the latter are only expressed with */
|
/* zeros. Note that the latter are only expressed with */
|
||||||
/* 16 bits when computing the extrema (the zeros need to */
|
/* 16 bits when computing the extrema (the zeros need to */
|
||||||
/* be in 0..1 exclusive to be considered part of the arc) */
|
/* be in 0..1 exclusive to be considered part of the arc). */
|
||||||
/* */
|
/* */
|
||||||
|
|
||||||
if ( t1 == 0 ) /* all coefficients are 0! */
|
if ( t1 == 0 ) /* all coefficients are 0! */
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -435,8 +434,8 @@
|
||||||
t1 >>= 1;
|
t1 >>= 1;
|
||||||
} while ( t1 > 0x7FFFFFUL );
|
} while ( t1 > 0x7FFFFFUL );
|
||||||
|
|
||||||
/* losing some bits of precision, but we'll use 24 of them */
|
/* losing some bits of precision, but we use 24 of them */
|
||||||
/* for the computation anyway.. */
|
/* for the computation anyway. */
|
||||||
a >>= shift;
|
a >>= shift;
|
||||||
b >>= shift;
|
b >>= shift;
|
||||||
c >>= shift;
|
c >>= shift;
|
||||||
|
|
Loading…
Reference in New Issue