From 00e0821ffdeea7b5b4c92a60e8fbc4686525e9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Thu, 20 Oct 2005 09:44:46 +0000 Subject: [PATCH] Use a ServerFont instance which is assigned to the currently used font, so that the FontStyle reference count reflects the fact that the AGG engine might still use the font -> I think this "fix" is valid, but I have still seen crashes in the freetype code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14446 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../app/drawing/Painter/font_support/AGGTextRenderer.cpp | 2 ++ src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp index a4b76a0b8a..62ea1da872 100644 --- a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp +++ b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp @@ -70,6 +70,7 @@ AGGTextRenderer::AGGTextRenderer() fKerning(true), fEmbeddedTransformation(), + fFont(), fLastFamilyAndStyle(0), fLastPointSize(-1.0), fLastHinted(false) @@ -111,6 +112,7 @@ AGGTextRenderer::SetFont(const ServerFont &font) fLastFamilyAndStyle = font.GetFamilyAndStyle(); fEmbeddedTransformation = transform; + fFont = font; _UpdateSizeAndHinting(font.Size(), fEmbeddedTransformation.IsIdentity() && fHinted, load); diff --git a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h index b8aaa6c9f9..bfd100e593 100644 --- a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h +++ b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h @@ -80,6 +80,7 @@ class AGGTextRenderer { Transformable fEmbeddedTransformation; // rotated or sheared font? // caching to avoid loading a font unnecessarily + ServerFont fFont; uint32 fLastFamilyAndStyle; float fLastPointSize; bool fLastHinted;