Quick and dirty hack to let those font rendering problems disappear - I don't really

know what's going on, but this appears to fix it. And since we'll get a new glyph
layout backend sooner or later, I don't want to mess with that stuff again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15176 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2005-11-26 22:26:50 +00:00
parent 560fa51713
commit 3f5eacff02
2 changed files with 22 additions and 3 deletions

View File

@ -66,7 +66,7 @@ class FontKey : public Hashable {
FontStyle objects help abstract a lot of the font engine details while
still offering plenty of information the style in question.
*/
class FontStyle : public ReferenceCounting, public Hashable, public BLocker {
class FontStyle : public ReferenceCounting, public Hashable/*, public BLocker*/ {
public:
FontStyle(node_ref& nodeRef, const char* path, FT_Face face);
virtual ~FontStyle();
@ -76,6 +76,9 @@ class FontStyle : public ReferenceCounting, public Hashable, public BLocker {
const node_ref& NodeRef() const { return fNodeRef; }
bool Lock();
void Unlock();
/*!
\fn bool FontStyle::IsFixedWidth(void)
\brief Determines whether the font's character width is fixed

View File

@ -21,6 +21,8 @@
const uint32 kInvalidFamilyFlags = ~0UL;
static BLocker sFontLock("font lock");
static int
font_score(const FontStyle* style)
@ -56,7 +58,7 @@ compare_font_styles(const FontStyle* a, const FontStyle* b)
\param face FreeType handle for the font file after it is loaded - it will be kept open until the FontStyle is destroied
*/
FontStyle::FontStyle(node_ref& nodeRef, const char* path, FT_Face face)
: BLocker(BString("FontStyle_").Append(face->style_name).String()),
: //BLocker(BString("FontStyle_").Append(face->style_name).String()),
fFreeTypeFace(face),
fName(face->style_name),
fPath(path),
@ -107,6 +109,20 @@ FontStyle::CompareTo(Hashable& other) const
}
bool
FontStyle::Lock()
{
return sFontLock.Lock();
}
void
FontStyle::Unlock()
{
return sFontLock.Unlock();
}
void
FontStyle::GetHeight(float size, font_height& height) const
{
@ -171,7 +187,7 @@ FontStyle::PreservedFace(uint16 face) const
status_t
FontStyle::UpdateFace(FT_Face face)
{
if (!IsLocked()) {
if (!sFontLock.IsLocked()) {
debugger("UpdateFace() called without having locked FontStyle!");
return B_ERROR;
}