This change separates the functions of FontManager into three classes. FontManager is retained as the manager of all fonts. BZFontFace is introduced as the manager of a specific font face, and all the rendering logic (interface) is moved there. BZFontFace_impl is created to encapsulate the implementation details of using the FTGL font system.
While this is provided as a patch, it is actually a wholesale replacement for FontManager.{h,cxx}, as well as the addition of two new classes. Also, the header files were brutally stripped of unneeded #include directives, exposing a couple of places where includes needed to be added in, so that headers are included at the lowest possible scope.
I apologize in advance for the size of this change, but there isn't really a way to do this in any smaller scale.
More detailed description of the change and resulting (public) interface
Logged In: YES
user_id=1627541
Originator: YES
File Added: fm4.patch
Logged In: YES
user_id=1627541
Originator: YES
File Added: BZFontFace.h
Logged In: YES
user_id=1627541
Originator: YES
File Added: BZFontFace_impl.h
Logged In: YES
user_id=1627541
Originator: YES
File Added: BZFontFace.cxx
Logged In: YES
user_id=1627541
Originator: YES
File Added: BZFontFace_impl.cxx
the patch
Logged In: YES
user_id=1627541
Originator: YES
File Added: fm4.patch