1999-12-17 00:11:37 +01:00
|
|
|
/***************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* ftimage.h */
|
|
|
|
/* */
|
2000-07-14 08:16:47 +02:00
|
|
|
/* FreeType glyph image formats and default raster interface */
|
|
|
|
/* (specification). */
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
/* */
|
2005-04-14 18:03:15 +02:00
|
|
|
/* Copyright 1996-2001, 2002, 2003, 2004, 2005 by */
|
2000-07-14 08:16:47 +02:00
|
|
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* This file is part of the FreeType project, and may only be used, */
|
|
|
|
/* modified, and distributed under the terms of the FreeType project */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* 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. */
|
|
|
|
/* */
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* Note: A `raster' is simply a scan-line converter, used to render */
|
|
|
|
/* FT_Outlines into FT_Bitmaps. */
|
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
|
|
|
|
|
|
|
|
* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
2000-12-01 18:25:58 +01:00
|
|
|
#ifndef __FTIMAGE_H__
|
|
|
|
#define __FTIMAGE_H__
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-05 06:32:02 +02:00
|
|
|
|
2002-09-16 08:15:31 +02:00
|
|
|
/* _STANDALONE_ is from ftgrays.c */
|
|
|
|
#ifndef _STANDALONE_
|
2000-12-04 23:53:55 +01:00
|
|
|
#include <ft2build.h>
|
2002-09-16 08:15:31 +02:00
|
|
|
#endif
|
* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
2000-12-01 18:25:58 +01:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
|
* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
2000-12-01 18:25:58 +01:00
|
|
|
FT_BEGIN_HEADER
|
2000-07-05 06:32:02 +02:00
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Section> */
|
|
|
|
/* basic_types */
|
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
|
|
|
|
2000-07-05 06:32:02 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
|
|
|
/* FT_Pos */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* The type FT_Pos is a 32-bit integer used to store vectorial */
|
|
|
|
/* coordinates. Depending on the context, these can represent */
|
2003-11-09 09:37:14 +01:00
|
|
|
/* distances in integer font units, or 16,16, or 26.6 fixed float */
|
|
|
|
/* pixel coordinates. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
typedef signed long FT_Pos;
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* FT_Vector */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* A simple structure used to store a 2D vector; coordinates are of */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* the FT_Pos type. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* x :: The horizontal coordinate. */
|
|
|
|
/* y :: The vertical coordinate. */
|
|
|
|
/* */
|
|
|
|
typedef struct FT_Vector_
|
|
|
|
{
|
|
|
|
FT_Pos x;
|
|
|
|
FT_Pos y;
|
|
|
|
|
|
|
|
} FT_Vector;
|
|
|
|
|
|
|
|
|
2001-02-13 18:42:49 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* FT_BBox */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A structure used to hold an outline's bounding box, i.e., the */
|
|
|
|
/* coordinates of its extrema in the horizontal and vertical */
|
|
|
|
/* directions. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* xMin :: The horizontal minimum (left-most). */
|
|
|
|
/* */
|
|
|
|
/* yMin :: The vertical minimum (bottom-most). */
|
|
|
|
/* */
|
|
|
|
/* xMax :: The horizontal maximum (right-most). */
|
|
|
|
/* */
|
|
|
|
/* yMax :: The vertical maximum (top-most). */
|
|
|
|
/* */
|
|
|
|
typedef struct FT_BBox_
|
|
|
|
{
|
|
|
|
FT_Pos xMin, yMin;
|
|
|
|
FT_Pos xMax, yMax;
|
|
|
|
|
|
|
|
} FT_BBox;
|
|
|
|
|
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
|
|
|
/* FT_Pixel_Mode */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* An enumeration type used to describe the format of pixels in a */
|
|
|
|
/* given bitmap. Note that additional formats may be added in the */
|
|
|
|
/* future. */
|
|
|
|
/* */
|
2002-09-18 00:57:29 +02:00
|
|
|
/* <Values> */
|
|
|
|
/* FT_PIXEL_MODE_NONE :: */
|
|
|
|
/* Value 0 is reserved. */
|
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* FT_PIXEL_MODE_MONO :: */
|
|
|
|
/* A monochrome bitmap, using 1 bit per pixel. Note that pixels */
|
|
|
|
/* are stored in most-significant order (MSB), which means that */
|
|
|
|
/* the left-most pixel in a byte has value 128. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* FT_PIXEL_MODE_GRAY :: */
|
|
|
|
/* An 8-bit bitmap, generally used to represent anti-aliased glyph */
|
|
|
|
/* images. Each pixel is stored in one byte. Note that the number */
|
|
|
|
/* of value "gray" levels is stored in the `num_bytes' field of */
|
|
|
|
/* the @FT_Bitmap structure (it generally is 256). */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
|
|
|
/* FT_PIXEL_MODE_GRAY2 :: */
|
|
|
|
/* A 2-bit/pixel bitmap, used to represent embedded anti-aliased */
|
|
|
|
/* bitmaps in font files according to the OpenType specification. */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* We haven't found a single font using this format, however. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
|
|
|
/* FT_PIXEL_MODE_GRAY4 :: */
|
|
|
|
/* A 4-bit/pixel bitmap, used to represent embedded anti-aliased */
|
|
|
|
/* bitmaps in font files according to the OpenType specification. */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* We haven't found a single font using this format, however. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* FT_PIXEL_MODE_LCD :: */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
|
|
|
|
/* images used for display on LCD displays; the bitmap's width is */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* three times wider than the original glyph image. See also */
|
|
|
|
/* @FT_RENDER_MODE_LCD. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
|
|
|
/* FT_PIXEL_MODE_LCD_V :: */
|
|
|
|
/* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
|
|
|
|
/* images used for display on rotated LCD displays; the bitmap's */
|
|
|
|
/* height is three times taller than the original glyph image. */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* See also @FT_RENDER_MODE_LCD_V. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
typedef enum FT_Pixel_Mode_
|
1999-12-17 00:11:37 +01:00
|
|
|
{
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
FT_PIXEL_MODE_NONE = 0,
|
|
|
|
FT_PIXEL_MODE_MONO,
|
|
|
|
FT_PIXEL_MODE_GRAY,
|
|
|
|
FT_PIXEL_MODE_GRAY2,
|
|
|
|
FT_PIXEL_MODE_GRAY4,
|
|
|
|
FT_PIXEL_MODE_LCD,
|
|
|
|
FT_PIXEL_MODE_LCD_V,
|
|
|
|
|
|
|
|
FT_PIXEL_MODE_MAX /* do not remove */
|
2000-04-04 18:46:12 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
} FT_Pixel_Mode;
|
|
|
|
|
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
|
|
|
/* ft_pixel_mode_xxx */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* A list of deprecated constants. Use the corresponding */
|
|
|
|
/* @FT_Pixel_Mode values instead. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
|
|
|
/* <Values> */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* ft_pixel_mode_none :: see @FT_PIXEL_MODE_NONE */
|
|
|
|
/* ft_pixel_mode_mono :: see @FT_PIXEL_MODE_MONO */
|
|
|
|
/* ft_pixel_mode_grays :: see @FT_PIXEL_MODE_GRAY */
|
|
|
|
/* ft_pixel_mode_pal2 :: see @FT_PIXEL_MODE_GRAY2 */
|
|
|
|
/* ft_pixel_mode_pal4 :: see @FT_PIXEL_MODE_GRAY4 */
|
|
|
|
/* */
|
|
|
|
#define ft_pixel_mode_none FT_PIXEL_MODE_NONE
|
|
|
|
#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO
|
|
|
|
#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY
|
|
|
|
#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2
|
|
|
|
#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
|
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#if 0
|
2002-09-05 17:10:54 +02:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
|
|
|
/* FT_Palette_Mode */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* THIS TYPE IS DEPRECATED. DO NOT USE IT! */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* An enumeration type used to describe the format of a bitmap */
|
|
|
|
/* palette, used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* ft_palette_mode_rgb :: The palette is an array of 3-bytes RGB */
|
|
|
|
/* records. */
|
|
|
|
/* */
|
|
|
|
/* ft_palette_mode_rgba :: The palette is an array of 4-bytes RGBA */
|
|
|
|
/* records. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* As ft_pixel_mode_pal2, pal4 and pal8 are currently unused by */
|
|
|
|
/* FreeType, these types are not handled by the library itself. */
|
|
|
|
/* */
|
|
|
|
typedef enum FT_Palette_Mode_
|
1999-12-17 00:11:37 +01:00
|
|
|
{
|
|
|
|
ft_palette_mode_rgb = 0,
|
|
|
|
ft_palette_mode_rgba,
|
2000-04-04 18:46:12 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
ft_palettte_mode_max /* do not remove */
|
2000-04-04 18:46:12 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
} FT_Palette_Mode;
|
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#endif
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2002-09-05 17:10:54 +02:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* FT_Bitmap */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A structure used to describe a bitmap or pixmap to the raster. */
|
|
|
|
/* Note that we now manage pixmaps of various depths through the */
|
|
|
|
/* `pixel_mode' field. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* rows :: The number of bitmap rows. */
|
|
|
|
/* */
|
|
|
|
/* width :: The number of pixels in bitmap row. */
|
|
|
|
/* */
|
|
|
|
/* pitch :: The pitch's absolute value is the number of bytes */
|
|
|
|
/* taken by one bitmap row, including padding. */
|
|
|
|
/* However, the pitch is positive when the bitmap has */
|
|
|
|
/* a `down' flow, and negative when it has an `up' */
|
|
|
|
/* flow. In all cases, the pitch is an offset to add */
|
|
|
|
/* to a bitmap pointer in order to go down one row. */
|
|
|
|
/* */
|
|
|
|
/* buffer :: A typeless pointer to the bitmap buffer. This */
|
|
|
|
/* value should be aligned on 32-bit boundaries in */
|
|
|
|
/* most cases. */
|
|
|
|
/* */
|
|
|
|
/* num_grays :: This field is only used with */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* `FT_PIXEL_MODE_GRAY'; it gives the number of gray */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* levels used in the bitmap. */
|
|
|
|
/* */
|
2003-07-01 09:28:55 +02:00
|
|
|
/* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. */
|
|
|
|
/* See @FT_Pixel_Mode for possible values. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
2004-12-14 00:16:59 +01:00
|
|
|
/* palette_mode :: This field is intended for paletted pixel modes; */
|
|
|
|
/* it indicates how the palette is stored. Not */
|
|
|
|
/* used currently. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
2004-12-14 00:16:59 +01:00
|
|
|
/* palette :: A typeless pointer to the bitmap palette; this */
|
|
|
|
/* field is intended for paletted pixel modes. Not */
|
|
|
|
/* used currently. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* <Note> */
|
2004-12-14 00:16:59 +01:00
|
|
|
/* For now, the only pixel modes supported by FreeType are mono and */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* grays. However, drivers might be added in the future to support */
|
|
|
|
/* more `colorful' options. */
|
|
|
|
/* */
|
|
|
|
typedef struct FT_Bitmap_
|
1999-12-17 00:11:37 +01:00
|
|
|
{
|
2000-07-05 06:32:02 +02:00
|
|
|
int rows;
|
|
|
|
int width;
|
|
|
|
int pitch;
|
|
|
|
unsigned char* buffer;
|
|
|
|
short num_grays;
|
|
|
|
char pixel_mode;
|
|
|
|
char palette_mode;
|
|
|
|
void* palette;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
} FT_Bitmap;
|
|
|
|
|
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Section> */
|
|
|
|
/* outline_processing */
|
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
|
|
|
|
2001-01-10 07:53:49 +01:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* FT_Outline */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* This structure is used to describe an outline to the scan-line */
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
/* converter. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
2000-03-09 12:46:25 +01:00
|
|
|
/* n_contours :: The number of contours in the outline. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-03-09 12:46:25 +01:00
|
|
|
/* n_points :: The number of points in the outline. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-03-09 12:46:25 +01:00
|
|
|
/* points :: A pointer to an array of `n_points' FT_Vector */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* elements, giving the outline's point coordinates. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* tags :: A pointer to an array of `n_points' chars, giving */
|
2001-07-12 23:46:44 +02:00
|
|
|
/* each outline point's type. If bit 0 is unset, the */
|
|
|
|
/* point is `off' the curve, i.e. a Bezier control */
|
|
|
|
/* point, while it is `on' when set. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* Bit 1 is meaningful for `off' points only. If set, */
|
|
|
|
/* it indicates a third-order Bezier arc control point; */
|
|
|
|
/* and a second-order control point if unset. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-03-09 12:46:25 +01:00
|
|
|
/* contours :: An array of `n_contours' shorts, giving the end */
|
|
|
|
/* point of each contour within the outline. For */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* example, the first contour is defined by the points */
|
|
|
|
/* `0' to `contours[0]', the second one is defined by */
|
|
|
|
/* the points `contours[0]+1' to `contours[1]', etc. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* flags :: A set of bit flags used to characterize the outline */
|
|
|
|
/* and give hints to the scan-converter and hinter on */
|
|
|
|
/* how to convert/grid-fit it. See FT_Outline_Flags. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
typedef struct FT_Outline_
|
|
|
|
{
|
|
|
|
short n_contours; /* number of contours in glyph */
|
|
|
|
short n_points; /* number of points in the glyph */
|
|
|
|
|
|
|
|
FT_Vector* points; /* the outline's points */
|
2000-03-09 12:46:25 +01:00
|
|
|
char* tags; /* the points flags */
|
1999-12-17 00:11:37 +01:00
|
|
|
short* contours; /* the contour end points */
|
|
|
|
|
2000-03-09 12:46:25 +01:00
|
|
|
int flags; /* outline masks */
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2000-03-06 14:23:32 +01:00
|
|
|
} FT_Outline;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
|
2000-03-06 14:23:32 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
2003-07-09 17:20:32 +02:00
|
|
|
/* FT_OUTLINE_FLAGS */
|
2000-03-06 14:23:32 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2003-06-18 08:59:57 +02:00
|
|
|
/* A list of bit-field constants use for the flags in an outline's */
|
2003-07-09 17:20:32 +02:00
|
|
|
/* `flags' field. */
|
2000-03-06 14:23:32 +01:00
|
|
|
/* */
|
2002-09-18 00:57:29 +02:00
|
|
|
/* <Values> */
|
|
|
|
/* FT_OUTLINE_NONE :: Value 0 is reserved. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_OUTLINE_OWNER :: If set, this flag indicates that the */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* outline's field arrays (i.e. */
|
|
|
|
/* `points', `flags' & `contours') are */
|
|
|
|
/* `owned' by the outline object, and */
|
|
|
|
/* should thus be freed when it is */
|
|
|
|
/* destroyed. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_OUTLINE_EVEN_ODD_FILL :: By default, outlines are filled using */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* the non-zero winding rule. If set to */
|
|
|
|
/* 1, the outline will be filled using */
|
|
|
|
/* the even-odd fill rule (only works */
|
|
|
|
/* with the smooth raster). */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_OUTLINE_REVERSE_FILL :: By default, outside contours of an */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* outline are oriented in clock-wise */
|
|
|
|
/* direction, as defined in the TrueType */
|
|
|
|
/* specification. This flag is set if */
|
|
|
|
/* the outline uses the opposite */
|
|
|
|
/* direction (typically for Type 1 */
|
|
|
|
/* fonts). This flag is ignored by the */
|
|
|
|
/* scan-converter. However, it is very */
|
|
|
|
/* important for the auto-hinter. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_OUTLINE_IGNORE_DROPOUTS :: By default, the scan converter will */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* try to detect drop-outs in an outline */
|
|
|
|
/* and correct the glyph bitmap to */
|
|
|
|
/* ensure consistent shape continuity. */
|
|
|
|
/* If set, this flag hints the scan-line */
|
|
|
|
/* converter to ignore such cases. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_OUTLINE_HIGH_PRECISION :: This flag indicates that the */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* scan-line converter should try to */
|
|
|
|
/* convert this outline to bitmaps with */
|
|
|
|
/* the highest possible quality. It is */
|
|
|
|
/* typically set for small character */
|
|
|
|
/* sizes. Note that this is only a */
|
|
|
|
/* hint, that might be completely */
|
|
|
|
/* ignored by a given scan-converter. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_OUTLINE_SINGLE_PASS :: This flag is set to force a given */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* scan-converter to only use a single */
|
|
|
|
/* pass over the outline to render a */
|
|
|
|
/* bitmap glyph image. Normally, it is */
|
|
|
|
/* set for very large character sizes. */
|
|
|
|
/* It is only a hint, that might be */
|
|
|
|
/* completely ignored by a given */
|
|
|
|
/* scan-converter. */
|
|
|
|
/* */
|
2003-06-18 08:59:57 +02:00
|
|
|
#define FT_OUTLINE_NONE 0x0
|
|
|
|
#define FT_OUTLINE_OWNER 0x1
|
|
|
|
#define FT_OUTLINE_EVEN_ODD_FILL 0x2
|
|
|
|
#define FT_OUTLINE_REVERSE_FILL 0x4
|
|
|
|
#define FT_OUTLINE_IGNORE_DROPOUTS 0x8
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2003-06-18 08:59:57 +02:00
|
|
|
#define FT_OUTLINE_HIGH_PRECISION 0x100
|
|
|
|
#define FT_OUTLINE_SINGLE_PASS 0x200
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2002-09-05 17:10:54 +02:00
|
|
|
|
2002-09-18 00:57:29 +02:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2002-09-18 13:32:12 +02:00
|
|
|
* @enum:
|
2003-07-09 17:20:32 +02:00
|
|
|
* ft_outline_flags
|
2002-09-18 00:57:29 +02:00
|
|
|
*
|
|
|
|
* @description:
|
2002-09-18 13:32:12 +02:00
|
|
|
* These constants are deprecated. Please use the corresponding
|
2003-07-09 17:20:32 +02:00
|
|
|
* @FT_OUTLINE_FLAGS values.
|
2002-09-18 00:57:29 +02:00
|
|
|
*
|
|
|
|
* @values:
|
2002-09-18 13:32:12 +02:00
|
|
|
* ft_outline_none :: See @FT_OUTLINE_NONE.
|
|
|
|
* ft_outline_owner :: See @FT_OUTLINE_OWNER.
|
|
|
|
* ft_outline_even_odd_fill :: See @FT_OUTLINE_EVEN_ODD_FILL.
|
|
|
|
* ft_outline_reverse_fill :: See @FT_OUTLINE_REVERSE_FILL.
|
|
|
|
* ft_outline_ignore_dropouts :: See @FT_OUTLINE_IGNORE_DROPOUTS.
|
|
|
|
* ft_outline_high_precision :: See @FT_OUTLINE_HIGH_PRECISION.
|
|
|
|
* ft_outline_single_pass :: See @FT_OUTLINE_SINGLE_PASS.
|
2002-09-18 00:57:29 +02:00
|
|
|
*/
|
|
|
|
#define ft_outline_none FT_OUTLINE_NONE
|
|
|
|
#define ft_outline_owner FT_OUTLINE_OWNER
|
|
|
|
#define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL
|
|
|
|
#define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL
|
2002-09-10 01:45:29 +02:00
|
|
|
#define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS
|
2002-09-18 00:57:29 +02:00
|
|
|
#define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION
|
|
|
|
#define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
|
2001-01-10 07:53:49 +01:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
#define FT_CURVE_TAG( flag ) ( flag & 3 )
|
1999-12-17 00:11:37 +01:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_CURVE_TAG_ON 1
|
|
|
|
#define FT_CURVE_TAG_CONIC 0
|
|
|
|
#define FT_CURVE_TAG_CUBIC 2
|
1999-12-17 00:11:37 +01:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_CURVE_TAG_TOUCH_X 8 /* reserved for the TrueType hinter */
|
|
|
|
#define FT_CURVE_TAG_TOUCH_Y 16 /* reserved for the TrueType hinter */
|
1999-12-17 00:11:37 +01:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \
|
|
|
|
FT_CURVE_TAG_TOUCH_Y )
|
2000-07-10 16:24:26 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Curve_Tag_On FT_CURVE_TAG_ON
|
|
|
|
#define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC
|
|
|
|
#define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC
|
|
|
|
#define FT_Curve_Tag_Touch_X FT_CURVE_TAG_TOUCH_X
|
|
|
|
#define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Outline_MoveToFunc */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A function pointer type used to describe the signature of a `move */
|
|
|
|
/* to' function during outline walking/decomposition. */
|
|
|
|
/* */
|
|
|
|
/* A `move to' is emitted to start a new contour in an outline. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* to :: A pointer to the target point of the `move to'. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* user :: A typeless pointer which is passed from the caller of the */
|
|
|
|
/* decomposition function. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* Error code. 0 means success. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
halved.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
strength.
Don't increase slot->advance.y.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.ac (version_info): Set to 9:9:3.
Currently, we are still binary compatible.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
s/2.1.9/2.1.10/.
* docs/CHANGES, docs/VERSION.DLL: Updated.
* ChangeLog: Split off older entries into...
* ChangeLog.20, ChangeLog.21: These new files.
The next release will be 2.2.0, so don't worry about source code
backwards compatibility.
* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
include/freetype/ftrender.h (FT_Glyph_TransformFunc,
FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
parameters with `const' where appropriate.
* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
to make glyphs centered vertically.
* src/truetype/ttgload.c (compute_glyph_metrics): Compute
vertBearingY to make glyphs centered vertically.
Fix some bugs in vertical metrics:
. loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
units.
. As we use the glyph's cbox to calculate the top bearing now
there iss no need to adjust `top'.
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
* docs/release: Update.
2005-06-16 21:07:08 +02:00
|
|
|
(*FT_Outline_MoveToFunc)( const FT_Vector* to,
|
|
|
|
void* user );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Outline_LineToFunc */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A function pointer type used to describe the signature of a `line */
|
|
|
|
/* to' function during outline walking/decomposition. */
|
|
|
|
/* */
|
|
|
|
/* A `line to' is emitted to indicate a segment in the outline. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* to :: A pointer to the target point of the `line to'. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* user :: A typeless pointer which is passed from the caller of the */
|
|
|
|
/* decomposition function. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* Error code. 0 means success. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
halved.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
strength.
Don't increase slot->advance.y.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.ac (version_info): Set to 9:9:3.
Currently, we are still binary compatible.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
s/2.1.9/2.1.10/.
* docs/CHANGES, docs/VERSION.DLL: Updated.
* ChangeLog: Split off older entries into...
* ChangeLog.20, ChangeLog.21: These new files.
The next release will be 2.2.0, so don't worry about source code
backwards compatibility.
* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
include/freetype/ftrender.h (FT_Glyph_TransformFunc,
FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
parameters with `const' where appropriate.
* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
to make glyphs centered vertically.
* src/truetype/ttgload.c (compute_glyph_metrics): Compute
vertBearingY to make glyphs centered vertically.
Fix some bugs in vertical metrics:
. loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
units.
. As we use the glyph's cbox to calculate the top bearing now
there iss no need to adjust `top'.
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
* docs/release: Update.
2005-06-16 21:07:08 +02:00
|
|
|
(*FT_Outline_LineToFunc)( const FT_Vector* to,
|
|
|
|
void* user );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Outline_LineTo_Func FT_Outline_LineToFunc
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Outline_ConicToFunc */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A function pointer type use to describe the signature of a `conic */
|
|
|
|
/* to' function during outline walking/decomposition. */
|
|
|
|
/* */
|
|
|
|
/* A `conic to' is emitted to indicate a second-order Bezier arc in */
|
|
|
|
/* the outline. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* control :: An intermediate control point between the last position */
|
|
|
|
/* and the new target in `to'. */
|
|
|
|
/* */
|
|
|
|
/* to :: A pointer to the target end point of the conic arc. */
|
|
|
|
/* */
|
|
|
|
/* user :: A typeless pointer which is passed from the caller of */
|
|
|
|
/* the decomposition function. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* Error code. 0 means success. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
halved.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
strength.
Don't increase slot->advance.y.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.ac (version_info): Set to 9:9:3.
Currently, we are still binary compatible.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
s/2.1.9/2.1.10/.
* docs/CHANGES, docs/VERSION.DLL: Updated.
* ChangeLog: Split off older entries into...
* ChangeLog.20, ChangeLog.21: These new files.
The next release will be 2.2.0, so don't worry about source code
backwards compatibility.
* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
include/freetype/ftrender.h (FT_Glyph_TransformFunc,
FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
parameters with `const' where appropriate.
* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
to make glyphs centered vertically.
* src/truetype/ttgload.c (compute_glyph_metrics): Compute
vertBearingY to make glyphs centered vertically.
Fix some bugs in vertical metrics:
. loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
units.
. As we use the glyph's cbox to calculate the top bearing now
there iss no need to adjust `top'.
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
* docs/release: Update.
2005-06-16 21:07:08 +02:00
|
|
|
(*FT_Outline_ConicToFunc)( const FT_Vector* control,
|
|
|
|
const FT_Vector* to,
|
|
|
|
void* user );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Outline_CubicToFunc */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A function pointer type used to describe the signature of a `cubic */
|
|
|
|
/* to' function during outline walking/decomposition. */
|
|
|
|
/* */
|
|
|
|
/* A `cubic to' is emitted to indicate a third-order Bezier arc. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* control1 :: A pointer to the first Bezier control point. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* control2 :: A pointer to the second Bezier control point. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* to :: A pointer to the target end point. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* user :: A typeless pointer which is passed from the caller of */
|
|
|
|
/* the decomposition function. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* Error code. 0 means success. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
halved.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
strength.
Don't increase slot->advance.y.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.ac (version_info): Set to 9:9:3.
Currently, we are still binary compatible.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
s/2.1.9/2.1.10/.
* docs/CHANGES, docs/VERSION.DLL: Updated.
* ChangeLog: Split off older entries into...
* ChangeLog.20, ChangeLog.21: These new files.
The next release will be 2.2.0, so don't worry about source code
backwards compatibility.
* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
include/freetype/ftrender.h (FT_Glyph_TransformFunc,
FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
parameters with `const' where appropriate.
* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
to make glyphs centered vertically.
* src/truetype/ttgload.c (compute_glyph_metrics): Compute
vertBearingY to make glyphs centered vertically.
Fix some bugs in vertical metrics:
. loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
units.
. As we use the glyph's cbox to calculate the top bearing now
there iss no need to adjust `top'.
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
* docs/release: Update.
2005-06-16 21:07:08 +02:00
|
|
|
(*FT_Outline_CubicToFunc)( const FT_Vector* control1,
|
|
|
|
const FT_Vector* control2,
|
|
|
|
const FT_Vector* to,
|
|
|
|
void* user );
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
|
|
|
|
#define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* FT_Outline_Funcs */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A structure to hold various function pointers used during outline */
|
|
|
|
/* decomposition in order to emit segments, conic, and cubic Beziers, */
|
|
|
|
/* as well as `move to' and `close to' operations. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* move_to :: The `move to' emitter. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* line_to :: The segment emitter. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* conic_to :: The second-order Bezier arc emitter. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* cubic_to :: The third-order Bezier arc emitter. */
|
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* shift :: The shift that is applied to coordinates before they */
|
|
|
|
/* are sent to the emitter. */
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* delta :: The delta that is applied to coordinates before they */
|
|
|
|
/* are sent to the emitter, but after the shift. */
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* The point coordinates sent to the emitters are the transformed */
|
|
|
|
/* version of the original coordinates (this is important for high */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* accuracy during scan-conversion). The transformation is simple: */
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* x' = (x << shift) - delta */
|
|
|
|
/* y' = (x << shift) - delta */
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* Set the value of `shift' and `delta' to 0 to get the original */
|
|
|
|
/* point coordinates. */
|
- MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
source in order to provide the following enhancements:
- more generic module support:
The FT_Module type is now defined to represent a handle to a given
module. The file <freetype/ftmodule.h> contains the FT_Module_Class
definition, as well as the module-loading public API
The FT_Driver type is still defined, and still represents a pointer
to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
FT_Get_Driver by FT_Get_Module, etc..
- support for generic glyph image types:
The FT_Renderer type is a pointer to a module used to perform various
operations on glyph image.
Each renderer is capable of handling images in a single format
(e.g. ft_glyph_format_outline). Its functions are used to:
- transform an glyph image
- render a glyph image into a bitmap
- return the control box (dimensions) of a given glyph image
The scan converters "ftraster.c" and "ftgrays.c" have been moved
to the new directory "src/renderer", and are used to provide two
default renderer modules.
One corresponds to the "standard" scan-converter, the other to the
"smooth" one.
The current renderer can be set through the new function
FT_Set_Renderer.
The old raster-related function FT_Set_Raster, FT_Get_Raster and
FT_Set_Raster_Mode have now disappeared, in favor of the new:
FT_Get_Renderer
FT_Set_Renderer
see the file <freetype/ftrender.h> for more details..
These changes were necessary to properly support different scalable
formats in the future, like bi-color glyphs, etc..
- glyph loader object:
A new internal object, called a 'glyph loader' has been introduced
in the base layer. It is used by all scalable format font drivers
to load glyphs and composites.
This object has been created to reduce the code size of each driver,
as each one of them basically re-implemented its functionality.
See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
more information..
- FT_GlyphSlot had new fields:
In order to support extended features (see below), the FT_GlyphSlot
structure has a few new fields:
linearHoriAdvance: this field gives the linearly scaled (i.e.
scaled but unhinted) advance width for the glyph,
expressed as a 16.16 fixed pixel value. This
is useful to perform WYSIWYG text.
linearVertAdvance: this field gives the linearly scaled advance
height for the glyph (relevant in vertical glyph
layouts only). This is useful to perform
WYSIWYG text.
Note that the two above field replace the removed "metrics2" field
in the glyph slot.
advance: this field is a vector that gives the transformed
advance for the glyph. By default, it corresponds
to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
was specified when calling FT_Load_Glyph or FT_Load_Char
bitmap_left: this field gives the distance in integer pixels from
the current pen position to the left-most pixel of
a glyph image WHEN IT IS A BITMAP. It is only valid
when the "format" field is set to
"ft_glyph_format_bitmap", for example, after calling
the new function FT_Render_Glyph.
bitmap_top: this field gives the distance in integer pixels from
the current pen position (located on the baseline) to
the top-most pixel of the glyph image WHEN IT IS A
BITMAP. Positive values correspond to upwards Y.
loader: this is a new private field for the glyph slot. Client
applications should not touch it..
- support for transforms and direct rendering in FT_Load_Glyph:
Most of the functionality found in <freetype/ftglyph.h> has been
moved to the core library. Hence, the following:
- a transform can be specified for a face through FT_Set_Transform.
this transform is applied by FT_Load_Glyph to scalable glyph images
(i.e. NOT TO BITMAPS) before the function returns, unless the
bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..
- once a glyph image has been loaded, it can be directly converted to
a bitmap by using the new FT_Render_Glyph function. Note that this
function takes the glyph image from the glyph slot, and converts
it to a bitmap whose properties are returned in "face.glyph.bitmap",
"face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
native image might be lost after the conversion.
- when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
and FT_Load_Char functions will call FT_Render_Glyph automatically
when needed.
2000-06-22 02:17:42 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
typedef struct FT_Outline_Funcs_
|
|
|
|
{
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
FT_Outline_MoveToFunc move_to;
|
|
|
|
FT_Outline_LineToFunc line_to;
|
|
|
|
FT_Outline_ConicToFunc conic_to;
|
|
|
|
FT_Outline_CubicToFunc cubic_to;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
int shift;
|
|
|
|
FT_Pos delta;
|
2000-05-04 19:24:54 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
} FT_Outline_Funcs;
|
|
|
|
|
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Section> */
|
|
|
|
/* basic_types */
|
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
|
|
|
|
2001-01-10 07:53:49 +01:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Macro> */
|
|
|
|
/* FT_IMAGE_TAG */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* This macro converts four letter tags into an unsigned long. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2002-08-18 09:15:52 +02:00
|
|
|
/* <Note> */
|
|
|
|
/* Since many 16bit compilers don't like 32bit enumerations, you */
|
|
|
|
/* should redefine this macro in case of problems to something like */
|
|
|
|
/* this: */
|
|
|
|
/* */
|
2004-04-13 23:08:17 +02:00
|
|
|
/* #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value */
|
2002-08-18 09:15:52 +02:00
|
|
|
/* */
|
|
|
|
/* to get a simple enumeration without assigning special numbers. */
|
|
|
|
/* */
|
2001-06-16 13:20:41 +02:00
|
|
|
#ifndef FT_IMAGE_TAG
|
2001-06-20 10:06:50 +02:00
|
|
|
#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \
|
|
|
|
value = ( ( (unsigned long)_x1 << 24 ) | \
|
|
|
|
( (unsigned long)_x2 << 16 ) | \
|
|
|
|
( (unsigned long)_x3 << 8 ) | \
|
|
|
|
(unsigned long)_x4 )
|
2001-06-16 13:20:41 +02:00
|
|
|
#endif /* FT_IMAGE_TAG */
|
2000-07-10 16:24:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
|
|
|
/* FT_Glyph_Format */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* An enumeration type used to describe the format of a given glyph */
|
|
|
|
/* image. Note that this version of FreeType only supports two image */
|
|
|
|
/* formats, even though future font drivers will be able to register */
|
|
|
|
/* their own format. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* <Values> */
|
|
|
|
/* FT_GLYPH_FORMAT_NONE :: */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* The value 0 is reserved and does describe a glyph format. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
|
|
|
/* FT_GLYPH_FORMAT_COMPOSITE :: */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* The glyph image is a composite of several other images. This */
|
2003-07-25 07:57:21 +02:00
|
|
|
/* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to */
|
|
|
|
/* report compound glyphs (like accented characters). */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* FT_GLYPH_FORMAT_BITMAP :: */
|
|
|
|
/* The glyph image is a bitmap, and can be described as an */
|
|
|
|
/* @FT_Bitmap. You generally need to access the `bitmap' field of */
|
|
|
|
/* the @FT_GlyphSlotRec structure to read it. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* FT_GLYPH_FORMAT_OUTLINE :: */
|
|
|
|
/* The glyph image is a vertorial outline made of line segments */
|
|
|
|
/* and Bezier arcs; it can be described as an @FT_Outline; you */
|
|
|
|
/* generally want to access the `outline' field of the */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* @FT_GlyphSlotRec structure to read it. */
|
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* FT_GLYPH_FORMAT_PLOTTER :: */
|
|
|
|
/* The glyph image is a vectorial path with no inside/outside */
|
|
|
|
/* contours. Some Type 1 fonts, like those in the Hershey family, */
|
|
|
|
/* contain glyphs in this format. These are described as */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* @FT_Outline, but FreeType isn't currently capable of rendering */
|
|
|
|
/* them correctly. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
typedef enum FT_Glyph_Format_
|
1999-12-17 00:11:37 +01:00
|
|
|
{
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ),
|
2001-06-20 10:06:50 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ),
|
|
|
|
FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ),
|
|
|
|
FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ),
|
|
|
|
FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' )
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2000-03-28 13:22:31 +02:00
|
|
|
} FT_Glyph_Format;
|
|
|
|
|
2002-09-05 17:10:54 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
|
|
|
/* ft_glyph_format_xxx */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* A list of decprecated constants. Use the corresponding */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* @FT_Glyph_Format values instead. */
|
|
|
|
/* */
|
|
|
|
/* <Values> */
|
|
|
|
/* ft_glyph_format_none :: see @FT_GLYPH_FORMAT_NONE */
|
|
|
|
/* ft_glyph_format_composite :: see @FT_GLYPH_FORMAT_COMPOSITE */
|
|
|
|
/* ft_glyph_format_bitmap :: see @FT_GLYPH_FORMAT_BITMAP */
|
|
|
|
/* ft_glyph_format_outline :: see @FT_GLYPH_FORMAT_OUTLINE */
|
|
|
|
/* ft_glyph_format_plotter :: see @FT_GLYPH_FORMAT_PLOTTER */
|
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE
|
|
|
|
#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE
|
|
|
|
#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP
|
|
|
|
#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE
|
|
|
|
#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER
|
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
|
2000-03-28 13:22:31 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/***** *****/
|
|
|
|
/***** R A S T E R D E F I N I T I O N S *****/
|
|
|
|
/***** *****/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* A raster is a scan converter, in charge of rendering an outline into */
|
|
|
|
/* a a bitmap. This section contains the public API for rasters. */
|
|
|
|
/* */
|
|
|
|
/* Note that in FreeType 2, all rasters are now encapsulated within */
|
2000-07-24 08:01:34 +02:00
|
|
|
/* specific modules called `renderers'. See `freetype/ftrender.h' for */
|
|
|
|
/* more details on renderers. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Section> */
|
2002-09-18 00:57:29 +02:00
|
|
|
/* raster */
|
2001-01-11 10:27:49 +01:00
|
|
|
/* */
|
|
|
|
/* <Title> */
|
Adding OpenType validation module. The code is based on the
(unfinished) `otlayout' module but has been heavily modified to make
it much more compact.
* src/otvalid/*: New module.
* include/freetype/ftotval.h, src/base/ftotval.c,
include/freetype/internal/services/svotval.h: New files.
* include/freetype/config/ftmodule.h: Add otv_module_class.
* include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New
macro.
* include/freetype/internal/ftserv.h
(FT_SERVICE_OPENTYPE_VALIDATE_H): New macro.
* include/freetype/internal/fttrace.h (otvmodule, otvcommon,
otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components.
* include/freetype/ftchapters.h: Updated.
* src/base/Jamfile (Library), src/base/descrip.mms (OBJS),
src/base/rules.mk (BASE_EXT_SRC): Updated.
* docs/CHANGES: Updated.
2004-09-10 16:39:00 +02:00
|
|
|
/* Scanline Converter */
|
2001-01-11 10:27:49 +01:00
|
|
|
/* */
|
|
|
|
/* <Abstract> */
|
|
|
|
/* How vectorial outlines are converted into bitmaps and pixmaps. */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* This section contains technical definitions. */
|
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
|
|
|
/* FT_Raster */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A handle (pointer) to a raster object. Each object can be used */
|
|
|
|
/* independently to convert an outline into a bitmap or pixmap. */
|
|
|
|
/* */
|
|
|
|
typedef struct FT_RasterRec_* FT_Raster;
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* <Struct> */
|
|
|
|
/* FT_Span */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* A structure used to model a single span of gray (or black) pixels */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* when rendering a monochrome or anti-aliased bitmap. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* <Fields> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* x :: The span's horizontal start position. */
|
|
|
|
/* */
|
|
|
|
/* len :: The span's length in pixels. */
|
|
|
|
/* */
|
|
|
|
/* coverage :: The span color/coverage, ranging from 0 (background) */
|
|
|
|
/* to 255 (foreground). Only used for anti-aliased */
|
|
|
|
/* rendering. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* <Note> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* This structure is used by the span drawing callback type named */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* FT_SpanFunc which takes the y-coordinate of the span as a */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* a parameter. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* The coverage value is always between 0 and 255, even if the number */
|
|
|
|
/* of gray levels have been set through FT_Set_Gray_Levels(). */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
typedef struct FT_Span_
|
2000-03-28 13:22:31 +02:00
|
|
|
{
|
2001-01-11 10:27:49 +01:00
|
|
|
short x;
|
|
|
|
unsigned short len;
|
|
|
|
unsigned char coverage;
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2000-03-28 13:22:31 +02:00
|
|
|
} FT_Span;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_SpanFunc */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* A function used as a call-back by the anti-aliased renderer in */
|
|
|
|
/* order to let client applications draw themselves the gray pixel */
|
|
|
|
/* spans on each scan line. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* y :: The scanline's y-coordinate. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* count :: The number of spans to draw on this scanline. */
|
|
|
|
/* */
|
|
|
|
/* spans :: A table of `count' spans to draw on the scanline. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* user :: User-supplied data that is passed to the callback. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* <Note> */
|
|
|
|
/* This callback allows client applications to directly render the */
|
|
|
|
/* gray spans of the anti-aliased bitmap to any kind of surfaces. */
|
|
|
|
/* */
|
|
|
|
/* This can be used to write anti-aliased outlines directly to a */
|
|
|
|
/* given background bitmap, and even perform translucency. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* Note that the `count' field cannot be greater than a fixed value */
|
|
|
|
/* defined by the FT_MAX_GRAY_SPANS configuration macro in */
|
|
|
|
/* ftoption.h. By default, this value is set to 32, which means that */
|
|
|
|
/* if there are more than 32 spans on a given scanline, the callback */
|
|
|
|
/* will be called several times with the same `y' parameter in order */
|
|
|
|
/* to draw all callbacks. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* Otherwise, the callback is only called once per scan-line, and */
|
|
|
|
/* only for those scanlines that do have `gray' pixels on them. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef void
|
* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
halved.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
strength.
Don't increase slot->advance.y.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.ac (version_info): Set to 9:9:3.
Currently, we are still binary compatible.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
s/2.1.9/2.1.10/.
* docs/CHANGES, docs/VERSION.DLL: Updated.
* ChangeLog: Split off older entries into...
* ChangeLog.20, ChangeLog.21: These new files.
The next release will be 2.2.0, so don't worry about source code
backwards compatibility.
* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
include/freetype/ftrender.h (FT_Glyph_TransformFunc,
FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
parameters with `const' where appropriate.
* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
to make glyphs centered vertically.
* src/truetype/ttgload.c (compute_glyph_metrics): Compute
vertBearingY to make glyphs centered vertically.
Fix some bugs in vertical metrics:
. loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
units.
. As we use the glyph's cbox to calculate the top bearing now
there iss no need to adjust `top'.
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
* docs/release: Update.
2005-06-16 21:07:08 +02:00
|
|
|
(*FT_SpanFunc)( int y,
|
|
|
|
int count,
|
|
|
|
const FT_Span* spans,
|
|
|
|
void* user );
|
2000-07-10 16:24:26 +02:00
|
|
|
|
2002-09-05 17:10:54 +02:00
|
|
|
#define FT_Raster_Span_Func FT_SpanFunc
|
|
|
|
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2000-03-28 13:22:31 +02:00
|
|
|
/*************************************************************************/
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* <FuncType> */
|
|
|
|
/* FT_Raster_BitTest_Func */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* <Description> */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* A function used as a call-back by the monochrome scan-converter */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* to test whether a given target pixel is already set to the drawing */
|
|
|
|
/* `color'. These tests are crucial to implement drop-out control */
|
|
|
|
/* per-se the TrueType spec. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* y :: The pixel's y-coordinate. */
|
|
|
|
/* */
|
|
|
|
/* x :: The pixel's x-coordinate. */
|
|
|
|
/* */
|
|
|
|
/* user :: User-supplied data that is passed to the callback. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Return> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* 1 if the pixel is `set', 0 otherwise. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
|
|
|
(*FT_Raster_BitTest_Func)( int y,
|
|
|
|
int x,
|
|
|
|
void* user );
|
2000-07-10 16:24:26 +02:00
|
|
|
|
2000-03-28 13:22:31 +02:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* FT_Raster_BitSet_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* A function used as a call-back by the monochrome scan-converter */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* to set an individual target pixel. This is crucial to implement */
|
|
|
|
/* drop-out control according to the TrueType specification. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* y :: The pixel's y-coordinate. */
|
|
|
|
/* */
|
|
|
|
/* x :: The pixel's x-coordinate. */
|
|
|
|
/* */
|
|
|
|
/* user :: User-supplied data that is passed to the callback. */
|
2000-03-28 13:22:31 +02:00
|
|
|
/* */
|
|
|
|
/* <Return> */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* 1 if the pixel is `set', 0 otherwise. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef void
|
|
|
|
(*FT_Raster_BitSet_Func)( int y,
|
|
|
|
int x,
|
|
|
|
void* user );
|
2000-07-10 16:24:26 +02:00
|
|
|
|
2002-09-05 17:10:54 +02:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
2003-06-18 08:59:57 +02:00
|
|
|
/* FT_RASTER_FLAG_XXX */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2003-06-18 08:59:57 +02:00
|
|
|
/* A list of bit flag constants as used in the `flags' field of a */
|
|
|
|
/* @FT_Raster_Params structure. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
2002-09-18 00:57:29 +02:00
|
|
|
/* <Values> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_RASTER_FLAG_DEFAULT :: This value is 0. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */
|
2001-01-11 10:27:49 +01:00
|
|
|
/* anti-aliased glyph image should be */
|
|
|
|
/* generated. Otherwise, it will be */
|
2003-06-18 08:59:57 +02:00
|
|
|
/* monochrome (1-bit). */
|
2001-01-11 10:27:49 +01:00
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */
|
2001-01-11 10:27:49 +01:00
|
|
|
/* rendering. In this mode, client */
|
|
|
|
/* applications must provide their own span */
|
|
|
|
/* callback. This lets them directly */
|
|
|
|
/* draw or compose over an existing bitmap. */
|
|
|
|
/* If this bit is not set, the target */
|
|
|
|
/* pixmap's buffer _must_ be zeroed before */
|
|
|
|
/* rendering. */
|
|
|
|
/* */
|
|
|
|
/* Note that for now, direct rendering is */
|
|
|
|
/* only possible with anti-aliased glyphs. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */
|
2001-01-11 10:27:49 +01:00
|
|
|
/* rendering mode. If set, the output will */
|
|
|
|
/* be clipped to a box specified in the */
|
|
|
|
/* "clip_box" field of the FT_Raster_Params */
|
|
|
|
/* structure. */
|
|
|
|
/* */
|
|
|
|
/* Note that by default, the glyph bitmap */
|
|
|
|
/* is clipped to the target pixmap, except */
|
|
|
|
/* in direct rendering mode where all spans */
|
|
|
|
/* are generated if no clipping box is set. */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
2003-06-18 08:59:57 +02:00
|
|
|
#define FT_RASTER_FLAG_DEFAULT 0x0
|
|
|
|
#define FT_RASTER_FLAG_AA 0x1
|
|
|
|
#define FT_RASTER_FLAG_DIRECT 0x2
|
|
|
|
#define FT_RASTER_FLAG_CLIP 0x4
|
2000-03-28 13:22:31 +02:00
|
|
|
|
2003-06-18 08:59:57 +02:00
|
|
|
/* deprecated */
|
2002-09-05 17:10:54 +02:00
|
|
|
#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT
|
|
|
|
#define ft_raster_flag_aa FT_RASTER_FLAG_AA
|
|
|
|
#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT
|
|
|
|
#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* FT_Raster_Params */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A structure to hold the arguments used by a raster's render */
|
|
|
|
/* function. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* target :: The target bitmap. */
|
|
|
|
/* */
|
|
|
|
/* source :: A pointer to the source glyph image (e.g. an */
|
|
|
|
/* FT_Outline). */
|
|
|
|
/* */
|
|
|
|
/* flags :: The rendering flags. */
|
|
|
|
/* */
|
|
|
|
/* gray_spans :: The gray span drawing callback. */
|
|
|
|
/* */
|
|
|
|
/* black_spans :: The black span drawing callback. */
|
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* bit_test :: The bit test callback. UNIMPLEMENTED! */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
2002-09-05 17:10:54 +02:00
|
|
|
/* bit_set :: The bit set callback. UNIMPLEMENTED! */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* user :: User-supplied data that is passed to each drawing */
|
|
|
|
/* callback. */
|
|
|
|
/* */
|
2002-01-09 22:01:18 +01:00
|
|
|
/* clip_box :: An optional clipping box. It is only used in */
|
|
|
|
/* direct rendering mode. Note that coordinates here */
|
|
|
|
/* should be expressed in _integer_ pixels (and not in */
|
|
|
|
/* 26.6 fixed-point units). */
|
2000-12-14 19:50:40 +01:00
|
|
|
/* */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* <Note> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* An anti-aliased glyph bitmap is drawn if the FT_RASTER_FLAG_AA bit */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* flag is set in the `flags' field, otherwise a monochrome bitmap */
|
|
|
|
/* will be generated. */
|
|
|
|
/* */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* If the FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* raster will call the `gray_spans' callback to draw gray pixel */
|
|
|
|
/* spans, in the case of an aa glyph bitmap, it will call */
|
|
|
|
/* `black_spans', and `bit_test' and `bit_set' in the case of a */
|
|
|
|
/* monochrome bitmap. This allows direct composition over a */
|
|
|
|
/* pre-existing bitmap through user-provided callbacks to perform the */
|
|
|
|
/* span drawing/composition. */
|
|
|
|
/* */
|
|
|
|
/* Note that the `bit_test' and `bit_set' callbacks are required when */
|
|
|
|
/* rendering a monochrome bitmap, as they are crucial to implement */
|
|
|
|
/* correct drop-out control as defined in the TrueType specification. */
|
|
|
|
/* */
|
|
|
|
typedef struct FT_Raster_Params_
|
1999-12-17 00:11:37 +01:00
|
|
|
{
|
2005-04-14 18:03:15 +02:00
|
|
|
const FT_Bitmap* target;
|
2005-05-20 08:22:20 +02:00
|
|
|
const void* source;
|
2000-03-28 13:22:31 +02:00
|
|
|
int flags;
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
FT_SpanFunc gray_spans;
|
|
|
|
FT_SpanFunc black_spans;
|
2002-09-05 17:10:54 +02:00
|
|
|
FT_Raster_BitTest_Func bit_test; /* doesn't work! */
|
|
|
|
FT_Raster_BitSet_Func bit_set; /* doesn't work! */
|
2000-03-28 13:22:31 +02:00
|
|
|
void* user;
|
2000-12-14 19:50:40 +01:00
|
|
|
FT_BBox clip_box;
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2000-03-28 13:22:31 +02:00
|
|
|
} FT_Raster_Params;
|
|
|
|
|
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Raster_NewFunc */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A function used to create a new raster object. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* memory :: A handle to the memory allocator. */
|
|
|
|
/* */
|
|
|
|
/* <Output> */
|
|
|
|
/* raster :: A handle to the new raster object. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* Error code. 0 means success. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* The `memory' parameter is a typeless pointer in order to avoid */
|
|
|
|
/* un-wanted dependencies on the rest of the FreeType code. In */
|
|
|
|
/* practice, it is a FT_Memory, i.e., a handle to the standard */
|
|
|
|
/* FreeType memory allocator. However, this field can be completely */
|
|
|
|
/* ignored by a given raster implementation. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
(*FT_Raster_NewFunc)( void* memory,
|
|
|
|
FT_Raster* raster );
|
2000-07-10 16:24:26 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Raster_New_Func FT_Raster_NewFunc
|
2000-07-10 16:24:26 +02:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Raster_DoneFunc */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A function used to destroy a given raster object. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* raster :: A handle to the raster object. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef void
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
(*FT_Raster_DoneFunc)( FT_Raster raster );
|
2000-03-28 13:22:31 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Raster_Done_Func FT_Raster_DoneFunc
|
2000-03-28 13:22:31 +02:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Raster_ResetFunc */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* FreeType provides an area of memory called the `render pool', */
|
|
|
|
/* available to all registered rasters. This pool can be freely used */
|
|
|
|
/* during a given scan-conversion but is shared by all rasters. Its */
|
|
|
|
/* content is thus transient. */
|
|
|
|
/* */
|
|
|
|
/* This function is called each time the render pool changes, or just */
|
|
|
|
/* after a new raster object is created. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* raster :: A handle to the new raster object. */
|
|
|
|
/* */
|
|
|
|
/* pool_base :: The address in memory of the render pool. */
|
|
|
|
/* */
|
|
|
|
/* pool_size :: The size in bytes of the render pool. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* Rasters can ignore the render pool and rely on dynamic memory */
|
|
|
|
/* allocation if they want to (a handle to the memory allocator is */
|
|
|
|
/* passed to the raster constructor). However, this is not */
|
|
|
|
/* recommended for efficiency purposes. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef void
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
(*FT_Raster_ResetFunc)( FT_Raster raster,
|
|
|
|
unsigned char* pool_base,
|
|
|
|
unsigned long pool_size );
|
2000-07-10 16:24:26 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Raster_Reset_Func FT_Raster_ResetFunc
|
2000-07-10 16:24:26 +02:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Raster_SetModeFunc */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* This function is a generic facility to change modes or attributes */
|
|
|
|
/* in a given raster. This can be used for debugging purposes, or */
|
|
|
|
/* simply to allow implementation-specific `features' in a given */
|
|
|
|
/* raster module. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* raster :: A handle to the new raster object. */
|
|
|
|
/* */
|
|
|
|
/* mode :: A 4-byte tag used to name the mode or property. */
|
|
|
|
/* */
|
|
|
|
/* args :: A pointer to the new mode/property to use. */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
(*FT_Raster_SetModeFunc)( FT_Raster raster,
|
|
|
|
unsigned long mode,
|
|
|
|
void* args );
|
2000-07-10 16:24:26 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc
|
2000-07-10 16:24:26 +02:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
/* FT_Raster_RenderFunc */
|
2000-07-10 16:24:26 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* Invokes a given raster to scan-convert a given glyph image into a */
|
|
|
|
/* target bitmap. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* raster :: A handle to the raster object. */
|
|
|
|
/* */
|
|
|
|
/* params :: A pointer to a FT_Raster_Params structure used to store */
|
|
|
|
/* the rendering parameters. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* Error code. 0 means success. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* The exact format of the source image depends on the raster's glyph */
|
|
|
|
/* format defined in its FT_Raster_Funcs structure. It can be an */
|
|
|
|
/* FT_Outline or anything else in order to support a large array of */
|
|
|
|
/* glyph formats. */
|
|
|
|
/* */
|
|
|
|
/* Note also that the render function can fail and return a */
|
|
|
|
/* FT_Err_Unimplemented_Feature error code if the raster used does */
|
|
|
|
/* not support direct composition. */
|
|
|
|
/* */
|
|
|
|
/* XXX: For now, the standard raster doesn't support direct */
|
|
|
|
/* composition but this should change for the final release (see */
|
|
|
|
/* the files demos/src/ftgrays.c and demos/src/ftgrays2.c for */
|
|
|
|
/* examples of distinct implementations which support direct */
|
|
|
|
/* composition). */
|
|
|
|
/* */
|
2001-06-28 09:17:51 +02:00
|
|
|
typedef int
|
* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
halved.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
strength.
Don't increase slot->advance.y.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.ac (version_info): Set to 9:9:3.
Currently, we are still binary compatible.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
s/2.1.9/2.1.10/.
* docs/CHANGES, docs/VERSION.DLL: Updated.
* ChangeLog: Split off older entries into...
* ChangeLog.20, ChangeLog.21: These new files.
The next release will be 2.2.0, so don't worry about source code
backwards compatibility.
* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
include/freetype/ftrender.h (FT_Glyph_TransformFunc,
FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
parameters with `const' where appropriate.
* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
to make glyphs centered vertically.
* src/truetype/ttgload.c (compute_glyph_metrics): Compute
vertBearingY to make glyphs centered vertically.
Fix some bugs in vertical metrics:
. loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
units.
. As we use the glyph's cbox to calculate the top bearing now
there iss no need to adjust `top'.
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
* docs/release: Update.
2005-06-16 21:07:08 +02:00
|
|
|
(*FT_Raster_RenderFunc)( FT_Raster raster,
|
|
|
|
const FT_Raster_Params* params );
|
2000-03-28 13:22:31 +02:00
|
|
|
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
#define FT_Raster_Render_Func FT_Raster_RenderFunc
|
2000-03-28 13:22:31 +02:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* FT_Raster_Funcs */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A structure used to describe a given raster class to the library. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* glyph_format :: The supported glyph format for this raster. */
|
|
|
|
/* */
|
|
|
|
/* raster_new :: The raster constructor. */
|
|
|
|
/* */
|
|
|
|
/* raster_reset :: Used to reset the render pool within the raster. */
|
|
|
|
/* */
|
|
|
|
/* raster_render :: A function to render a glyph into a given bitmap. */
|
|
|
|
/* */
|
|
|
|
/* raster_done :: The raster destructor. */
|
|
|
|
/* */
|
|
|
|
typedef struct FT_Raster_Funcs_
|
2000-03-28 13:22:31 +02:00
|
|
|
{
|
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
2002-08-27 22:20:29 +02:00
|
|
|
FT_Glyph_Format glyph_format;
|
|
|
|
FT_Raster_NewFunc raster_new;
|
|
|
|
FT_Raster_ResetFunc raster_reset;
|
|
|
|
FT_Raster_SetModeFunc raster_set_mode;
|
|
|
|
FT_Raster_RenderFunc raster_render;
|
|
|
|
FT_Raster_DoneFunc raster_done;
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2000-03-28 13:22:31 +02:00
|
|
|
} FT_Raster_Funcs;
|
2000-04-04 18:46:12 +02:00
|
|
|
|
2000-07-05 06:32:02 +02:00
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
/* */
|
|
|
|
|
|
|
|
|
* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
2000-12-01 18:25:58 +01:00
|
|
|
FT_END_HEADER
|
2000-07-05 06:32:02 +02:00
|
|
|
|
* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
2000-12-01 18:25:58 +01:00
|
|
|
#endif /* __FTIMAGE_H__ */
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-10 16:24:26 +02:00
|
|
|
|
|
|
|
/* END */
|