Nicolas,

It looks to me like you terminate the loop too early. gindex == 0 is the last 
glyph; you could use do {} while (); rather than while () {}.

David %^>

________________________________________
From: freetype-devel-bounces+david.bevan=pb....@nongnu.org 
[mailto:freetype-devel-bounces+david.bevan=pb....@nongnu.org] On Behalf Of 
Nicolas Rougier
Sent: 23 September 2011 16:52
To: Freetype-devel@nongnu.org
Subject: [ft-devel] FT_Get_Char, FT_Get_Next_Char



Hi folks,


Using the following code with the attached (very small) font:

#include <stdio.h>
#include <ft2build.h>
#include FT_FREETYPE_H

int main(int argc, char **argv)
{
    FT_Face face;
    FT_UInt gindex;
    FT_ULong charcode;                                              
    FT_Library library;

    FT_Init_FreeType( &library );
    FT_New_Face( library, "./zapf.cff", 0, &face );

    fprintf( stderr, "Num glyphs: %ld\n", face->num_glyphs );

    charcode = FT_Get_First_Char( face, &gindex );
    while ( gindex != 0 )
    {
        fprintf( stderr, "char: %ld (index = %d)\n", charcode, gindex );
        charcode = FT_Get_Next_Char( face, charcode, &gindex );
    };

    FT_Done_Face( face );
    FT_Done_FreeType( library );
}

I'm getting the following output:

Num glyphs: 3
char: 32 (index = 1)
char: 160 (index = 1)
How do I get the last char ? (or did I do something wrong ?)
Nicolas

_______________________________________________
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to