Public Types | |
typedef OpenThreads::Mutex | FontMutex |
Public Member Functions | |
Font (FontImplementation *implementation=0) | |
virtual osg::Object * | cloneType () const |
Clone the type of an object, with Object* return type. | |
virtual osg::Object * | clone (const osg::CopyOp &) const |
Clone an object, with Object* return type. | |
virtual bool | isSameKindAs (const osg::Object *obj) const |
virtual const char * | className () const |
return the name of the object's class type. | |
virtual const char * | libraryName () const |
return the name of the object's library. | |
virtual std::string | getFileName () const |
void | setTexEnv (osg::TexEnv *texenv) |
osg::TexEnv * | getTexEnv () |
const osg::TexEnv * | getTexEnv () const |
void | setStateSet (osg::StateSet *stateset) |
osg::StateSet * | getStateSet () |
const osg::StateSet * | getStateSet () const |
virtual void | setFontResolution (unsigned int width, unsigned int height) |
Set the pixel width and height hint. | |
unsigned int | getFontWidth () const |
unsigned int | getFontHeight () const |
virtual osg::Vec2 | getKerning (unsigned int leftcharcode, unsigned int rightcharcode, KerningType kerningType) |
Get a kerning (adjustment of spacing of two adjacent character) for specified charcodes, w.r.t the current font size hint. | |
virtual Glyph * | getGlyph (unsigned int charcode) |
Get a Glyph for specified charcode, and the font size nearest to the current font size hint. | |
virtual bool | hasVertical () const |
Return true if this font provides vertical alignments and spacing or glyphs. | |
void | setGlyphImageMargin (unsigned int margin) |
Set the margin around each glyph, to ensure that texture filtering doesn't bleed adjacent glyph's into each other. | |
unsigned int | getGlyphImageMargin () const |
void | setGlyphImageMarginRatio (float margin) |
Set the margin ratio around each glyph, relative to the glyph's size. | |
float | getGlyphImageMarginRatio () const |
void | setTextureSizeHint (unsigned int width, unsigned int height) |
Set the size of texture to create to store the glyph images when rendering. | |
unsigned int | getTextureWidthHint () const |
unsigned int | getTextureHeightHint () const |
void | setMinFilterHint (osg::Texture::FilterMode mode) |
Set the minification texture filter to use when creating the texture to store the glyph images when rendering. | |
osg::Texture::FilterMode | getMinFilterHint () const |
void | setMagFilterHint (osg::Texture::FilterMode mode) |
Set the magnification texture filter to use when creating the texture to store the glyph images when rendering. | |
osg::Texture::FilterMode | getMagFilterHint () const |
void | setImplementation (FontImplementation *implementation) |
FontImplementation * | getImplementation () |
const FontImplementation * | getImplementation () const |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. | |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
Resize any per context GLObject buffers to specified size. | |
virtual void | releaseGLObjects (osg::State *state=0) const |
If State is non-zero, this function releases OpenGL objects for the specified graphics context. | |
Static Public Member Functions | |
static FontMutex * | getSerializeFontCallsMutex () |
Get the mutex that enables the serialization of calls to this font. | |
Protected Types | |
typedef std::vector < osg::ref_ptr < GlyphTexture > > | GlyphTextureList |
typedef std::vector < osg::ref_ptr < osg::StateSet > > | StateSetList |
typedef std::map < unsigned int, osg::ref_ptr< Glyph > > | GlyphMap |
typedef std::pair < unsigned int, unsigned int > | SizePair |
typedef std::map < SizePair, GlyphMap > | SizeGlyphMap |
Protected Member Functions | |
virtual | ~Font () |
void | addGlyph (unsigned int width, unsigned int height, unsigned int charcode, Glyph *glyph) |
Protected Attributes | |
FontMutex | _serializeFontCallsMutex |
osg::ref_ptr < osg::TexEnv > | _texenv |
osg::ref_ptr < osg::StateSet > | _stateset |
SizeGlyphMap | _sizeGlyphMap |
GlyphTextureList | _glyphTextureList |
unsigned int | _width |
unsigned int | _height |
unsigned int | _margin |
float | _marginRatio |
unsigned int | _textureWidthHint |
unsigned int | _textureHeightHint |
osg::Texture::FilterMode | _minFilterHint |
osg::Texture::FilterMode | _magFilterHint |
osg::ref_ptr < FontImplementation > | _implementation |
Friends | |
class | FontImplementation |
Classes | |
class | FontImplementation |
class | Glyph |
class | GlyphTexture |
Concrete implementation are the DefaultFont found in src/osgText/DefaultFont.cpp and FreeTypeFont found in src/osgPlugins/freetype/FreeTypeFont.cpp
typedef OpenThreads::Mutex osgText::Font::FontMutex |
typedef std::vector< osg::ref_ptr<GlyphTexture> > osgText::Font::GlyphTextureList [protected] |
typedef std::vector< osg::ref_ptr<osg::StateSet> > osgText::Font::StateSetList [protected] |
typedef std::map< unsigned int, osg::ref_ptr<Glyph> > osgText::Font::GlyphMap [protected] |
typedef std::pair< unsigned int, unsigned int > osgText::Font::SizePair [protected] |
typedef std::map< SizePair, GlyphMap > osgText::Font::SizeGlyphMap [protected] |
osgText::Font::Font | ( | FontImplementation * | implementation = 0 |
) |
virtual osgText::Font::~Font | ( | ) | [protected, virtual] |
virtual osg::Object* osgText::Font::cloneType | ( | ) | const [inline, virtual] |
Clone the type of an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
virtual osg::Object* osgText::Font::clone | ( | const osg::CopyOp & | ) | const [inline, virtual] |
Clone an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
virtual bool osgText::Font::isSameKindAs | ( | const osg::Object * | obj | ) | const [inline, virtual] |
Reimplemented from osg::Object.
virtual const char* osgText::Font::className | ( | ) | const [inline, virtual] |
return the name of the object's class type.
Must be defined by derived classes.
Implements osg::Object.
virtual const char* osgText::Font::libraryName | ( | ) | const [inline, virtual] |
return the name of the object's library.
Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.
Implements osg::Object.
virtual std::string osgText::Font::getFileName | ( | ) | const [virtual] |
void osgText::Font::setTexEnv | ( | osg::TexEnv * | texenv | ) | [inline] |
osg::TexEnv* osgText::Font::getTexEnv | ( | ) | [inline] |
const osg::TexEnv* osgText::Font::getTexEnv | ( | ) | const [inline] |
void osgText::Font::setStateSet | ( | osg::StateSet * | stateset | ) | [inline] |
osg::StateSet* osgText::Font::getStateSet | ( | ) | [inline] |
const osg::StateSet* osgText::Font::getStateSet | ( | ) | const [inline] |
virtual void osgText::Font::setFontResolution | ( | unsigned int | width, | |
unsigned int | height | |||
) | [virtual] |
Set the pixel width and height hint.
unsigned int osgText::Font::getFontWidth | ( | ) | const |
unsigned int osgText::Font::getFontHeight | ( | ) | const |
virtual osg::Vec2 osgText::Font::getKerning | ( | unsigned int | leftcharcode, | |
unsigned int | rightcharcode, | |||
KerningType | kerningType | |||
) | [virtual] |
Get a kerning (adjustment of spacing of two adjacent character) for specified charcodes, w.r.t the current font size hint.
virtual Glyph* osgText::Font::getGlyph | ( | unsigned int | charcode | ) | [virtual] |
Get a Glyph for specified charcode, and the font size nearest to the current font size hint.
virtual bool osgText::Font::hasVertical | ( | ) | const [virtual] |
Return true if this font provides vertical alignments and spacing or glyphs.
void osgText::Font::setGlyphImageMargin | ( | unsigned int | margin | ) |
Set the margin around each glyph, to ensure that texture filtering doesn't bleed adjacent glyph's into each other.
Default margin is 1 texels.
unsigned int osgText::Font::getGlyphImageMargin | ( | ) | const |
void osgText::Font::setGlyphImageMarginRatio | ( | float | margin | ) |
Set the margin ratio around each glyph, relative to the glyph's size.
to ensure that texture filtering doesn't bleed adjacent glyph's into each other. Default margin is 0.05.
float osgText::Font::getGlyphImageMarginRatio | ( | ) | const |
void osgText::Font::setTextureSizeHint | ( | unsigned int | width, | |
unsigned int | height | |||
) |
Set the size of texture to create to store the glyph images when rendering.
Note, this doesn't affect already created Texture Glhph's.
unsigned int osgText::Font::getTextureWidthHint | ( | ) | const |
unsigned int osgText::Font::getTextureHeightHint | ( | ) | const |
void osgText::Font::setMinFilterHint | ( | osg::Texture::FilterMode | mode | ) |
Set the minification texture filter to use when creating the texture to store the glyph images when rendering.
Note, this doesn't affect already created Texture Glhph's.
osg::Texture::FilterMode osgText::Font::getMinFilterHint | ( | ) | const |
void osgText::Font::setMagFilterHint | ( | osg::Texture::FilterMode | mode | ) |
Set the magnification texture filter to use when creating the texture to store the glyph images when rendering.
Note, this doesn't affect already created Texture Glhph's.
osg::Texture::FilterMode osgText::Font::getMagFilterHint | ( | ) | const |
void osgText::Font::setImplementation | ( | FontImplementation * | implementation | ) |
FontImplementation* osgText::Font::getImplementation | ( | ) |
const FontImplementation* osgText::Font::getImplementation | ( | ) | const |
virtual void osgText::Font::setThreadSafeRefUnref | ( | bool | threadSafe | ) | [virtual] |
Set whether to use a mutex to ensure ref() and unref() are thread safe.
Reimplemented from osg::Referenced.
virtual void osgText::Font::resizeGLObjectBuffers | ( | unsigned int | maxSize | ) | [virtual] |
virtual void osgText::Font::releaseGLObjects | ( | osg::State * | state = 0 |
) | const [virtual] |
If State is non-zero, this function releases OpenGL objects for the specified graphics context.
Otherwise, releases OpenGL objexts for all graphics contexts.
Reimplemented from osg::Object.
static FontMutex* osgText::Font::getSerializeFontCallsMutex | ( | ) | [static] |
Get the mutex that enables the serialization of calls to this font.
void osgText::Font::addGlyph | ( | unsigned int | width, | |
unsigned int | height, | |||
unsigned int | charcode, | |||
Glyph * | glyph | |||
) | [protected] |
friend class FontImplementation [friend] |
FontMutex osgText::Font::_serializeFontCallsMutex [mutable, protected] |
osg::ref_ptr<osg::TexEnv> osgText::Font::_texenv [protected] |
osg::ref_ptr<osg::StateSet> osgText::Font::_stateset [protected] |
SizeGlyphMap osgText::Font::_sizeGlyphMap [protected] |
GlyphTextureList osgText::Font::_glyphTextureList [protected] |
unsigned int osgText::Font::_width [protected] |
unsigned int osgText::Font::_height [protected] |
unsigned int osgText::Font::_margin [protected] |
float osgText::Font::_marginRatio [protected] |
unsigned int osgText::Font::_textureWidthHint [protected] |
unsigned int osgText::Font::_textureHeightHint [protected] |
osg::ref_ptr<FontImplementation> osgText::Font::_implementation [protected] |