Open CASCADE Technology  6.9.0
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)
 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 AdvanceX (const Standard_Utf32Char theUChar, const Standard_Utf32Char theUCharNext)
 Compute advance to the next character with kerning applied when applicable. Assuming text rendered horizontally. More...
 
float Ascender () const
 
float Descender () const
 
float LineSpacing () const
 
void RenderGlyph (const Handle< OpenGl_Context > &theCtx, const Standard_Utf32Char theUChar, const Standard_Utf32Char theUCharNext, Tile &theGlyph, OpenGl_Vec2 &thePen)
 Compute glyph rectangle at specified pen position (on baseline) and render it 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
Handle_Standard_Type & 
DynamicType () const
 Returns a type information object about this object. More...
 
Standard_Boolean IsInstance (const 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 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...
 
virtual Handle_Standard_Transient This () const
 Returns a Handle which references this object. Must never be called to objects created in stack. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. 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_Integer
myGlyphMap
 

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::AdvanceX ( const Standard_Utf32Char  theUChar,
const Standard_Utf32Char  theUCharNext 
)
inline

Compute advance to the next character with kerning applied when applicable. Assuming text rendered horizontally.

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)
virtual

Destroy object - will release GPU memory if any.

Implements OpenGl_Resource.

void OpenGl_Font::RenderGlyph ( const Handle< OpenGl_Context > &  theCtx,
const Standard_Utf32Char  theUChar,
const Standard_Utf32Char  theUCharNext,
Tile theGlyph,
OpenGl_Vec2 thePen 
)

Compute glyph rectangle at specified pen position (on baseline) and render it to texture if not already.

Parameters
theCtxactive context
theUCharunicode symbol to render
theUCharNextnext symbol to compute advance with kerning when available
theGlyphcomputed glyph position rectangle, texture ID and UV coordinates
thePenpen position on baseline to place new glyph
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: