- scalematrix.tx -= d->dx;
- scalematrix.ty -= d->dy;
- out->drawchar(out, d->font, d->used[glyphnr], color, &scalematrix);
+ scalematrix.tx -= d->dx*scalematrix.m00;
+
+ /* if this character is invisible (alpha=0), then we will have removed the
+ outline, so we make set the alpha color channel to "fully visible" again to allow
+ output devices to be more performant (transparency is expensive) */
+ if(!m.alpha)
+ color.a = 255;
+
+ out->drawchar(out, d->font, d->used[glyphnr], &color, &scalematrix);