OpenSceneGraph
|
Pure virtual base class for fonts. More...
Classes | |
class | FontImplementation |
Public Types | |
typedef OpenThreads::Mutex | FontMutex |
typedef std::vector< osg::ref_ptr< GlyphTexture > > | GlyphTextureList |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
Public Member Functions | |
Font (FontImplementation *implementation=0) | |
virtual osg::Object * | cloneType () const |
Clone the type of an object, with Object* return type. More... | |
virtual osg::Object * | clone (const osg::CopyOp &) const |
Clone an object, with Object* return type. More... | |
virtual bool | isSameKindAs (const osg::Object *obj) const |
virtual const char * | className () const |
return the name of the object's class type. More... | |
virtual const char * | libraryName () const |
return the name of the object's library. More... | |
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 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. More... | |
virtual Glyph * | getGlyph (const FontResolution &fontSize, unsigned int charcode) |
Get a Glyph for specified charcode, and the font size nearest to the current font size hint. More... | |
virtual Glyph3D * | getGlyph3D (unsigned int charcode) |
Get a Glyph3D for specified charcode. More... | |
virtual bool | hasVertical () const |
Return true if this font provides vertical alignments and spacing or glyphs. More... | |
virtual bool | getVerticalSize (float &ascender, float &descender) const |
Get the ascender and descender sizes of the font where supported by the FontImplementation, return true on success, return false when not supported. More... | |
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. More... | |
unsigned int | getGlyphImageMargin () const |
void | setGlyphImageMarginRatio (float margin) |
Set the margin ratio around each glyph, relative to the glyph's size. More... | |
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. More... | |
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. More... | |
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. More... | |
osg::Texture::FilterMode | getMagFilterHint () const |
unsigned int | getFontDepth () const |
void | setNumberCurveSamples (unsigned int numSamples) |
unsigned int | getNumberCurveSamples () 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. More... | |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
Resize any per context GLObject buffers to specified size. More... | |
virtual void | releaseGLObjects (osg::State *state=0) const |
If State is non-zero, this function releases OpenGL objects for the specified graphics context. More... | |
GlyphTextureList & | getGlyphTextureList () |
![]() | |
Object () | |
Construct an object. More... | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data. More... | |
std::string | getCompoundClassName () const |
return the compound class name that combines the library name and class name. More... | |
virtual Node * | asNode () |
Convert 'this' into a Node pointer if Object is a Node, otherwise return 0. More... | |
virtual const Node * | asNode () const |
convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0. More... | |
virtual NodeVisitor * | asNodeVisitor () |
Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More... | |
virtual const NodeVisitor * | asNodeVisitor () const |
convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More... | |
virtual StateAttribute * | asStateAttribute () |
Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More... | |
virtual const StateAttribute * | asStateAttribute () const |
convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More... | |
virtual Uniform * | asUniform () |
Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0. More... | |
virtual const Uniform * | asUniform () const |
convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0. More... | |
virtual void | setName (const std::string &name) |
Set the name of object using C++ style string. More... | |
void | setName (const char *name) |
Set the name of object using a C style string. More... | |
const std::string & | getName () const |
Get the name of object. More... | |
void | setDataVariance (DataVariance dv) |
Set the data variance of this object. More... | |
DataVariance | getDataVariance () const |
Get the data variance of this object. More... | |
virtual void | computeDataVariance () |
Compute the DataVariance based on an assessment of callback etc. More... | |
void | setUserDataContainer (osg::UserDataContainer *udc) |
set the UserDataContainer object. More... | |
template<class T > | |
void | setUserDataContainer (const ref_ptr< T > &udc) |
osg::UserDataContainer * | getUserDataContainer () |
get the UserDataContainer attached to this object. More... | |
const osg::UserDataContainer * | getUserDataContainer () const |
get the const UserDataContainer attached to this object. More... | |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
Convenience method that returns the UserDataContainer, and if one doesn't already exist creates and assigns a DefaultUserDataContainer to the Object and then return this new UserDataContainer. More... | |
virtual void | setUserData (Referenced *obj) |
Set user data, data must be subclassed from Referenced to allow automatic memory handling. More... | |
template<class T > | |
void | setUserData (const ref_ptr< T > &ud) |
virtual Referenced * | getUserData () |
Get user data. More... | |
virtual const Referenced * | getUserData () const |
Get const user data. More... | |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
Convenience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value. More... | |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
Convenience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject. More... | |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
provide implementation of osg::Object::getUserValue(..) template | |
![]() | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. More... | |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). More... | |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. More... | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. More... | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. More... | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. More... | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. More... | |
Static Public Member Functions | |
static osg::ref_ptr< Font > & | getDefaultFont () |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
Get the optional global Referenced mutex, this can be shared between all osg::Referenced. More... | |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
Set whether reference counting should use a mutex for thread safe reference counting. More... | |
static bool | getThreadSafeReferenceCounting () |
Get whether reference counting is active. More... | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. More... | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. More... | |
Protected Types | |
typedef std::vector< osg::ref_ptr< osg::StateSet > > | StateSetList |
typedef std::map< unsigned int, osg::ref_ptr< Glyph > > | GlyphMap |
typedef std::map< unsigned int, osg::ref_ptr< Glyph3D > > | Glyph3DMap |
typedef std::map< FontResolution, GlyphMap > | FontSizeGlyphMap |
Protected Member Functions | |
void | addGlyph (const FontResolution &fontRes, unsigned int charcode, Glyph *glyph) |
![]() | |
virtual | ~Object () |
Object destructor. More... | |
![]() | |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
OpenThreads::Mutex | _glyphMapMutex |
osg::ref_ptr< osg::TexEnv > | _texenv |
osg::ref_ptr< osg::StateSet > | _stateset |
FontSizeGlyphMap | _sizeGlyphMap |
GlyphTextureList | _glyphTextureList |
Glyph3DMap | _glyph3DMap |
FontResolution | _fontSize |
unsigned int | _margin |
float | _marginRatio |
unsigned int | _textureWidthHint |
unsigned int | _textureHeightHint |
osg::Texture::FilterMode | _minFilterHint |
osg::Texture::FilterMode | _magFilterHint |
unsigned int | _depth |
unsigned int | _numCurveSamples |
osg::ref_ptr< FontImplementation > | _implementation |
![]() | |
std::string | _name |
DataVariance | _dataVariance |
osg::UserDataContainer * | _userDataContainer |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
OpenThreads::Mutex * | _refMutex |
int | _refCount |
void * | _observerSet |
Friends | |
class | FontImplementation |
Pure virtual base class for fonts.
Concrete implementation are the DefaultFont found in src/osgText/DefaultFont.cpp and FreeTypeFont found in src/osgPlugins/freetype/FreeTypeFont.cpp
|
inlinevirtual |
return the name of the object's class type.
Must be defined by derived classes.
Implements osg::Object.
|
inlinevirtual |
Clone an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
|
inlinevirtual |
Clone the type of an object, with Object* return type.
Must be defined by derived classes.
Implements osg::Object.
|
virtual |
Get a Glyph for specified charcode, and the font size nearest to the current font size hint.
|
virtual |
Get a Glyph3D for specified charcode.
|
virtual |
Get a kerning (adjustment of spacing of two adjacent character) for specified charcodes, w.r.t the current font size hint.
|
inlinevirtual |
Get the ascender and descender sizes of the font where supported by the FontImplementation, return true on success, return false when not supported.
|
virtual |
Return true if this font provides vertical alignments and spacing or glyphs.
|
inlinevirtual |
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 |
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.
|
virtual |
Resize any per context GLObject buffers to specified size.
Reimplemented from osg::Object.
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.
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.
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.
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.
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.
|
virtual |
Set whether to use a mutex to ensure ref() and unref() are thread safe.
Reimplemented from osg::Object.