Permalink
Browse files

Fix descender parameter was ignored on rendering truetype fonts

  • Loading branch information...
1 parent 9e99408 commit 501c5c47b6f76aa6900ee748087c8a237ce90c26 @tk0miya tk0miya committed Oct 22, 2011
Showing with 5 additions and 3 deletions.
  1. +5 −3 _imagingft.c
View
@@ -299,7 +299,7 @@ font_render(FontObject* self, PyObject* args)
{
int i, x, y;
Imaging im;
- int index, error, ascender;
+ int index, error, ascender, descender;
int load_flags;
unsigned char *source;
FT_ULong ch;
@@ -349,6 +349,7 @@ font_render(FontObject* self, PyObject* args)
int xx, x0, x1;
source = (unsigned char*) glyph->bitmap.buffer;
ascender = PIXEL(self->face->size->metrics.ascender);
+ descender = PIXEL(self->face->size->metrics.descender);
xx = x + glyph->bitmap_left;
x0 = 0;
x1 = glyph->bitmap.width;
@@ -357,7 +358,7 @@ font_render(FontObject* self, PyObject* args)
if (xx + x1 > im->xsize)
x1 = im->xsize - xx;
for (y = 0; y < glyph->bitmap.rows; y++) {
- int yy = y + ascender - glyph->bitmap_top;
+ int yy = y + ascender + descender - glyph->bitmap_top;
if (yy >= 0 && yy < im->ysize) {
/* blend this glyph into the buffer */
unsigned char *target = im->image8[yy] + xx;
@@ -378,6 +379,7 @@ font_render(FontObject* self, PyObject* args)
int xx, x0, x1;
source = (unsigned char*) glyph->bitmap.buffer;
ascender = PIXEL(self->face->size->metrics.ascender);
+ descender = PIXEL(self->face->size->metrics.descender);
xx = x + glyph->bitmap_left;
x0 = 0;
x1 = glyph->bitmap.width;
@@ -386,7 +388,7 @@ font_render(FontObject* self, PyObject* args)
if (xx + x1 > im->xsize)
x1 = im->xsize - xx;
for (y = 0; y < glyph->bitmap.rows; y++) {
- int yy = y + ascender - glyph->bitmap_top;
+ int yy = y + ascender + descender - glyph->bitmap_top;
if (yy >= 0 && yy < im->ysize) {
/* blend this glyph into the buffer */
int i;

0 comments on commit 501c5c4

Please sign in to comment.