forked from minhngoc25a/freetype2
* include/freetype/freetype.h: changing version to 2.1.0 to indicate
an unstable branch. Added the declarations of FT_Get_First_Char and FT_Get_Next_Char * src/base/ftobjs.c: implemented FT_Get_First_Char and FT_Get_Next_Char
This commit is contained in:
parent
5afd3fec9b
commit
31526ef881
|
@ -1,5 +1,11 @@
|
|||
2002-02-28 David Turner <david@freetype.org>
|
||||
|
||||
* include/freetype/freetype.h: changing version to 2.1.0 to indicate
|
||||
an unstable branch. Added the declarations of FT_Get_First_Char and
|
||||
FT_Get_Next_Char
|
||||
|
||||
* src/base/ftobjs.c: implemented FT_Get_First_Char and FT_Get_Next_Char
|
||||
|
||||
* include/freetype/t1tables.h: re-naming structure types. This done
|
||||
basically:
|
||||
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
/* drivers. It starts at 2.0. */
|
||||
/* */
|
||||
#define FREETYPE_MAJOR 2
|
||||
#define FREETYPE_MINOR 0
|
||||
#define FREETYPE_PATCH 8
|
||||
#define FREETYPE_MINOR 1
|
||||
#define FREETYPE_PATCH 0
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
|
@ -2392,6 +2392,89 @@ FT_BEGIN_HEADER
|
|||
FT_ULong charcode );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FT_Get_First_Char */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* This function is used to return the first character code in the */
|
||||
/* current charmap of a given face. It will also return the */
|
||||
/* corresponding glyph index. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* face :: A handle to the source face object. */
|
||||
/* */
|
||||
/* <Output> */
|
||||
/* agindex :: glyph index of first character code. 0 if charmap */
|
||||
/* is empty.. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* the charmap's first character code. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* you should use this function with @FT_Get_Next_Char to be able */
|
||||
/* to parse all character codes available in a given charmap. */
|
||||
/* the code should look like: */
|
||||
/* */
|
||||
/* { */
|
||||
/* FT_ULong charcode; */
|
||||
/* FT_UInt gindex; */
|
||||
/* */
|
||||
/* charcode = FT_Get_First_Char( face, &gindex ); */
|
||||
/* while ( gindex != 0 ) */
|
||||
/* { */
|
||||
/* .. do something with (charcode,gindex) pair */
|
||||
/* */
|
||||
/* charcode = FT_Get_Next_Char( face, charcode, &gindex ); */
|
||||
/* } */
|
||||
/* } */
|
||||
/* */
|
||||
/* note that '*agindex' will be set to 0 if the charmap is empty. */
|
||||
/* the result itself can be 0 in two cases: if the charmap is empty */
|
||||
/* or when the value 0 is the first valid character code. */
|
||||
/* */
|
||||
FT_EXPORT( FT_ULong )
|
||||
FT_Get_First_Char( FT_Face face,
|
||||
FT_UInt *agindex );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FT_Get_Next_Char */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* This function is used to return the next character code in the */
|
||||
/* current charmap of a given face following the value 'char_code', */
|
||||
/* as well as the corresponding glyph index */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* face :: A handle to the source face object. */
|
||||
/* char_code :: starting character code */
|
||||
/* */
|
||||
/* <Output> */
|
||||
/* agindex :: glyph index of first character code. 0 if charmap */
|
||||
/* is empty.. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* the charmap's next character code. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* you should use this function with @FT_Get_First_Char to be able */
|
||||
/* to parse all character codes available in a given charmap. see */
|
||||
/* the note for this function for a simple code example.. */
|
||||
/* */
|
||||
/* note that '*agindex' will be set to 0 when there are no more */
|
||||
/* codes in the charmap.. */
|
||||
/* */
|
||||
FT_EXPORT( FT_ULong )
|
||||
FT_Get_Next_Char( FT_Face face,
|
||||
FT_ULong char_code,
|
||||
FT_UInt *agindex );
|
||||
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
|
|
|
@ -1466,19 +1466,52 @@
|
|||
/* documentation is in freetype.h */
|
||||
|
||||
FT_EXPORT_DEF( FT_ULong )
|
||||
FT_Get_Next_Char( FT_Face face,
|
||||
FT_ULong charcode )
|
||||
FT_Get_First_Char( FT_Face face,
|
||||
FT_UInt *agindex )
|
||||
{
|
||||
FT_ULong result;
|
||||
FT_ULong result = 0;
|
||||
FT_UInt gindex = 0;
|
||||
|
||||
if ( face && face->charmap )
|
||||
{
|
||||
gindex = FT_Get_Char_Index( face, 0 );
|
||||
if ( gindex == 0 )
|
||||
result = FT_Get_Next_Char( face, 0, &gindex );
|
||||
}
|
||||
|
||||
if ( agindex )
|
||||
*agindex = gindex;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* documentation is in freetype.h */
|
||||
|
||||
FT_EXPORT_DEF( FT_ULong )
|
||||
FT_Get_Next_Char( FT_Face face,
|
||||
FT_ULong charcode,
|
||||
FT_UInt *agindex )
|
||||
{
|
||||
FT_ULong result = 0;
|
||||
FT_UInt gindex = 0;
|
||||
FT_Driver driver;
|
||||
|
||||
|
||||
result = 0;
|
||||
if ( face && face->charmap )
|
||||
{
|
||||
driver = face->driver;
|
||||
result = driver->clazz->get_next_char( face->charmap, charcode );
|
||||
if ( result != 0 )
|
||||
{
|
||||
gindex = driver->clazz->get_char_index( face->charmap, result );
|
||||
if ( gindex == 0 )
|
||||
result = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ( agindex )
|
||||
*agindex = gindex;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue