* include/freetype/ftsizes.h, src/base/ftobjs.c, src/cache/ftcmanag.c:
added a new header, named "ftsizes.h" (FT_SIZES_H) to provide a public API to manage multiple size objects for a given FT_Face.
This commit is contained in:
parent
8bb7aba785
commit
78b6740ff2
|
@ -10,6 +10,11 @@
|
|||
with "gray_", and a new type (TArea) is defined to store area value in
|
||||
each cell (using "int" was too small on 16-bit systems)..
|
||||
|
||||
* include/freetype/ftsizes.h, src/base/ftobjs.c, src/cache/ftcmanag.c:
|
||||
added a new header, named "ftsizes.h" (FT_SIZES_H) to provide a public
|
||||
API to manage multiple size objects for a given FT_Face.
|
||||
|
||||
|
||||
2001-09-20 Detlef Würkner <TetiSoft@apg.lahn.de>
|
||||
|
||||
* builds/amiga/*: Added port to Amiga with the SAS/C compiler.
|
||||
|
|
|
@ -30,6 +30,7 @@ NO-CID-CMAPS 13-09-2001 David always
|
|||
AUTOHINT-NO-SBITS 13-09-2001 David always
|
||||
BAD-TT-RENDERING 12-09-2001 Paul Pedriana ?
|
||||
BAD-THIN-LINES 13-09-2001 David ?
|
||||
NOT-WINDOWS-METRICS 07-10-2001 David always
|
||||
|
||||
--------------------END-OF-OPENED-BUGS-TABLE----------------------------------
|
||||
|
||||
|
@ -107,3 +108,10 @@ BAD-THIN-LINES
|
|||
it seems that the anti-aliased renderer in FreeType has problems
|
||||
rendering extremely thin straight lines correctly, at least when using
|
||||
the FT_Outline_Render functions..
|
||||
|
||||
|
||||
NOT-WINDOWS-METRICS
|
||||
FreeType doesn't always return the same metrics as Windows for ascender,
|
||||
descender and text height, depending on character pixel sizes. A lot of
|
||||
testing on Windows is needed to debug this properly. It might be due to
|
||||
a rounding bug when computing the "x_scale" and "y_scale" values.
|
||||
|
|
|
@ -246,6 +246,19 @@
|
|||
#define FT_OUTLINE_H <freetype/ftoutln.h>
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* @macro: */
|
||||
/* FT_SIZES_H */
|
||||
/* */
|
||||
/* @description: */
|
||||
/* A macro used in #include statements to name the file containing */
|
||||
/* the API used to manage multiple @FT_Size objects per face. */
|
||||
/* */
|
||||
#define FT_SIZES_H <freetype/ftsizes.h>
|
||||
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* @macro: */
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
/* truetype_tables */
|
||||
/* type1_tables */
|
||||
/* sfnt_names */
|
||||
/* sizes_management */
|
||||
/* module_management */
|
||||
/* system_interface */
|
||||
/* header_file_macros */
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include <ft2build.h>
|
||||
#include FT_RENDER_H
|
||||
#include FT_SIZES_H
|
||||
#include FT_INTERNAL_MEMORY_H
|
||||
#include FT_INTERNAL_DRIVER_H
|
||||
#include FT_INTERNAL_AUTOHINT_H
|
||||
|
@ -302,46 +303,6 @@ FT_BEGIN_HEADER
|
|||
/* this must be kept exported -- it is used by the cache manager */
|
||||
/* even though it shouldn't be considered public for now */
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FT_New_Size */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Creates a new size object from a given face object. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* face :: A handle to a parent face object. */
|
||||
/* */
|
||||
/* <Output> */
|
||||
/* asize :: A handle to a new size object. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* FreeType error code. 0 means success. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_New_Size( FT_Face face,
|
||||
FT_Size* size );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FT_Done_Size */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Discards a given size object. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* size :: A handle to a target size object. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* FreeType error code. 0 means success. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Done_Size( FT_Size size );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
|
|
|
@ -1931,6 +1931,26 @@
|
|||
}
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FT_Activate_Size( FT_Size size )
|
||||
{
|
||||
FT_Face face;
|
||||
|
||||
if ( size == NULL )
|
||||
return FT_Err_Bad_Argument;
|
||||
|
||||
face = size->face;
|
||||
if ( face == NULL || face->driver == NULL )
|
||||
return FT_Err_Bad_Argument;
|
||||
|
||||
/* we don't need anything more complex than that, all size objects */
|
||||
/* are already listed by the face.. */
|
||||
face->size = size;
|
||||
|
||||
return FT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include FT_INTERNAL_OBJECTS_H
|
||||
#include FT_INTERNAL_DEBUG_H
|
||||
#include FT_LIST_H
|
||||
#include FT_SIZES_H
|
||||
|
||||
#include "ftcerror.h"
|
||||
|
||||
|
@ -123,7 +124,7 @@
|
|||
error = FT_New_Size( face, &size );
|
||||
if ( !error )
|
||||
{
|
||||
face->size = size;
|
||||
FT_Activate_Size( size );
|
||||
error = FT_Set_Pixel_Sizes( face,
|
||||
font_req->width,
|
||||
font_req->height );
|
||||
|
@ -159,7 +160,7 @@
|
|||
|
||||
if ( size->face == req->face )
|
||||
{
|
||||
size->face->size = size; /* set current size */
|
||||
FT_Activate_Size(size);
|
||||
error = FT_Set_Pixel_Sizes( req->face, req->width, req->height );
|
||||
if ( error )
|
||||
FT_Done_Size( size );
|
||||
|
@ -267,6 +268,7 @@
|
|||
manager->max_bytes = max_bytes;
|
||||
manager->request_face = requester;
|
||||
manager->request_data = req_data;
|
||||
|
||||
*amanager = manager;
|
||||
|
||||
Exit:
|
||||
|
|
Loading…
Reference in New Issue