err = FT_Render_Glyph(slot, ft_render_mode_normal);
g_assert(!err);
+ g->texw = slot->bitmap.width;
+ g->texh = slot->bitmap.rows;
+
g->padx = 1;
while (g->padx < slot->bitmap.width)
g->padx <<= 1;
g->pady <<= 1;
padbuf = g_new0(unsigned char, g->padx * g->pady);
+printf("glyph rendered to %d wide\n", slot->bitmap.width);
for (i = 0; i < slot->bitmap.rows; i++)
memcpy(padbuf + i*g->padx,
slot->bitmap.buffer + i*slot->bitmap.width,
while (c - str < bytes) {
g = GlftFontGlyph(font, c);
if (g) {
+printf("glyph width %d(%d)\n", g->width, g->x);
glTranslatef(GlftFontAdvance(font, p, g), 0.0, 0.0);
glBindTexture(GL_TEXTURE_2D, g->tnum);
glBegin(GL_QUADS);
glColor3f(0.0, 0.0, 0.0);
- glTexCoord2f(0, g->height/(float)g->pady);
+ glTexCoord2f(0, g->texh/(float)g->pady);
glVertex2i(0, 0);
- glTexCoord2f(g->width/(float)g->padx, g->height/(float)g->pady);
- glVertex2i(0 + g->width, 0);
+ glTexCoord2f(g->texw/(float)g->padx, g->texh/(float)g->pady);
+ glVertex2i(0 + g->texw, 0);
- glTexCoord2f(g->width/(float)g->padx, 0);
- glVertex2i(0 + g->width, 0 + g->height);
+ glTexCoord2f(g->texw/(float)g->padx, 0);
+ glVertex2i(0 + g->texw, 0 + g->texh);
glTexCoord2f(0, 0);
- glVertex2i(0, 0 + g->height);
+ glVertex2i(0, 0 + g->texh);
glEnd();
} else
glTranslatef(font->max_advance_width, 0.0, 0.0);