ref: caf72cd6e5765aa5419f2f3e8e42610181dc82e8
parent: cfcfd3c4321338ecb1f0c7c73d842da8d7378436
author: David Turner <[email protected]>
date: Wed Apr 25 14:11:16 EDT 2001
* src/base/ftbbox.c (BBox_Cubic_Check): rewrote function to use direct computations with 16.16 values instead of sub-divisions. It is now slower, but proves a point :-) * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c : fixed the bezier stack depths.. * src/base/ftcalc.c (FT_MulFix): minor rounding fix * builds/beos : added BeOS-specific files to the old build system (no changes were necessary to support BeOS in the Jamfile though)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,23 +1,27 @@
-2001-04-24 Werner Lemberg <[email protected]>
+2001-04-25 David Turner <[email protected]>
- * builds/unix/config.guess, builds/unix/config.sub: Updated to
- latest versions from gnu.org.
+ * src/base/ftbbox.c (BBox_Cubic_Check): rewrote function to use
+ direct computations with 16.16 values instead of sub-divisions.
+ It is now slower, but proves a point :-)
-2001-04-22 Werner Lemberg <[email protected]>
+ * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c :
+ fixed the bezier stack depths..
- * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
+ * src/base/ftcalc.c (FT_MulFix): minor rounding fix
+ * builds/beos : added BeOS-specific files to the old build system
+ (no changes were necessary to support BeOS in the Jamfile though)
+
2001-04-20 David Turner <[email protected]>
- * ftconfig.h, ftoption.h: Updated "ftconfig.h" to detect 64-bit int
- types on platforms where Autoconf is not available. Also removed
- FTCALC_USE_LONG_LONG and replaced it with
- FT_CONFIG_OPTION_FORCE_INT64.
+ * ftconfig.h, ftoption.h: updated "ftconfig.h" to detect 64-bit int
+ types on platforms where Autoconf is not available). Also removed
+ FTCALC_USE_LONG_LONG and replaced it with FT_CONFIG_OPTION_FORCE_INT64
+
+ * builds/win32/freetype.dsp: updated the Visual C++ project file. Doesn't
+ create a DLL yet..
- * builds/win32/freetype.dsp: Updated the Visual C++ project file.
- Doesn't create a DLL yet.
-
- * cffgload.c: Removed a compilation warning.
+ * cffgload.c: removed a compilation warning
2001-04-10 Tom Kacvinsky <[email protected]>
--- /dev/null
+++ b/builds/beos/beos-def.mk
@@ -1,0 +1,96 @@
+#
+# FreeType 2 configuration rules for a BeOS system
+#
+# this is similar to the "ansi-def.mk" file, except for BUILD and PLATFORM
+#
+
+
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
+#
+# This file is part of the FreeType project, and may only be used, modified,
+# and distributed under the terms of the FreeType project license,
+# LICENSE.TXT. By continuing to use, modify, or distribute this file you
+# indicate that you have read the license and understand and accept it
+# fully.
+
+
+ifndef TOP
+ TOP := .
+endif
+
+DELETE := rm -f
+SEP := /
+HOSTSEP := $(SEP)
+BUILD := $(TOP)/builds/neos
+PLATFORM := beos
+
+
+# The directory where all object files are placed.
+#
+# This lets you build the library in your own directory with something like
+#
+# set TOP=.../path/to/freetype2/top/dir...
+# set OBJ_DIR=.../path/to/obj/dir
+# make -f $TOP/Makefile setup [options]
+# make -f $TOP/Makefile
+#
+ifndef OBJ_DIR
+ OBJ_DIR := $(TOP)$(SEP)objs
+endif
+
+
+# The directory where all library files are placed.
+#
+# By default, this is the same as $(OBJ_DIR); however, this can be changed
+# to suit particular needs.
+#
+LIB_DIR := $(OBJ_DIR)
+
+
+# The name of the final library file. Note that the DOS-specific Makefile
+# uses a shorter (8.3) name.
+#
+LIBRARY := lib$(PROJECT)
+
+
+# Path inclusion flag. Some compilers use a different flag than `-I' to
+# specify an additional include path. Examples are `/i=' or `-J'.
+#
+I := -I
+
+
+# C flag used to define a macro before the compilation of a given source
+# object. Usually it is `-D' like in `-DDEBUG'.
+#
+D := -D
+
+
+# The link flag used to specify a given library file on link. Note that
+# this is only used to compile the demo programs, not the library itself.
+#
+L := -l
+
+
+# Target flag.
+#
+T := -o$(space)
+
+
+# C flags
+#
+# These should concern: debug output, optimization & warnings.
+#
+# Use the ANSIFLAGS variable to define the compiler flags used to enfore
+# ANSI compliance.
+#
+ifndef CFLAGS
+ CFLAGS := -c
+endif
+
+# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
+#
+ANSIFLAGS :=
+
+
+# EOF
--- /dev/null
+++ b/builds/beos/beos.mk
@@ -1,0 +1,18 @@
+#
+# FreeType 2 configuration rules for a BeOS system
+#
+
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
+#
+# This file is part of the FreeType project, and may only be used, modified,
+# and distributed under the terms of the FreeType project license,
+# LICENSE.TXT. By continuing to use, modify, or distribute this file you
+# indicate that you have read the license and understand and accept it
+# fully.
+
+include $(TOP)/builds/compiler/ansi-cc.mk
+include $(TOP)/builds/beos/beos-def.mk
+
+# EOF
+
--- /dev/null
+++ b/builds/beos/detect.mk
@@ -1,0 +1,41 @@
+#
+# FreeType 2 configuration file to detect an BeOS host platform.
+#
+
+
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
+#
+# This file is part of the FreeType project, and may only be used, modified,
+# and distributed under the terms of the FreeType project license,
+# LICENSE.TXT. By continuing to use, modify, or distribute this file you
+# indicate that you have read the license and understand and accept it
+# fully.
+
+
+.PHONY: setup
+
+
+ifeq ($(PLATFORM),ansi)
+
+ ifdef BE_HOST_CPU
+
+ PLATFORM := beos
+
+ endif # test MACHTYPE beos
+endif
+
+ifeq ($(PLATFORM),beos)
+
+ DELETE := rm -f
+ SEP := /
+ HOSTSEP := $(SEP)
+ BUILD := $(TOP)/builds/beos
+ CONFIG_FILE := beos.mk
+
+ setup: std_setup
+
+endif # test PLATFORM beos
+
+# EOF
+
--- a/docs/docmaker.py
+++ b/docs/docmaker.py
@@ -10,10 +10,18 @@
import fileinput, sys, string, glob
-html_header = """\
+# the Project's title, this can be over-ridden from the command line with
+# an option
+project_title = "Project"
+
+# The following defines the HTML header used by all generated pages
+#
+html_header_1 = """\
<html>
<header>
-<title>FreeType 2 API Reference</title>
+<title>"""
+
+html_header_2= """ API Reference</title>
<basefont face="Georgia, Arial, Helvetica, Geneva">
<style content="text/css">
P { text-align=justify }
@@ -26,35 +34,57 @@
link=#0000EF
vlink=#51188E
alink=#FF0000>
-<center><h1>FreeType 2 API Reference</h1></center>
+<center><h1>"""
+
+html_header_3=""" API Reference</h1></center>
"""
+# this is recomputed later when the project title changes
+html_header = html_header_1 + project_title + html_header_2 + project_title + html_header_3
+# The HTML footer used by all generated pages
+#
html_footer = """\
</body>
</html>"""
+# The header and footer used for each section
+#
section_title_header = "<center><h1>"
section_title_footer = "</h1></center>"
+# The header and footer used for code segments
+#
code_header = "<font color=blue><pre>"
code_footer = "</pre></font>"
+# Paragraph header and footer
+#
para_header = "<p>"
para_footer = "</p>"
+# Block header and footer
+#
block_header = "<center><table width=75%><tr><td>"
block_footer = "</td></tr></table><hr width=75%></center>"
+# Description header/footer
+#
description_header = "<center><table width=87%><tr><td>"
description_footer = "</td></tr></table></center><br>"
+# Marker header/inter/footer combination
+#
marker_header = "<center><table width=87% cellpadding=5><tr bgcolor=#EEEEFF><td><em><b>"
marker_inter = "</b></em></td></tr><tr><td>"
marker_footer = "</td></tr></table></center>"
+# Source code extracts header/footer
+#
source_header = "<center><table width=87%><tr bgcolor=#D6E8FF width=100%><td><pre>"
source_footer = "</pre></table></center><br>"
+# Chapter header/inter/footer
+#
chapter_header = "<center><table width=75%><tr><td><h2>"
chapter_inter = "</h2><ul>"
chapter_footer = "</ul></td></tr></table></center>"
@@ -106,6 +136,16 @@
return new_list
+# translate a single line of source to HTML. This will convert
+# a "<" into "<.", ">" into ">.", etc..
+#
+def html_format( line )
+ result = string.replace( line, "<", "<." )
+ result = string.replace( line, ">", ">." )
+ result = string.replace( line, "&", "&." )
+ return result
+
+
# The FreeType 2 reference is extracted from the source files. These contain
# various comment blocks that follow one of the following formats:
#
@@ -153,7 +193,7 @@
# The first two markers contain arbitrary text, while the last one contains
# a list of fields.
#
-# Each field is simple of the format: WORD :: TEXT...
+# Each field is simply of the format: WORD :: TEXT...
#
# Note that typically each comment block is followed by some source
# code declaration that may need to be kept in the reference.
@@ -242,8 +282,8 @@
# line to avoid an additional blank line
#
sys.stdout.write( code_header )
- for line in self.lines[0 : l+1]:
- sys.stdout.write( '\n' + line )
+ for line in self.lines[0 : l+1]:
+ sys.stdout.write( '\n' + html_format(line) )
sys.stdout.write( code_footer )
@@ -320,7 +360,7 @@
word = '?' + word
if cursor + len( word ) + 1 > max_width:
- print line
+ print html_format( line )
cursor = 0
line = ""
@@ -335,7 +375,7 @@
#
if extra:
if cursor + len( extra ) + 1 > max_width:
- print line
+ print html_format( line )
cursor = 0
line = ""
@@ -344,7 +384,7 @@
extra = None
if cursor > 0:
- print line
+ print html_format(line)
# print "�" # for debugging only
--- a/include/freetype/config/ftheader.h
+++ b/include/freetype/config/ftheader.h
@@ -338,6 +338,18 @@
/*************************************************************************/
/* */
/* @macro: */
+ /* FT_BEZIER_H */
+ /* */
+ /* @description: */
+ /* A macro used in #include statements to name the file containing */
+ /* a small useful API to handle bezier arcs. Note that you _must_ */
+ /* include FT_FREETYPE_H or FT_IMAGE_H before this header.. */
+ /* */
+#define FT_BEZIER_H <freetype/ftbezier.h>
+
+ /*************************************************************************/
+ /* */
+ /* @macro: */
/* FT_CACHE_H */
/* */
/* @description: */
--- a/src/base/ftbbox.c
+++ b/src/base/ftbbox.c
@@ -28,6 +28,7 @@
#include FT_BBOX_H
#include FT_IMAGE_H
#include FT_OUTLINE_H
+#include FT_BEZIER_H
typedef struct TBBox_Rec_
@@ -101,7 +102,7 @@
FT_Pos* min,
FT_Pos* max )
{
- if ( y1 == y3 )
+ if ( y1 <= y3 )
{
if ( y2 == y1 ) /* Flat arc */
goto Suite;
@@ -205,6 +206,7 @@
/* min :: The address of the current minimum. */
/* max :: The address of the current maximum. */
/* */
+#if 0
static
void BBox_Cubic_Check( FT_Pos p1,
FT_Pos p2,
@@ -213,7 +215,7 @@
FT_Pos* min,
FT_Pos* max )
{
- FT_Pos stack[33], *arc;
+ FT_Pos stack[32*3+1], *arc;
arc = stack;
@@ -252,7 +254,7 @@
}
}
- /* Unknown direction, split the arc in two */
+ /* Unknown direction - split the arc in two */
arc[6] = y4;
arc[1] = y1 = ( y1 + y2 ) / 2;
arc[5] = y4 = ( y4 + y3 ) / 2;
@@ -273,8 +275,166 @@
;
} while ( arc >= stack );
}
+#else
+ static void
+ test_cubic_zero( FT_Pos y1,
+ FT_Pos y2,
+ FT_Pos y3,
+ FT_Pos y4,
+ FT_Fixed u,
+ FT_Pos* min,
+ FT_Pos* max )
+ {
+ FT_Pos a = y4 - 3*y3 + 3*y2 - y1;
+ FT_Pos b = y3 - 2*y2 + y1;
+ FT_Pos c = y2 - y1;
+ FT_Pos d = y1;
+ FT_Pos y;
+ FT_Fixed uu;
+
+ /* the polynom is "a*x^3 + 3b*x^2 + 3c*x + d", however, we also */
+ /* have dP/dx(u) = 0, which implies that P(t0) = b*t0^2 + 2c*t0 + d */
+ if ( u > 0 && u < 0x10000L )
+ {
+ uu = FT_MulFix( u, u );
+ y = d + FT_MulFix( c, 2*u ) + FT_MulFix( b, uu );
+ if ( y < *min ) *min = y;
+ if ( y > *max ) *max = y;
+ }
+ }
+
+
+ static
+ void BBox_Cubic_Check( FT_Pos y1,
+ FT_Pos y2,
+ FT_Pos y3,
+ FT_Pos y4,
+ FT_Pos* min,
+ FT_Pos* max )
+ {
+ /* always compare first and last points */
+ if ( y1 < *min ) *min = y1;
+ else if ( y1 > *max ) *max = y1;
+
+ if ( y4 < *min ) *min = y4;
+ else if ( y4 > *max ) *max = y4;
+
+ /* now, try to see if there are split points here */
+ if ( y1 <= y4 )
+ {
+ /* flat or ascending arc test */
+ if ( y1 <= y2 && y2 <= y4 && y1 <= y3 && y3 <= y4 )
+ return;
+ }
+ else /* y1 > y4 */
+ {
+ /* descending arc test */
+ if ( y1 >= y2 && y2 >= y4 && y1 >= y3 && y3 >= y4 )
+ return;
+ }
+
+ /* there are some split points, now, find them.. */
+ {
+ FT_Pos a = y4 - 3*y3 + 3*y2 - y1;
+ FT_Pos b = y3 - 2*y2 + y1;
+ FT_Pos c = y2 - y1;
+ FT_Pos d, t1;
+ FT_Fixed t;
+
+ /* we need to solve "ax�+2bx+c" here, without floating points !! */
+ /* the trick is to normalize to a different representation in order */
+ /* to use our 16.16 fixed point routines.. */
+ /* */
+ /* we're going to compute FT_MulFix(b,b) and FT_MulFix(a,c) after */
+ /* the normalisation. these values must fit in a single 16.16 */
+ /* value. */
+ /* */
+ /* we normalize a, b and c to "8.16" fixed float values to ensure */
+ /* that their product is held in a "16.16" value.. */
+ /* */
+ {
+ FT_ULong t1, t2;
+ int shift = 0;
+
+ t1 = (FT_ULong)((a >= 0) ? a : -a );
+ t2 = (FT_ULong)((b >= 0) ? b : -b );
+ t1 |= t2;
+ t2 = (FT_ULong)((c >= 0) ? c : -c );
+ t1 |= t2;
+
+ if ( t1 == 0 ) /* all coefficients are 0 !! */
+ return;
+
+ if ( t1 > 0xFFFFFFL )
+ {
+ /* on 64-bit machines .. */
+ do
+ {
+ shift--;
+ t1 >>= 1;
+ }
+ while ( t1 > 0xFFFFFFL );
+
+ a >>= shift;
+ b >>= shift;
+ c >>= shift;
+ }
+ else if ( t1 < 0x800000L )
+ {
+ do
+ {
+ shift++;
+ t1 <<= 1;
+ }
+ while ( t1 < 0x800000L );
+
+ a <<= shift;
+ b <<= shift;
+ c <<= shift;
+ }
+ }
+
+ /* handle a == 0 */
+ if ( a == 0 )
+ {
+ if ( b != 0 )
+ {
+ t = - FT_DivFix( c, b )/2;
+ test_cubic_zero( y1, y2, y3, y4, t, min, max );
+ }
+ }
+ else
+ {
+ /* solve the equation now */
+ d = FT_MulFix( b, b ) - FT_MulFix( a, c );
+ if ( d < 0 )
+ return;
+
+ if ( d == 0 )
+ {
+ /* there is a single split point, at -b/a */
+ t = - FT_DivFix( b, a );
+ test_cubic_zero( y1, y2, y3, y4, t, min, max );
+ }
+ else
+ {
+ /* there are two solutions, we need to filter them though */
+ d = FT_SqrtFixed( (FT_Int32)d );
+ t = - FT_DivFix( b - d, a );
+ test_cubic_zero( y1, y2, y3, y4, t, min, max );
+
+ t = - FT_DivFix( b + d, a );
+ test_cubic_zero( y1, y2, y3, y4, t, min, max );
+ }
+ }
+ }
+ }
+
+#endif
+
+
/*************************************************************************/
/* */
/* <Function> */
@@ -368,6 +528,7 @@
vec = outline->points;
bbox.xMin = bbox.xMax = cbox.xMin = cbox.xMax = vec->x;
bbox.yMin = bbox.yMax = cbox.yMin = cbox.yMax = vec->y;
+ vec++;
for ( n = 1; n < outline->n_points; n++ )
{
--- a/src/base/ftcalc.c
+++ b/src/base/ftcalc.c
@@ -309,9 +309,8 @@
FT_ULong al = ua & 0xFFFF;
- ua = ( ua >> 16 ) * ub +
- al * ( ub >> 16 ) +
- ( al * ( ub & 0xFFFF ) >> 16 );
+ ua = ( ua >> 16 ) * ub + al * ( ub >> 16 ) +
+ ( ( al * ( ub & 0xFFFF ) + 0x8000 ) >> 16 );
}
return ( s < 0 ? -(FT_Long)ua : ua );
@@ -551,18 +550,40 @@
}
+
+#endif /* FT_CONFIG_OPTION_OLD_CALCS */
+
+
+ /* a not-so-fast but working 16.16 fixed point square root function */
FT_EXPORT_DEF( FT_Int32 ) FT_SqrtFixed( FT_Int32 x )
{
- FT_Int64 z;
+ FT_UInt32 root, rem_hi, rem_lo, test_div;
+ FT_Int count;
+ root = 0;
- z.hi = (FT_UInt32)((FT_Int32)(x) >> 16);
- z.lo = (FT_UInt32)( x << 16 );
- return FT_Sqrt64( &z );
- }
+ if ( x > 0 )
+ {
+ rem_hi = 0;
+ rem_lo = x;
+ count = 32;
+ do
+ {
+ rem_hi = (rem_hi << 2) | (rem_lo >> 30);
+ rem_lo <<= 2;
+ root <<= 1;
+ test_div = (root << 1) + 1;
+ if ( rem_hi >= test_div )
+ {
+ rem_hi -= test_div;
+ root += 1;
+ }
+ count--;
+ }
+ }
-
-#endif /* FT_CONFIG_OPTION_OLD_CALCS */
+ return (FT_Int32)root;
+ }
#endif /* FT_LONG64 */
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -436,7 +436,7 @@
/* no horizontal pass during gray */
/* rendering. */
- TPoint arcs[2 * MaxBezier + 1]; /* The Bezier stack */
+ TPoint arcs[3 * MaxBezier + 1]; /* The Bezier stack */
TBand band_stack[16]; /* band stack used for sub-banding */
Int band_top; /* band stack top */
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -247,7 +247,7 @@
TScan last_ey;
- FT_Vector bez_stack[32 * 3];
+ FT_Vector bez_stack[32 * 3+1];
int lev_stack[32];
FT_Outline outline;
--- a/src/winfonts/winfnt.c
+++ b/src/winfonts/winfnt.c
@@ -109,9 +109,9 @@
};
- static
- void fnt_done_font( FT_Stream stream,
- FNT_Font* font )
+ static void
+ fnt_font_done( FNT_Font* font,
+ FT_Stream stream )
{
if ( font->fnt_frame )
RELEASE_Frame( font->fnt_frame );
@@ -121,9 +121,9 @@
}
- static
- FT_Error fnt_load_font( FT_Stream stream,
- FNT_Font* font )
+ static FT_Error
+ fnt_font_load( FNT_Font* font,
+ FT_Stream stream )
{
FT_Error error;
WinFNT_Header* header = &font->header;
@@ -164,8 +164,8 @@
}
- static
- void fnt_done_fonts( FNT_Face face )
+ static void
+ fnt_face_done_fonts( FNT_Face face )
{
FT_Memory memory = FT_FACE(face)->memory;
FT_Stream stream = FT_FACE(face)->stream;
@@ -174,7 +174,7 @@
for ( ; cur < limit; cur++ )
- fnt_done_font( stream, cur );
+ fnt_font_done( cur, stream );
FREE( face->fonts );
face->num_fonts = 0;
@@ -181,8 +181,8 @@
}
- static
- FT_Error fnt_get_dll_fonts( FNT_Face face )
+ static FT_Error
+ fnt_face_get_dll_fonts( FNT_Face face )
{
FT_Error error;
FT_Stream stream = FT_FACE(face)->stream;
@@ -291,7 +291,7 @@
for ( ; cur < limit; cur++ )
{
- error = fnt_load_font( stream, cur );
+ error = fnt_font_load( cur, stream );
if ( error )
goto Fail;
}
@@ -301,7 +301,7 @@
Fail:
if ( error )
- fnt_done_fonts( face );
+ fnt_face_done_fonts( face );
Exit:
return error;
@@ -308,13 +308,13 @@
}
- static
- void FNT_Done_Face( FNT_Face face )
+ static void
+ FNT_Face_Done( FNT_Face face )
{
FT_Memory memory = FT_FACE_MEMORY( face );
- fnt_done_fonts( face );
+ fnt_face_done_fonts( face );
FREE( face->root.available_sizes );
face->root.num_fixed_sizes = 0;
@@ -321,12 +321,12 @@
}
- static
- FT_Error FNT_Init_Face( FT_Stream stream,
- FNT_Face face,
- FT_Int face_index,
- FT_Int num_params,
- FT_Parameter* params )
+ static FT_Error
+ FNT_Face_Init( FT_Stream stream,
+ FNT_Face face,
+ FT_Int face_index,
+ FT_Int num_params,
+ FT_Parameter* params )
{
FT_Error error;
FT_Memory memory = FT_FACE_MEMORY( face );
@@ -337,7 +337,7 @@
/* try to load several fonts from a DLL */
- error = fnt_get_dll_fonts( face );
+ error = fnt_face_get_dll_fonts( face );
if ( error )
{
/* this didn't work, now try to load a single FNT font */
@@ -352,7 +352,7 @@
font->offset = 0;
font->fnt_size = stream->size;
- error = fnt_load_font( stream, font );
+ error = fnt_font_load( font, stream );
if ( error )
goto Fail;
}
@@ -431,7 +431,7 @@
Fail:
if ( error )
- FNT_Done_Face( face );
+ FNT_Face_Done( face );
Exit:
return error;
@@ -438,8 +438,8 @@
}
- static
- FT_Error FNT_Set_Pixel_Size( FNT_Size size )
+ static FT_Error
+ FNT_Size_Set_Pixels( FNT_Size size )
{
/* look up a font corresponding to the current pixel size */
FNT_Face face = (FNT_Face)FT_SIZE_FACE( size );
@@ -468,9 +468,9 @@
}
- static
- FT_UInt FNT_Get_Char_Index( FT_CharMap charmap,
- FT_Long char_code )
+ static FT_UInt
+ FNT_Get_Char_Index( FT_CharMap charmap,
+ FT_Long char_code )
{
FT_Long result = char_code;
@@ -493,11 +493,11 @@
}
- static
- FT_Error FNT_Load_Glyph( FT_GlyphSlot slot,
- FNT_Size size,
- FT_UInt glyph_index,
- FT_Int load_flags )
+ static FT_Error
+ FNT_Load_Glyph( FT_GlyphSlot slot,
+ FNT_Size size,
+ FT_UInt glyph_index,
+ FT_Int load_flags )
{
FNT_Font* font = size->font;
FT_Error error = 0;
@@ -605,15 +605,15 @@
sizeof( FNT_SizeRec ),
sizeof( FT_GlyphSlotRec ),
- (FTDriver_initFace) FNT_Init_Face,
- (FTDriver_doneFace) FNT_Done_Face,
+ (FTDriver_initFace) FNT_Face_Init,
+ (FTDriver_doneFace) FNT_Face_Done,
(FTDriver_initSize) 0,
(FTDriver_doneSize) 0,
(FTDriver_initGlyphSlot)0,
(FTDriver_doneGlyphSlot)0,
- (FTDriver_setCharSizes) FNT_Set_Pixel_Size,
- (FTDriver_setPixelSizes)FNT_Set_Pixel_Size,
+ (FTDriver_setCharSizes) FNT_Size_Set_Pixels,
+ (FTDriver_setPixelSizes)FNT_Size_Set_Pixels,
(FTDriver_loadGlyph) FNT_Load_Glyph,
(FTDriver_getCharIndex) FNT_Get_Char_Index,