Open CASCADE Technology  7.1.0.beta
Data Structures | Public Member Functions | Protected Member Functions | Protected Attributes

OpenGl_Font Class Reference

Texture font. More...

#include <OpenGl_Font.hxx>

Inheritance diagram for OpenGl_Font:
Inheritance graph
[legend]

Data Structures

struct  RectI
 
struct  Tile
 Simple structure stores tile rectangle. More...
 

Public Member Functions

 OpenGl_Font (const Handle< Font_FTFont > &theFont, const TCollection_AsciiString &theKey="")
 Main constructor. More...
 
virtual ~OpenGl_Font ()
 Destroy object. More...
 
virtual void Release (OpenGl_Context *theCtx) override
 Destroy object - will release GPU memory if any. More...
 
const TCollection_AsciiStringResourceKey () const
 
const Handle< Font_FTFont > & FTFont () const
 
bool IsValid () const
 
bool WasInitialized () const
 Notice that this method doesn't return initialization success state. Use IsValid() instead. More...
 
bool Init (const Handle< OpenGl_Context > &theCtx)
 Initialize GL resources. FreeType font instance should be already initialized! More...
 
float Ascender () const
 
float Descender () const
 
float LineSpacing () const
 
bool RenderGlyph (const Handle< OpenGl_Context > &theCtx, const Standard_Utf32Char theUChar, Tile &theGlyph)
 Render glyph to texture if not already. More...
 
- Public Member Functions inherited from OpenGl_Resource
 OpenGl_Resource ()
 Empty constructor. More...
 
virtual ~OpenGl_Resource ()
 Destructor. Inheritors should call Clean (NULL) within it. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Member Functions

bool renderGlyph (const Handle< OpenGl_Context > &theCtx, const Standard_Utf32Char theChar)
 Render new glyph to the texture. More...
 
bool createTexture (const Handle< OpenGl_Context > &theCtx)
 Allocate new texture. More...
 

Protected Attributes

TCollection_AsciiString myKey
 key of shared resource More...
 
Handle< Font_FTFontmyFont
 FreeType font instance. More...
 
Standard_ShortReal myAscender
 ascender provided my FT font More...
 
Standard_ShortReal myDescender
 descender provided my FT font More...
 
Standard_ShortReal myLineSpacing
 line spacing provided my FT font More...
 
Standard_Integer myTileSizeX
 tile width More...
 
Standard_Integer myTileSizeY
 tile height More...
 
Standard_Integer myLastTileId
 id of last tile More...
 
RectI myLastTilePx
 
Standard_Integer myTextureFormat
 texture format More...
 
NCollection_Vector< Handle< OpenGl_Texture > > myTextures
 array of textures More...
 
NCollection_Vector< TilemyTiles
 array of loaded tiles More...
 
NCollection_DataMap< Standard_Utf32Char, Standard_IntegermyGlyphMap
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object. More...
 
- Static Public Member Functions inherited from Standard_Transient
static const char * get_type_name ()
 Returns a type descriptor about this object. More...
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class. More...
 

Detailed Description

Texture font.

Constructor & Destructor Documentation

OpenGl_Font::OpenGl_Font ( const Handle< Font_FTFont > &  theFont,
const TCollection_AsciiString theKey = "" 
)

Main constructor.

virtual OpenGl_Font::~OpenGl_Font ( )
virtual

Destroy object.

Member Function Documentation

float OpenGl_Font::Ascender ( ) const
inline
Returns
vertical distance from the horizontal baseline to the highest character coordinate
bool OpenGl_Font::createTexture ( const Handle< OpenGl_Context > &  theCtx)
protected

Allocate new texture.

float OpenGl_Font::Descender ( ) const
inline
Returns
vertical distance from the horizontal baseline to the lowest character coordinate
const Handle< Font_FTFont >& OpenGl_Font::FTFont ( ) const
inline
Returns
FreeType font instance specified on construction.
bool OpenGl_Font::Init ( const Handle< OpenGl_Context > &  theCtx)

Initialize GL resources. FreeType font instance should be already initialized!

bool OpenGl_Font::IsValid ( ) const
inline
Returns
true if font was loaded successfully.
float OpenGl_Font::LineSpacing ( ) const
inline
Returns
default line spacing (the baseline-to-baseline distance)
virtual void OpenGl_Font::Release ( OpenGl_Context theCtx)
overridevirtual

Destroy object - will release GPU memory if any.

Implements OpenGl_Resource.

bool OpenGl_Font::RenderGlyph ( const Handle< OpenGl_Context > &  theCtx,
const Standard_Utf32Char  theUChar,
Tile theGlyph 
)

Render glyph to texture if not already.

Parameters
theCtxactive context
theUCharunicode symbol to render
theGlyphcomputed glyph position rectangle, texture ID and UV coordinates
bool OpenGl_Font::renderGlyph ( const Handle< OpenGl_Context > &  theCtx,
const Standard_Utf32Char  theChar 
)
protected

Render new glyph to the texture.

const TCollection_AsciiString& OpenGl_Font::ResourceKey ( ) const
inline
Returns
key of shared resource
bool OpenGl_Font::WasInitialized ( ) const
inline

Notice that this method doesn't return initialization success state. Use IsValid() instead.

Returns
true if initialization was already called.

Field Documentation

Standard_ShortReal OpenGl_Font::myAscender
protected

ascender provided my FT font

Standard_ShortReal OpenGl_Font::myDescender
protected

descender provided my FT font

Handle< Font_FTFont > OpenGl_Font::myFont
protected

FreeType font instance.

NCollection_DataMap<Standard_Utf32Char, Standard_Integer> OpenGl_Font::myGlyphMap
protected
TCollection_AsciiString OpenGl_Font::myKey
protected

key of shared resource

Standard_Integer OpenGl_Font::myLastTileId
protected

id of last tile

RectI OpenGl_Font::myLastTilePx
protected
Standard_ShortReal OpenGl_Font::myLineSpacing
protected

line spacing provided my FT font

Standard_Integer OpenGl_Font::myTextureFormat
protected

texture format

NCollection_Vector<Handle< OpenGl_Texture > > OpenGl_Font::myTextures
protected

array of textures

NCollection_Vector<Tile> OpenGl_Font::myTiles
protected

array of loaded tiles

Standard_Integer OpenGl_Font::myTileSizeX
protected

tile width

Standard_Integer OpenGl_Font::myTileSizeY
protected

tile height


The documentation for this class was generated from the following file: