ref: d7a046838f7f1970cd77d1d8350c46edf545e81b
parent: dcd2e14c58d0e454c05f9e24cf12f415b3c3c4df
author: Werner Lemberg <[email protected]>
date: Sun Jun 25 19:02:11 EDT 2000
More formatting. About previous commitment: Added latest versions of (still unused) config.guess and config.sub files.
--- a/src/renderer/ftgrays.c
+++ b/src/renderer/ftgrays.c
@@ -50,7 +50,7 @@
/* It is based on ideas that I initially found in Raph Levien's */
/* excellent LibArt graphics library (see http://www.levien.com/libart */
/* for more information, though the web pages do not tell anything */
- /* about the renderer; you'll have to dive into the source code to */
+ /* about the renderer; you will have to dive into the source code to */
/* understand how it works). */
/* */
/* Note, however, that this is a _very_ different implementation */
@@ -103,6 +103,7 @@
#include "ftimage.h"
#include "ftgrays.h"
+
/* This macro is used to indicate that a function parameter is unused. */
/* Its purpose is simply to reduce compiler warnings. Note also that */
/* simply defining it as `(void)x' doesn't avoid warnings with certain */
@@ -135,6 +136,7 @@
/* define this to dump debugging information */
#define xxxDEBUG_GRAYS
+
/* as usual, for the speed hungry :-) */
#ifndef FT_STATIC_RASTER
@@ -225,7 +227,7 @@
#endif /* GRAYS_COMPACT */
- typedef struct TRaster_
+ typedef struct TRaster_
{
PCell cells;
int max_cells;
@@ -965,8 +967,8 @@
#ifdef SHELL_SORT
- /* A simple shell sort algorithm that works directly on our */
- /* cells table.. */
+ /* a simple shell sort algorithm that works directly on our */
+ /* cells table */
static
void shell_sort ( PCell cells,
int count )
@@ -1440,7 +1442,7 @@
/*************************************************************************/
/* */
/* The following function should only compile in stand_alone mode, */
- /* i.e., when building this component without the rest of FreeType. */
+ /* i.e., if building this component without the rest of FreeType. */
/* */
/*************************************************************************/
@@ -1684,8 +1686,8 @@
static
FT_Outline_Funcs interface =
{
- (FT_Outline_MoveTo_Func)Move_To,
- (FT_Outline_LineTo_Func)Line_To,
+ (FT_Outline_MoveTo_Func) Move_To,
+ (FT_Outline_LineTo_Func) Line_To,
(FT_Outline_ConicTo_Func)Conic_To,
(FT_Outline_CubicTo_Func)Cubic_To,
0,
@@ -1840,7 +1842,7 @@
return -1;
/* XXXX: this version does not support monochrome rendering yet! */
- if ( !(params->flags & ft_raster_flag_aa) )
+ if ( !( params->flags & ft_raster_flag_aa ) )
return -1;
ras.outline = *outline;
--- a/src/renderer/ftgrays.h
+++ b/src/renderer/ftgrays.h
@@ -15,13 +15,16 @@
/* */
/***************************************************************************/
+
#ifndef FTGRAYS_H
#define FTGRAYS_H
+
#ifdef __cplusplus
extern "C" {
#endif
+
#ifdef _STANDALONE_
#include "ftimage.h"
#else
@@ -28,22 +31,28 @@
#include <freetype/ftimage.h>
#endif
+
/*************************************************************************/
/* */
/* To make ftgrays.h independent from configuration files we check */
- /* whether FT_EXPORT_DEF has been defined already. */
+ /* whether FT_EXPORT_VAR has been defined already. */
/* */
/* On some systems and compilers (Win32 mostly), an extra keyword is */
/* necessary to compile the library as a DLL. */
/* */
#ifndef FT_EXPORT_VAR
-#define FT_EXPORT_VAR(x) extern x
+#define FT_EXPORT_VAR( x ) extern x
#endif
- FT_EXPORT_VAR(FT_Raster_Funcs) ft_grays_raster;
+ FT_EXPORT_VAR( FT_Raster_Funcs ) ft_grays_raster;
- #ifdef __cplusplus
- }
- #endif
+#ifdef __cplusplus
+}
#endif
+
+
+#endif /* FTGRAYS_H */
+
+
+/* END */
--- a/src/renderer/ftraster.c
+++ b/src/renderer/ftraster.c
@@ -60,7 +60,7 @@
/* */
/* ^ ^ */
/* | | */
- /* start of render pool top */
+ /* start of render pool top */
/* */
/* The top of the profile stack is kept in the `top' variable. */
/* */
@@ -236,6 +236,7 @@
typedef unsigned char Byte, *PByte;
typedef char Bool;
+
typedef struct TPoint_
{
Long x;
@@ -303,6 +304,7 @@
#ifdef TT_STATIC_RASTER
+
#define RAS_ARGS /* void */
#define RAS_ARG /* void */
@@ -311,8 +313,10 @@
#define UNUSED_RASTER do ; while ( 0 )
+
#else /* TT_STATIC_RASTER */
+
#define RAS_ARGS TRaster_Instance* raster,
#define RAS_ARG TRaster_Instance* raster
@@ -320,6 +324,7 @@
#define RAS_VAR raster
#define UNUSED_RASTER UNUSED( raster )
+
#endif /* TT_STATIC_RASTER */
--- a/src/renderer/module.mk
+++ b/src/renderer/module.mk
@@ -1,6 +1,6 @@
make_module_list: add_renderer_module
-# XXX: important, the standard renderer *MUST* be first on this list..
+# XXX: important, the standard renderer *MUST* be first on this list!
#
add_renderer_module:
$(OPEN_DRIVER)ft_standard_renderer_class$(CLOSE_DRIVER)
--- a/src/renderer/renderer.c
+++ b/src/renderer/renderer.c
@@ -1,46 +1,72 @@
+/***************************************************************************/
+/* */
+/* renderer.c */
+/* */
+/* FreeType renderer module (body). */
+/* */
+/* Copyright 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 <freetype/internal/ftobjs.h>
- /* initialise renderer - init its raster */
- static FT_Error ft_renderer_init( FT_Renderer render )
+
+ /* initialize renderer - init its raster */
+ static
+ FT_Error ft_renderer_init( FT_Renderer render )
{
- FT_Library library = FT_MODULE_LIBRARY(render);
+ FT_Library library = FT_MODULE_LIBRARY( render );
+
render->clazz->raster_class->raster_reset( render->raster,
- library->raster_pool, library->raster_pool_size );
+ library->raster_pool,
+ library->raster_pool_size );
return 0;
}
-
- /* sets render-specific mode */
- static FT_Error ft_renderer_set_mode( FT_Renderer render,
- FT_ULong mode_tag,
- FT_Pointer data )
+ /* set render-specific mode */
+ static
+ FT_Error ft_renderer_set_mode( FT_Renderer render,
+ FT_ULong mode_tag,
+ FT_Pointer data )
{
/* we simply pass it to the raster */
- return render->clazz->raster_class->raster_set_mode(
- render->raster, mode_tag, data );
+ return render->clazz->raster_class->raster_set_mode( render->raster,
+ mode_tag,
+ data );
}
- /* transform a given glyph image */
- static FT_Error ft_renderer_transform( FT_Renderer render,
- FT_GlyphSlot slot,
- FT_Matrix* matrix,
- FT_Vector* delta )
+
+ /* transform a given glyph image */
+ static
+ FT_Error ft_renderer_transform( FT_Renderer render,
+ FT_GlyphSlot slot,
+ FT_Matrix* matrix,
+ FT_Vector* delta )
{
FT_Error error = FT_Err_Ok;
- if (slot->format != render->glyph_format)
+
+ if ( slot->format != render->glyph_format )
{
error = FT_Err_Invalid_Argument;
goto Exit;
}
- if (matrix)
+ if ( matrix )
FT_Outline_Transform( &slot->outline, matrix );
- if (delta)
+ if ( delta )
FT_Outline_Translate( &slot->outline, delta->x, delta->y );
Exit:
@@ -47,23 +73,26 @@
return error;
}
- /* return the glyph's control box */
- static void ft_renderer_get_cbox( FT_Renderer render,
- FT_GlyphSlot slot,
- FT_BBox *cbox )
+
+ /* return the glyph's control box */
+ static
+ void ft_renderer_get_cbox( FT_Renderer render,
+ FT_GlyphSlot slot,
+ FT_BBox* cbox )
{
- MEM_Set( cbox, 0, sizeof(*cbox) );
+ MEM_Set( cbox, 0, sizeof ( *cbox ) );
- if (slot->format == render->glyph_format)
+ if ( slot->format == render->glyph_format )
FT_Outline_Get_CBox( &slot->outline, cbox );
}
- /* convert a slot's glyph image into a bitmap */
- static FT_Error ft_renderer_render( FT_Renderer render,
- FT_GlyphSlot slot,
- FT_UInt mode,
- FT_Vector* origin )
+ /* convert a slot's glyph image into a bitmap */
+ static
+ FT_Error ft_renderer_render( FT_Renderer render,
+ FT_GlyphSlot slot,
+ FT_UInt mode,
+ FT_Vector* origin )
{
FT_Error error;
FT_Outline* outline;
@@ -74,8 +103,9 @@
FT_Raster_Params params;
+
/* check glyph image format */
- if (slot->format != render->glyph_format)
+ if ( slot->format != render->glyph_format )
{
error = FT_Err_Invalid_Argument;
goto Exit;
@@ -84,7 +114,7 @@
outline = &slot->outline;
/* translate the outline to the new origin if needed */
- if (origin)
+ if ( origin )
FT_Outline_Translate( outline, origin->x, origin->y );
/* compute the control box, and grid fit it */
@@ -92,18 +122,18 @@
cbox.xMin &= -64;
cbox.yMin &= -64;
- cbox.xMax = (cbox.xMax+63) & -64;
- cbox.yMax = (cbox.yMax+63) & -64;
+ cbox.xMax = ( cbox.xMax + 63 ) & -64;
+ cbox.yMax = ( cbox.yMax + 63 ) & -64;
- width = (cbox.xMax - cbox.xMin) >> 6;
- height = (cbox.yMax - cbox.yMin) >> 6;
+ width = ( cbox.xMax - cbox.xMin ) >> 6;
+ height = ( cbox.yMax - cbox.yMin ) >> 6;
bitmap = &slot->bitmap;
memory = slot->face->memory;
/* release old bitmap buffer */
- if ((slot->flags & ft_glyph_own_bitmap))
+ if ( ( slot->flags & ft_glyph_own_bitmap ) )
{
- FREE(bitmap->buffer);
+ FREE( bitmap->buffer );
slot->flags &= ~ft_glyph_own_bitmap;
}
@@ -116,7 +146,7 @@
}
else
{
- pitch = (width+7) >> 3;
+ pitch = ( width + 7 ) >> 3;
bitmap->pixel_mode = ft_pixel_mode_mono;
}
@@ -124,7 +154,7 @@
bitmap->rows = height;
bitmap->pitch = pitch;
- if (ALLOC( bitmap->buffer, (FT_ULong)pitch * height ))
+ if ( ALLOC( bitmap->buffer, (FT_ULong)pitch * height ) )
goto Exit;
slot->flags |= ft_glyph_own_bitmap;
@@ -142,7 +172,8 @@
/* render outline into the bitmap */
error = render->raster_render( render->raster, ¶ms );
- if (error) goto Exit;
+ if ( error )
+ goto Exit;
slot->format = ft_glyph_format_bitmap;
slot->bitmap_left = cbox.xMin >> 6;
@@ -152,68 +183,79 @@
return error;
}
+
#ifndef FT_CONFIG_OPTION_NO_STD_RASTER
+
#include <ftraster.h>
- const FT_Renderer_Class ft_standard_renderer_class =
+
+ const FT_Renderer_Class ft_standard_renderer_class =
{
{
ft_module_renderer,
- sizeof( FT_RendererRec ),
+ sizeof ( FT_RendererRec ),
"standard renderer",
- 0x10000,
- 0x20000,
+ 0x10000L,
+ 0x20000L,
0, /* module specific interface */
- (FT_Module_Constructor) ft_renderer_init,
- (FT_Module_Destructor) 0,
- (FT_Module_Requester) 0
+ (FT_Module_Constructor)ft_renderer_init,
+ (FT_Module_Destructor) 0,
+ (FT_Module_Requester) 0
},
ft_glyph_format_outline,
- (FTRenderer_render) ft_renderer_render,
- (FTRenderer_transform) ft_renderer_transform,
- (FTRenderer_getCBox) ft_renderer_get_cbox,
- (FTRenderer_setMode) ft_renderer_set_mode,
+ (FTRenderer_render) ft_renderer_render,
+ (FTRenderer_transform)ft_renderer_transform,
+ (FTRenderer_getCBox) ft_renderer_get_cbox,
+ (FTRenderer_setMode) ft_renderer_set_mode,
- (FT_Raster_Funcs*) &ft_standard_raster
+ (FT_Raster_Funcs*) &ft_standard_raster
};
+
#endif /* !FT_CONFIG_OPTION_NO_STD_RASTER */
+
#ifndef FT_CONFIG_OPTION_NO_SMOOTH_RASTER
+
#include <ftgrays.h>
+
const FT_Renderer_Class ft_smooth_renderer_class =
{
{
ft_module_renderer,
- sizeof( FT_RendererRec ),
+ sizeof ( FT_RendererRec ),
"smooth renderer",
- 0x10000,
- 0x20000,
+ 0x10000L,
+ 0x20000L,
0, /* module specific interface */
- (FT_Module_Constructor) ft_renderer_init,
- (FT_Module_Destructor) 0,
- (FT_Module_Requester) 0
+ (FT_Module_Constructor)ft_renderer_init,
+ (FT_Module_Destructor) 0,
+ (FT_Module_Requester) 0
},
ft_glyph_format_outline,
- (FTRenderer_render) ft_renderer_render,
- (FTRenderer_transform) ft_renderer_transform,
- (FTRenderer_getCBox) ft_renderer_get_cbox,
- (FTRenderer_setMode) ft_renderer_set_mode,
+ (FTRenderer_render) ft_renderer_render,
+ (FTRenderer_transform)ft_renderer_transform,
+ (FTRenderer_getCBox) ft_renderer_get_cbox,
+ (FTRenderer_setMode) ft_renderer_set_mode,
- (FT_Raster_Funcs*) &ft_grays_raster
+ (FT_Raster_Funcs*) &ft_grays_raster
};
+
#endif /* !FT_CONFIG_OPTION_NO_SMOOTH_RASTER */
+
+
+/* END */
--- a/src/renderer/renderer.h
+++ b/src/renderer/renderer.h
@@ -1,14 +1,38 @@
+/***************************************************************************/
+/* */
+/* renderer.h */
+/* */
+/* FreeType renderer module (specification). */
+/* */
+/* Copyright 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 RENDERER_H
#define RENDERER_H
+
#include <freetype/ftrender.h>
+
#ifndef FT_CONFIG_OPTION_NO_STD_RASTER
- FT_EXPORT_VAR(const FT_Renderer_Class) ft_std_renderer_class;
+ FT_EXPORT_VAR( const FT_Renderer_Class ) ft_std_renderer_class;
#endif
#ifndef FT_CONFIG_OPTION_NO_SMOOTH_RASTER
- FT_EXPORT_VAR(const FT_Renderer_Class) ft_smooth_renderer_class;
+ FT_EXPORT_VAR( const FT_Renderer_Class ) ft_smooth_renderer_class;
#endif
+
#endif /* RENDERER_H */
+
+
+/* END */
--- a/src/renderer/rules.mk
+++ b/src/renderer/rules.mk
@@ -29,18 +29,18 @@
REND_COMPILE := $(FT_COMPILE) $(REND_CFLAGS)
-# REND driver sources (i.e., C files)
+# renderer driver sources (i.e., C files)
#
-REND_DRV_SRC := $(REND_DIR_)ftraster.c \
- $(REND_DIR_)ftgrays.c \
+REND_DRV_SRC := $(REND_DIR_)ftraster.c \
+ $(REND_DIR_)ftgrays.c \
$(REND_DIR_)renderer.c
-# REND driver headers
+# renderer driver headers
#
REND_DRV_H := $(REND_DRV_SRC:%c=%h)
-# REND driver object(s)
+# renderer driver object(s)
#
# REND_DRV_OBJ_M is used during `multi' builds.
# REND_DRV_OBJ_S is used during `single' builds.
@@ -48,12 +48,12 @@
REND_DRV_OBJ_M := $(REND_DRV_SRC:$(REND_DIR_)%.c=$(OBJ_)%.$O)
REND_DRV_OBJ_S := $(REND_DRV_OBJ_M)
-# REND driver source file for single build
+# renderer driver source file for single build
#
#REND_DRV_SRC_S := $(REND_DIR_)renderer.c
-# REND driver - single object
+# renderer driver - single object
#
#$(REND_DRV_OBJ_S): $(REND_DRV_SRC_S) $(REND_DRV_SRC) \
# $(FREETYPE_H) $(REND_DRV_H)
@@ -60,7 +60,7 @@
# $(REND_COMPILE) $T$@ $(REND_DRV_SRC_S)
-# REND driver - multiple objects
+# renderer driver - multiple objects
#
$(OBJ_)%.$O: $(REND_DIR_)%.c $(FREETYPE_H) $(REND_DRV_H)
$(REND_COMPILE) $T$@ $<
--- a/src/type1/t1hinter.h
+++ b/src/type1/t1hinter.h
@@ -1,25 +1,21 @@
-/*******************************************************************
- *
- * t1hinter.h 1.2
- *
- * Type1 hinter.
- *
- * Copyright 1996-1999 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.
- *
- *
- * The Hinter is in charge of fitting th scaled outline to the
- * pixel grid in order to considerably improve the quality of
- * the Type 1 font driver's output..
- *
- ******************************************************************/
+/***************************************************************************/
+/* */
+/* t1hinter.h */
+/* */
+/* Type 1 hinter (body). */
+/* */
+/* 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 T1HINTER_H
#define T1HINTER_H
@@ -31,29 +27,30 @@
#endif
-/************************************************************************
- *
- * <Struct>
- * T1_Snap_Zone
- *
- * <Description>
- * A "snap zone" is used to model either a blue zone or a stem width
- * at a given character size. It is made of a minimum and maximum
- * edge, defined in 26.6 pixels, as well as one "original" and
- * "scaled" position.
- *
- * the position corresponds to the stem width (for stem snap zones)
- * or to the blue position (for blue zones)
- *
- * <Fields>
- * orus :: original position in font units
- * pix :: current position in sub-pixel units
- * min :: minimum boundary in sub-pixel units
- * max :: maximim boundary in sub-pixel units
- *
- ************************************************************************/
-
- typedef struct T1_Snap_Zone_
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* T1_Snap_Zone */
+ /* */
+ /* <Description> */
+ /* A `snap zone' is used to model either a blue zone or a stem width */
+ /* at a given character size. It is made of a minimum and maximum */
+ /* edge, defined in 26.6 pixels, as well as an `original' and */
+ /* `scaled' position. */
+ /* */
+ /* The position corresponds to the stem width (for stem snap zones) */
+ /* or to the blue position (for blue zones). */
+ /* */
+ /* <Fields> */
+ /* orus :: The original position in font units. */
+ /* */
+ /* pix :: The current position in sub-pixel units. */
+ /* */
+ /* min :: The minimum boundary in sub-pixel units. */
+ /* */
+ /* max :: The maximum boundary in sub-pixel units. */
+ /* */
+ typedef struct T1_Snap_Zone_
{
FT_Pos orus;
FT_Pos pix;
@@ -63,21 +60,20 @@
} T1_Snap_Zone;
-/************************************************************************
- *
- * <Struct>
- * T1_Edge
- *
- * <Description>
- * A very simply structure used to model an stem edge
- *
- * <Fields>
- * orus :: original edge position in font units
- * pix :: scaled edge position in sub-pixel units
- *
- ************************************************************************/
-
- typedef struct T1_Edge_
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* T1_Edge */
+ /* */
+ /* <Description> */
+ /* A very simple structure used to model a stem edge. */
+ /* */
+ /* <Fields> */
+ /* orus :: The original edge position in font units. */
+ /* */
+ /* pix :: The scaled edge position in sub-pixel units. */
+ /* */
+ typedef struct T1_Edge_
{
FT_Pos orus;
FT_Pos pix;
@@ -85,26 +81,26 @@
} T1_Edge;
-/************************************************************************
- *
- * <Struct>
- * T1_Stem_Hint
- *
- * <Description>
- * A simple structure used to model a stem hint
- *
- * <Fields>
- * min_edge :: the hint's minimum edge
- * max_edge :: the hint's maximum edge
- * hint_flags :: some flags describing the stem properties
- *
- * <Note>
- * the min and max edges of a ghost stem have the same position,
- * even if they're coded in a weird way in the charstrings
- *
- ************************************************************************/
-
- typedef struct T1_Stem_Hint_
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* T1_Stem_Hint */
+ /* */
+ /* <Description> */
+ /* A simple structure used to model a stem hint. */
+ /* */
+ /* <Fields> */
+ /* min_edge :: The hint's minimum edge. */
+ /* */
+ /* max_edge :: The hint's maximum edge. */
+ /* */
+ /* hint_flags :: Some flags describing the stem properties. */
+ /* */
+ /* <Note> */
+ /* The min and max edges of a ghost stem have the same position, */
+ /* even if they are coded in a weird way in the charstrings. */
+ /* */
+ typedef struct T1_Stem_Hint_
{
T1_Edge min_edge;
T1_Edge max_edge;
@@ -114,109 +110,105 @@
#define T1_HINT_FLAG_ACTIVE 1 /* indicates an active stem */
-#define T1_HINT_FLAG_MIN_BORDER 2 /* unused for now.. */
-#define T1_HINT_FLAG_MAX_BORDER 4 /* unused for now.. */
+#define T1_HINT_FLAG_MIN_BORDER 2 /* unused for now */
+#define T1_HINT_FLAG_MAX_BORDER 4 /* unused for now */
+ /* hinter's configuration constants */
+#define T1_HINTER_MAX_BLUES 24 /* maximum number of blue zones */
+#define T1_HINTER_MAX_SNAPS 16 /* maximum number of stem snap zones */
+#define T1_HINTER_MAX_EDGES 64 /* maximum number of stem hints */
-/* hinter's configuration constants */
-#define T1_HINTER_MAX_BLUES 24 /* maximum number of blue zones */
-#define T1_HINTER_MAX_SNAPS 16 /* maximum number of stem snap zones */
-#define T1_HINTER_MAX_EDGES 64 /* maximum number of stem hints */
-
-/************************************************************************
- *
- * <Struct>
- * T1_Size_Hints
- *
- * <Description>
- * A structure used to model the hinting information related to
- * a size object
- *
- * <Fields>
- * supress_overshoots :: a boolean flag to tell when overshoot
- * supression should occur.
- *
- * num_blue_zones :: the total number of blue zones (top+bottom)
- * num_bottom_zones :: the number of bottom zones
- *
- * blue_zones :: the blue zones table. bottom zones are
- * stored first in the table, followed by
- * all top zones
- *
- * num_stem_snapH :: number of horizontal stem snap zones
- * stem_snapH :: horizontal stem snap zones
- *
- * num_stem_snapV :: number of vertical stem snap zones
- * stem_snapV :: vertical stem snap zones
- *
- ************************************************************************/
-
- struct T1_Size_Hints_
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* T1_Size_Hints */
+ /* */
+ /* <Description> */
+ /* A structure used to model the hinting information related to a size */
+ /* object. */
+ /* */
+ /* <Fields> */
+ /* supress_overshoots :: A boolean flag to tell whether overshoot */
+ /* supression should occur. */
+ /* */
+ /* num_blue_zones :: The total number of blue zones (top+bottom). */
+ /* */
+ /* num_bottom_zones :: The number of bottom zones. */
+ /* */
+ /* blue_zones :: The blue zones table. Bottom zones are */
+ /* stored first in the table, followed by all */
+ /* top zones. */
+ /* */
+ /* num_snap_widths :: The number of horizontal stem snap zones. */
+ /* */
+ /* snap_widths :: An array of horizontal stem snap zones. */
+ /* */
+ /* num_snap_heights :: The number of vertical stem snap zones. */
+ /* */
+ /* snap_heights :: An array of vertical stem snap zones. */
+ /* */
+ struct T1_Size_Hints_
{
FT_Bool supress_overshoots;
FT_Int num_blue_zones;
FT_Int num_bottom_zones;
- T1_Snap_Zone blue_zones[ T1_HINTER_MAX_BLUES ];
+ T1_Snap_Zone blue_zones[T1_HINTER_MAX_BLUES];
FT_Int num_snap_widths;
- T1_Snap_Zone snap_widths[ T1_HINTER_MAX_SNAPS ];
+ T1_Snap_Zone snap_widths[T1_HINTER_MAX_SNAPS];
FT_Int num_snap_heights;
- T1_Snap_Zone snap_heights[ T1_HINTER_MAX_SNAPS ];
+ T1_Snap_Zone snap_heights[T1_HINTER_MAX_SNAPS];
};
-
-/************************************************************************
- *
- * <Struct>
- * T1_Stem_Table
- *
- * <Description>
- * A simple structure used to model a set of stem hints in a
- * single direction during the loading of a given glyph outline.
- * Not all stem hints are active at a time. Moreover, stems must
- * be sorted regularly
- *
- * <Fields>
- * num_stems :: total number of stems in table
- * num_active :: number of active stems in table
- *
- * stems :: the table of all stems
- * sort :: a table of indices into the stems table, used
- * to keep a sorted list of the active stems
- *
- ************************************************************************/
-
- typedef struct T1_Stem_Table_
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* T1_Stem_Table */
+ /* */
+ /* <Description> */
+ /* A simple structure used to model a set of stem hints in a single */
+ /* direction during the loading of a given glyph outline. Not all */
+ /* stem hints are active at a time. Moreover, stems must be sorted */
+ /* regularly. */
+ /* */
+ /* <Fields> */
+ /* num_stems :: The total number of stems in the table. */
+ /* */
+ /* num_active :: The number of active stems in the table. */
+ /* */
+ /* stems :: A table of all stems. */
+ /* */
+ /* sort :: A table of indices into the stems table, used to */
+ /* keep a sorted list of the active stems. */
+ /* */
+ typedef struct T1_Stem_Table_
{
FT_Int num_stems;
FT_Int num_active;
- T1_Stem_Hint stems[ T1_HINTER_MAX_EDGES ];
- FT_Int sort [ T1_HINTER_MAX_EDGES ];
+ T1_Stem_Hint stems[T1_HINTER_MAX_EDGES];
+ FT_Int sort [T1_HINTER_MAX_EDGES];
} T1_Stem_Table;
-
-/************************************************************************
- *
- * <Struct>
- * T1_Glyph_Hints
- *
- * <Description>
- * A structure used to model the stem hints of a given glyph outline
- * during glyph loading.
- *
- * <Fields>
- * hori_stems :: horizontal stem hints table
- * vert_stems :: vertical stem hints table
- *
- ************************************************************************/
-
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* T1_Glyph_Hints */
+ /* */
+ /* <Description> */
+ /* A structure used to model the stem hints of a given glyph outline */
+ /* during glyph loading. */
+ /* */
+ /* <Fields> */
+ /* hori_stems :: The horizontal stem hints table. */
+ /* vert_stems :: The vertical stem hints table. */
+ /* */
struct T1_Glyph_Hints_
{
T1_Stem_Table hori_stems;
@@ -224,157 +216,48 @@
};
-
-/************************************************************************
- *
- * <Data>
- * t1_hinter_funcs
- *
- * <Description>
- * A table containing the address of various functions used during
- * the loading of an hinted scaled outline
- *
- ************************************************************************/
-
+ /*************************************************************************/
+ /* */
+ /* <Data> */
+ /* t1_hinter_funcs */
+ /* */
+ /* <Description> */
+ /* A table containing the address of various functions used during */
+ /* the loading of an hinted scaled outline. */
+ /* */
LOCAL_DEF
const T1_Hinter_Funcs t1_hinter_funcs;
-/************************************************************************
- *
- * <Function>
- * T1_New_Size_Hinter
- *
- * <Description>
- * Allocates a new hinter structure for a given size object
- *
- * <Input>
- * size :: handle to target size object
- *
- * <Return>
- * Error code. 0 means success
- *
- ************************************************************************/
-
LOCAL_DEF
FT_Error T1_New_Size_Hinter( T1_Size size );
-
-/************************************************************************
- *
- * <Function>
- * T1_Done_Size_Hinter
- *
- * <Description>
- * Releases a given size object's hinter structure
- *
- * <Input>
- * size :: handle to target size object
- *
- ************************************************************************/
-
LOCAL_DEF
- void T1_Done_Size_Hinter( T1_Size size );
+ void T1_Done_Size_Hinter( T1_Size size );
-
-/************************************************************************
- *
- * <Function>
- * T1_Reset_Size_Hinter
- *
- * <Description>
- * Recomputes hinting information when a given size object has
- * changed its resolutions/char sizes/pixel sizes
- *
- * <Input>
- * size :: handle to size object
- *
- * <Return>
- * Error code. 0 means success
- *
- ************************************************************************/
-
LOCAL_DEF
FT_Error T1_Reset_Size_Hinter( T1_Size size );
-
-/************************************************************************
- *
- * <Function>
- * T1_New_Glyph_Hinter
- *
- * <Description>
- * Allocates a new hinter structure for a given glyph slot
- *
- * <Input>
- * glyph :: handle to target glyph slot
- *
- * <Return>
- * Error code. 0 means success
- *
- ************************************************************************/
-
LOCAL_DEF
FT_Error T1_New_Glyph_Hinter( T1_GlyphSlot glyph );
-
-/************************************************************************
- *
- * <Function>
- * T1_Done_Glyph_Hinter
- *
- * <Description>
- * Releases a given glyph slot's hinter structure
- *
- * <Input>
- * glyph :: handle to glyph slot
- *
- ************************************************************************/
-
LOCAL_DEF
- void T1_Done_Glyph_Hinter( T1_GlyphSlot glyph );
+ void T1_Done_Glyph_Hinter( T1_GlyphSlot glyph );
-
-
-/************************************************************************
- *
- * <Function>
- * T1_Hint_Points
- *
- * <Description>
- * this function grid-fits several points in a given Type 1 builder
- * at once.
- *
- * <Input>
- * builder :: handle to target Type 1 builder
- *
- ************************************************************************/
-
LOCAL_DEF
void T1_Hint_Points( T1_Builder* builder );
-
-/************************************************************************
- *
- * <Function>
- * T1_Hint_Stems
- *
- * <Description>
- * This function is used to compute the location of each stem hint
- * between the first and second passes of the glyph loader on the
- * charstring.
- *
- * <Input>
- * builder :: handle to target builder
- *
- ************************************************************************/
-
LOCAL_DEF
void T1_Hint_Stems( T1_Builder* builder );
+
#ifdef __cplusplus
}
#endif
+
#endif /* T1HINTER_H */
+
+
+/* END */