I solved it. It was just a mismatch between OpenGL's normalized device coordiante system, where the origin is at (-1, -1) and the coordinate system of the glyph, where the origin would be top left.
On Sun, Jun 7, 2015 at 11:41 AM, Erlend Langseth <[email protected]> wrote: > Hi! > > I'm trying to render text, using FreeType 2. My problem is in offsetting > each glyph with respect to their own origin. In this mail, with "offset", I > refer to what is called bearingX and bearingY in this > <http://www.freetype.org/freetype2/docs/tutorial/metrics.png> > illustration. > > I first render all glyphs, storing necessary metrics, then use the results > to render text. > Given an unsigned char c, this is how I render glyphs, and need to obtain > the correct offsets (C++): > > FT_Face face; > > if (!FT_Load_Char(face, c, 0)) { > if (!FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL)) { > if (!FT_Get_Char_Index( face, c )) continue; > // Set offset of glyphs accessing face->glyph here. > > I have tried to use face->glyph->bitmap_left (and bitmap_top), and also > face->glyph->metrics.horiBearingX / 64.0f (and Y), but the results always > look arbitrary: > > http://a.pomf.se/iudwvo.png And with inverted yoffset: > http://a.pomf.se/jlkngl.png > > This <https://bpaste.net/show/4c7b4fa88e67> is how I render text at the > moment (no kerning yet). (Additional question: is width, height, xadvance, > yadvance, xoffset and yoffset all metrics I need to render text?) > > On lines 27 and 28, you see how I apply the offset. size is the pixel size > of the font (note that I "normalize" the metrics by dividing by pixel size > in the first place). > > Thanks in xadvance! >
_______________________________________________ Freetype mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/freetype
