|
|
|
@ -264,18 +264,19 @@ |
|
|
|
|
bitmap->buffer += width; |
|
|
|
|
FT_Outline_Translate( outline, sub[0].x - sub[1].x, sub[0].y - sub[1].y ); |
|
|
|
|
error = render->raster_render( render->raster, ¶ms ); |
|
|
|
|
bitmap->buffer -= width; |
|
|
|
|
if ( error ) |
|
|
|
|
goto Exit; |
|
|
|
|
|
|
|
|
|
bitmap->buffer += width; |
|
|
|
|
bitmap->buffer += 2 * width; |
|
|
|
|
FT_Outline_Translate( outline, sub[1].x - sub[2].x, sub[1].y - sub[2].y ); |
|
|
|
|
error = render->raster_render( render->raster, ¶ms ); |
|
|
|
|
bitmap->buffer -= 2 * width; |
|
|
|
|
if ( error ) |
|
|
|
|
goto Exit; |
|
|
|
|
|
|
|
|
|
x_shift -= sub[2].x; |
|
|
|
|
y_shift -= sub[2].y; |
|
|
|
|
bitmap->buffer -= 2 * width; |
|
|
|
|
|
|
|
|
|
/* XXX: Rearrange the bytes according to FT_PIXEL_MODE_LCD. */ |
|
|
|
|
/* XXX: It is more efficient to render every third byte above. */ |
|
|
|
@ -318,18 +319,19 @@ |
|
|
|
|
bitmap->buffer += pitch; |
|
|
|
|
FT_Outline_Translate( outline, sub[0].y - sub[1].y, sub[1].x - sub[0].x ); |
|
|
|
|
error = render->raster_render( render->raster, ¶ms ); |
|
|
|
|
bitmap->buffer -= pitch; |
|
|
|
|
if ( error ) |
|
|
|
|
goto Exit; |
|
|
|
|
|
|
|
|
|
bitmap->buffer += pitch; |
|
|
|
|
bitmap->buffer += 2 * pitch; |
|
|
|
|
FT_Outline_Translate( outline, sub[1].y - sub[2].y, sub[2].x - sub[1].x ); |
|
|
|
|
error = render->raster_render( render->raster, ¶ms ); |
|
|
|
|
bitmap->buffer -= 2 * pitch; |
|
|
|
|
if ( error ) |
|
|
|
|
goto Exit; |
|
|
|
|
|
|
|
|
|
x_shift -= sub[2].y; |
|
|
|
|
y_shift += sub[2].x; |
|
|
|
|
bitmap->buffer -= 2 * pitch; |
|
|
|
|
|
|
|
|
|
bitmap->pitch /= 3; |
|
|
|
|
bitmap->rows *= 3; |
|
|
|
|