> > >> > While debugging through the `GF_Glyph_Load' function in >> >> > `gfdrivr.c', I found out that the typecasting of `FT_Face' into >> >> > `GF_Face' is not working properly. In, `GF_Face gf = >> >> > (GF_Face)FT_SIZE_FACE( size );', when I extract the `gf_glyph' >> >> > element from `gf', it is unable to return the glyph bitmap table. >> >> > Can anyone please point out where the error can be. >> >> >> >> Obviously, the size object doesn't contain the right GF_Face >> >> object. >> > >> > But, then this way works for bdf and winfont. Why is it so? >> >> I guess there is a buglet somewhere... > > > I checked through gdb, it shows that the address of `GF_Face' does not > change > and is the same as returned by `FT_SIZE_FACE', Can there be any > other problem? please help. > Here is the output of gdb... > > > Breakpoint 1, main (argc=3, argv=0x7fffffffdb78) at ftexample.c:72 > 72 { > (gdb) watch -l face > Hardware watchpoint 2: -location face > (gdb) c > Continuing. > Hi I am here1 > Hi I am here2 > FT_Open_Face: Requesting face 0 > FT_Stream_Open: opened `cmr10.600gf' (24148 bytes) successfully > TTF driver > SFNT driver > not a font using the SFNT container format > Type 1 driver > not a Type 1 font > CFF driver > SFNT driver > not a font using the SFNT container format > not a CFF font header > CID driver > not a CID-keyed font > PFR driver > not a PFR font > Type 42 driver > not a Type42 font > Windows FNT driver > not a Windows FNT file > PCF driver > ... try gzip stream > ... try LZW stream > ... try Bzip2 stream > not a PCF file > BDF driver > not a BDF file > GF driver > gf_load_font: GF_ID(131) found gf_load_font: GF_POST_POST(249) found > gf_load_font: GF Postamble found > gf_load_font: Allocated bitmap table > number of glyphs: allocated 128 go->code_min is 0 and go->code_max is 255 > FT_Open_Face: New face object, adding to list > FT_Open_Face: Creating glyph slot > FT_New_GlyphSlot: Creating new slot object > FT_New_GlyphSlot: Return 0x0 > FT_Open_Face: Creating size object > > Hardware watchpoint 2: -location face > > Old value = (struct FT_FaceRec_ *) 0x7 > New value = (struct FT_FaceRec_ *) 0x5555557a9360 > 0x00007ffff7b22c8d in ft_open_face_internal (library=0x5555557a84c0, > args=args@entry=0x7fffffffd990, face_index=0, > aface=0x7fffffffda28, test_mac_fonts=test_mac_fonts@entry=1 '\001') > at /home/parth/freetype-devel/src/base/ftobjs.c:2623 > 2623 *aface = face; > (gdb) c > Continuing. > FT_Open_Face: Return 0x0 > Hi I am here3 face->num_glyphs is 128 > FT_Request_Size (gf driver): > x scale: 0 (0.000000) > y scale: 0 (0.000000) > ascender: 0.000000 > descender: 0.000000 > height: 0.000000 > max advance: 0.000000 > x ppem: 0 > y ppem: 0 > Hi I am here > Hi I am here in transform > HI I am here in FT_Load_Char and glyph_index1 is 65 > HI I am here in FT_Load_Char and glyph_index2 is 65 > Hi I reached GF_Load_Glyph gf is 0x5555557a9360 face is 0x5555557a9360 /* > In FT_SIZE_FACE */ > GF_Glyph_Load: glyph index 65 > invalid glyph index > go->code_min is 0 and go->code_max is 0 /* here go->code_max should be 255 > if the GF_Face is properly extracted */ > > > > > > > FT_Done_Library: close faces for type42 > FT_Done_Library: close faces for truetype > FT_Done_Library: close faces for type1 > FT_Done_Library: close faces for cff > FT_Done_Library: close faces for t1cid > FT_Done_Library: close faces for pfr > FT_Done_Library: close faces for type42 > FT_Done_Library: close faces for winfonts > FT_Done_Library: close faces for pcf > FT_Done_Library: close faces for bdf > FT_Done_Library: close faces for gf > > Hardware watchpoint 2: -location face > > Old value = (struct FT_FaceRec_ *) 0x5555557a9360 > New value = (struct FT_FaceRec_ *) 0x0 > 0x00007ffff73b5872 in __GI___call_tls_dtors () at > cxa_thread_atexit_impl.c:145 > 145 cxa_thread_atexit_impl.c: No such file or directory. > (gdb) Quit > (gdb) >
I found the buglet, it was in `gf_free_font' function. Now, it is properly allocating the `bitmap' and glyph metrics, but `ftexample' is not showing the image of the glyph. I am not able to figure out why is it not showing an image. Can you point out some possible error? Please help. This is the output from `ftexample': FT_Request_Size (gf driver): x scale: 0 (0.000000) y scale: 0 (0.000000) ascender: 0.000000 descender: 0.000000 height: 0.000000 max advance: 0.000000 x ppem: 0 y ppem: 0 Hi I am here Hi I am here in transform GF_Glyph_Load: glyph index 65 FT_Load_Glyph: index 65, flags 0x4 x advance: 6.343750 y advance: 2.953125 linear x advance: 0.000000 linear y advance: 0.000000 bitmap 7x7, monochrome bitmap (mode 1) Thank you Parth
_______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/freetype-devel