• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SNOW-72
Type: Bug Bug
Status: Resolved Resolved
Resolution: Needs More Info
Priority: Normal Normal
Assignee: Unassigned
Reporter: Aleric Inglewood
Votes: 0
Watchers: 3
Operations

If you were logged in you would be able to see more operations.
6. Second Life Snowglobe - SNOW

Fonts are not readable / unacceptably borked

Created: 25/Jun/09 05:58 PM   Updated: 08/Oct/09 10:21 AM
Return to search
Component/s: None
Affects Version/s: Snowglobe 1.0
Fix Version/s: Snowglobe mysterious future

File Attachments: 1. File SNOW-72.diff (3 kB)

Image Attachments:

1. Screenshot-5.png
(42 kB)

2. Screenshot-6.png
(1.26 MB)
Environment:
Snowglobe 1.0.2 (0) Jun 26 2009 02:31:25 (Open Metaverse Viewer)
Release Notes

Built with GCC version 40303

CPU: Intel(R) Core(TM)2 Quad CPU @ 2.66GHz
Memory: 3970 MB
OS Version: Linux 2.6.26-2-amd64 #1 SMP Fri Mar 27 04:02:59 UTC 2009 x86_64
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: GeForce 9600 GT/PCI/SSE2
OpenGL Version: 2.1.2 NVIDIA 173.14.09

libcurl Version: libcurl/7.18.2 OpenSSL/0.9.8k zlib/1.2.3.3 c-ares/1.6.0 libidn/1.14 libssh2/0.18
J2C Decoder Version: OpenJPEG: 1.3.0, Runtime: 1.3.0
Audio Driver Version: OpenAL, version 1.1 ALSOFT 1.8.466 / OpenAL Community / OpenAL Soft: ALSA Software
Issue Links:
Relates
 

Last Triaged: 06/Oct/09 03:00 PM
Source Version: snowglobe SVN revision 2460
Patch attached: Patch attached


 Description  « Hide
The fonts look unacceptably bad.

I after applying the following patch:

Index: llrender/llfont.cpp
===================================================================
--- llrender/llfont.cpp	(revision 2453)
+++ llrender/llfont.cpp	(working copy)
@@ -199,6 +199,7 @@
 	{
 		return FALSE;
 	}
+	llinfos << "*** *** *** CALLING FT_New_Face(gFTLibrary, \"" << filename << "\", 0, &mFTFace)" << llendl;
 
 	mIsFallback = is_fallback;
 	F32 pixels_per_em = (point_size / 72.f)*vert_dpi; // Size in inches * dpi
Index: llrender/llfont.h
===================================================================
--- llrender/llfont.h	(revision 2453)
+++ llrender/llfont.h	(working copy)
@@ -119,6 +119,7 @@
 	virtual F32 getAscenderHeight() const;
 	virtual F32 getDescenderHeight() const;
 
+	std::string const& getName(void) const { return mName; }
 
 // For a lowercase "g":
 //
Index: llrender/llfontregistry.cpp
===================================================================
--- llrender/llfontregistry.cpp	(revision 2453)
+++ llrender/llfontregistry.cpp	(working copy)
@@ -467,6 +467,8 @@
 	{
 		llwarns << "createFont failed in some way" << llendl;
 	}
+	else
+	  	llinfos << "*** *** *** ADDING mFontMap[" << norm_desc.getName() << "] = " << result->getName() << llendl;
 	mFontMap[norm_desc] = result;
 	return result;
 }

I got the following debug output:

2009-06-26T00:48:10Z INFO: createFont: createFont SansSerif size Small style 0
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-japanese-mincho.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/Symbol.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/b018012l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/d050000l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/n019003l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/wasy10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/mathml/math1___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Trebuchet_MS.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/openoffice/opens___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/cmmi10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Courier_New.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: createFont: *** *** *** ADDING mFontMap[SansSerif] = /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
2009-06-26T00:48:10Z INFO: createFont: createFont SansSerif size Medium style 0
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-japanese-mincho.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/Symbol.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/b018012l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/d050000l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/n019003l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/wasy10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/mathml/math1___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Trebuchet_MS.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/openoffice/opens___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/cmmi10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Courier_New.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: createFont: *** *** *** ADDING mFontMap[SansSerif] = /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
2009-06-26T00:48:10Z INFO: createFont: createFont SansSerif size Large style 0
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-japanese-mincho.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/Symbol.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/b018012l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/d050000l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/n019003l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/wasy10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/mathml/math1___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Trebuchet_MS.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/openoffice/opens___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/cmmi10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Courier_New.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: createFont: *** *** *** ADDING mFontMap[SansSerif] = /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
2009-06-26T00:48:10Z INFO: createFont: createFont SansSerif size Huge style 0
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-japanese-mincho.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/Symbol.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/b018012l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/d050000l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/n019003l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/wasy10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/mathml/math1___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Trebuchet_MS.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/openoffice/opens___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/cmmi10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Courier_New.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: createFont: *** *** *** ADDING mFontMap[SansSerif] = /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
2009-06-26T00:48:10Z INFO: createFont: createFont SansSerif size Medium style 1
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-japanese-mincho.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/Symbol.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/b018012l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/d050000l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/n019003l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/wasy10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/mathml/math1___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Trebuchet_MS.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/openoffice/opens___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/cmmi10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Courier_New.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: createFont: *** *** *** ADDING mFontMap[SansSerif] = /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
2009-06-26T00:48:10Z INFO: createFont: createFont Monospace size Monospace style 0
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-japanese-mincho.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/Symbol.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/b018012l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/d050000l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/X11/Type1/n019003l.pfb", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/wasy10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/mathml/math1___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Trebuchet_MS.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/openoffice/opens___.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/latex-xft-fonts/cmmi10.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/freefont/FreeMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/msttcorefonts/Courier_New.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: loadFace: *** *** *** CALLING FT_New_Face(gFTLibrary, "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf", 0, &mFTFace)
2009-06-26T00:48:10Z INFO: createFont: *** *** *** ADDING mFontMap[Monospace] = /usr/share/fonts/truetype/ttf-japanese-mincho.ttf

As you see, the only font being used - for SansSerif and Monospace - is /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
SansSerif is added five times because of the five different sizes:

getFontSansSerif
getFontSansSerifBig
getFontSansSerifBold
getFontSansSerifHuge
getFontSansSerifSmall

The problem is that some japanese-mincho font is being used :/



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Dzonatas Sol added a comment - 25/Jun/09 06:27 PM
VWR-10131 has fixed a few font problems and solved some crashes per feedback received earlier today. This is just a note if a fix is needed for SNOW-72 (this issue).

Candie Coats added a comment - 25/Jun/09 08:26 PM - edited
I am getting what seems to be the same fonts as the regular viewer, using the pre-compiled Snowglobe from the web site, I don't know of I would describe them as the quote-unquote "right" fonts per se because they are kinda boring.

My environmental info is:

Snowglobe 1.0.0 (2435) Jun 17 2009 23:49:58 (Snowglobe Release)
Release Notes

Built with GCC version 40001

You are at 280280.5, 258519.7, 28.6 in AMTS located at sim4413.agni.lindenlab.com (216.82.54.63:13002)
Second Life Server 1.26.4.120562
Release Notes

CPU: PowerPC 7450 (1416 MHz)
Memory: 1024 MB
OS Version: Darwin 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh


Tofu Linden added a comment - 26/Jun/09 05:39 AM
'Open Metaverse Viewer'? Are you sure this is the Snowglobe release?
It looks like the standard fonts are missing and it's going STRAIGHT for the fallback fonts.

Aleric Inglewood added a comment - 26/Jun/09 07:12 PM
Tofu, yes I'm sure it's a pure SVN snowglobe viewer.
I'll look into it how/where it picks up that "Open Metaverse Viewer",
must be from some globally installed xml file, or a settings
file in my home directory (someone suggested that it
was picked from the channel in one of those files).

Aleric Inglewood added a comment - 26/Jun/09 07:27 PM
This patch sorts the font list returned by LLWindow::getDynamicFallbackFontList()
so that the first font in the list (that is the one that will be used) isn't as random
as before.

The result of this patch is something I'm EXTREMELY satisfied with!
This font looks downright awesome


Aleric Inglewood added a comment - 27/Jun/09 06:22 AM - edited
Ok, I went to the bottom of this and the problem is the following:

In LLFontRegistry::createFont a vector called file_names is filled
with filesnames. First by calling getMatchingFontDesc(default_desc)
which results in two filenames being added:
MtBkLfRg.ttf and DejaVuSansCondensed.ttf

Then the list returned by getUltimateFallbackList() is appended.

Next, starting at the beginning - this list is tried - and the first
file name that can successfully be opened and used becomes
the used font. During this search two paths are tried:
with the 'local' path (newview/fonts/) prepended and the filename by itself.

Note that it seems odd that if the filename is a full path (and everything
returned by getUltimateFallbackList() are full paths, that still the local
path is prepended (that leads to filenames like .../newview/fonts//usr/share/fonts/...etc),
but ok, those just fail.

In my case, there is no newview/fonts/ path at all (I'll get to that in a minute),
so the first two fail. The result is that the very first (existing) font as returned
by getUltimateFallbackList() is being used; which is rather random!

Therefore there are two issues:
1) The local fonts are missing
2) The use of this fall back list is implemented too arbitrary.

The attached patch solves issue 2, by sorting this list in a way
that the best fonts are in the list first, and nonsense fonts end up
at the end of the list. The fact that normally this fallback list should
never be used doesn't change the fact that it exists, and the way
it's being used now is .. useless. We have two options: either
delete all code related to getUltimateFallbackList() or fix it so that
what it does at least makes a little sense. My patch does just that.

The first issue, the missing local fonts, are a bit a mystery to me:
Those fonts are NOT in the SVN and they are NOT in the artwork.

They exist in the tar ball that one can download.
I'd think that this is a bug too. These fonts should be added to
artwork.

The artwork that I used is:
slviewer-artwork-viewer-1.23.4-r124025.zip

if that is the wrong file, please let me know.


Aleric Inglewood added a comment - 27/Jun/09 06:56 AM
Tofu,

I created a new jira for the 'Open Metaversa Viewer' string that seemed to appear out of nothing:
http://jira.secondlife.com/browse/SNOW-81


Sheet Spotter added a comment - 27/Jun/09 08:14 AM
The recommended artwork and libraries can be found on the Source Downloads wiki page (http://wiki.secondlife.com/wiki/Source_downloads), under the heading "Snowglobe Releases and Release Candidates".

The libraries download for Windoze included a few fonts. The fonts needed for Linux might be included with the Linux libraries.


Rob Linden added a comment - 27/Jun/09 10:16 AM
Yup, the fonts are included in the library bundle (an artifact of the way our license notice works)

My immediate concern with the patch is how this works in other languages (e.g. Japanese). It may be that our current translations rely on the ordering of the fonts as is. I'm hoping someone who uses a language with Cyrillic or Kanji characters can comment on this.

Aleric, one thing you can do yourself is to switch your language to Japanese, and see if the viewer looks right to the best of your ability (maybe posting a screenshot or two). I'm going to guess that you don't speak Japanese, but I'm hoping you can at least spot obvious mistakes (e.g. blocks or question marks where characters should probably be).


Aleric Inglewood added a comment - 27/Jun/09 11:29 AM - edited
My last screenshot already shows some chinese (in the AW Groupies chat).

Since the "easybuild" feature, libraries are downloaded automatically.
Therefore, downloading a libraries package is no longer needed...

Something is wrong when the fonts are in that no-longer-needed package
and are still needed.

Perhaps you can download the fonts along with the libraries as part of
this 'easybuild' stuff?


Tofu Linden added a comment - 29/Jun/09 08:33 AM - edited
The Linux viewer already asks fontconfig for a list of fonts filtered and sorted according to style and the current locale.
If LLFontRegistry then un-sorts or re-sorts that list then that's definitely a bug, but I don't think it does as the code stands.

If you want to tweak (expand) the filtering, the criteria given to fontconfig are in LLWindowSDL::getDynamicFallbackFontList():
std::string sort_order("slant=0:index=0:weight=80:spacing=0");
... to which is also added, later, lang=<locale lang>

But I also think this is a red herring; the real bugs are, in decreasing order of obviousness:

  • The preferred set of fonts are not downloaded by easybuild.
  • According to your comment, the local viewer path is prepended to the fonts in this fallback list, making the whole list of carefully-sorted fonts totally useless. This seems a big bug for Linux users. It may also explain why you are only seeing kochi-gothic in your UI by default; that font is added to the very back of the list as a very desperate final final resort which you're apparently hitting because of this bug making everything else unfindable.

Both of those are definitely useful bug reports to file and solve separately.

The patch's approach of rearranging the font ordering based on unreliable and platform-specific keywords in the raw file names feels both fragile and incorrect to me, I'm afraid.


Dzonatas Sol added a comment - 29/Jun/09 08:46 AM
"The preferred set of fonts are not downloaded by easybuild."

While some dependency on a default font may be acceptable, it is not really a bug to not download any preferred font. The user may have already set a font of choice in the system defined font set, and it would be more desirable for the viewer to use that chosen font instead of rely on a dependency download. This mainly pertains non-Windows, since it is more of a norm to install fonts in MSWindows, as MSWindows has no standard distribution of fonts like Linux/OSX has.

We know DejaVu doesn't show the scaling problem like the Ming font (as seen in the attached pic), so it would only be considered a 'workaround' to choose another font that llfont/FreeType renderer doesn't break on.


lindenrobot added a comment - 02/Jul/09 10:36 AM
Automated note to patch contributor: if you haven't done so already, please make sure you have a contribution agreement on file and that your patch includes an edit to doc/contributions.txt properly crediting yourself for this patch. See https://wiki.secondlife.com/wiki/Submitting_code for more details.

Alexa Linden added a comment - 08/Oct/09 10:20 AM
Hi Aleric, with the patch as it is & with Tofu's comment, we are not going to pursue this patch as it is.