diff --git a/src/servers/app/drawing/Painter/Painter.cpp b/src/servers/app/drawing/Painter/Painter.cpp index 7c8e22a094..31f4137775 100644 --- a/src/servers/app/drawing/Painter/Painter.cpp +++ b/src/servers/app/drawing/Painter/Painter.cpp @@ -612,26 +612,29 @@ Painter::DrawString(const char* utf8String, uint32 length, { fPatternHandler->SetPattern(B_SOLID_HIGH); - Transformable transform; -// TODO: convert BFont::Shear(), which is in degrees 45°...135° to whatever AGG is using -// transform.ShearBy(B_ORIGIN, fFont.Shear(), 0.0); - transform.RotateBy(B_ORIGIN, -fFont.Rotation()); - transform.TranslateBy(baseLine); - transform.ScaleBy(B_ORIGIN, fScale, fScale); - transform.TranslateBy(fOrigin); + if (fBuffer) { - fTextRenderer->RenderString(utf8String, - length, - fFontRendererSolid, - fFontRendererBin, - transform, - &fPenLocation); - // pen location is not transformed in quite the same way, - // or transformations would add up - transform.Reset(); - transform.RotateBy(B_ORIGIN, -fFont.Rotation()); - transform.TranslateBy(baseLine); - transform.Transform(&fPenLocation); + Transformable transform; +// TODO: convert BFont::Shear(), which is in degrees 45°...135° to whatever AGG is using +// transform.ShearBy(B_ORIGIN, fFont.Shear(), 0.0); + transform.RotateBy(B_ORIGIN, -fFont.Rotation()); + transform.TranslateBy(baseLine); + transform.ScaleBy(B_ORIGIN, fScale, fScale); + transform.TranslateBy(fOrigin); + + fTextRenderer->RenderString(utf8String, + length, + fFontRendererSolid, + fFontRendererBin, + transform, + &fPenLocation); + // pen location is not transformed in quite the same way, + // or transformations would add up + transform.Reset(); + transform.RotateBy(B_ORIGIN, -fFont.Rotation()); + transform.TranslateBy(baseLine); + transform.Transform(&fPenLocation); + } } // DrawString