From c3bfa6fec9e253295e9188f066bbaf17992f50fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 28 Mar 2005 13:33:15 +0000 Subject: [PATCH] avoid a crash if used without attached buffer git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12090 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/drawing/Painter/Painter.cpp | 41 +++++++++++---------- 1 file changed, 22 insertions(+), 19 deletions(-) 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