Open CASCADE Technology 7.8.2.dev
OpenGl_Font Class Reference

Texture font. More...

#include <OpenGl_Font.hxx>

Inheritance diagram for OpenGl_Font:

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.
 
virtual ~OpenGl_Font ()
 Destroy object.
 
virtual void Release (OpenGl_Context *theCtx) override
 Destroy object - will release GPU memory if any.
 
virtual Standard_Size EstimatedDataSize () const override
 Returns estimated GPU memory usage.
 
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.
 
bool Init (const Handle< OpenGl_Context > &theCtx)
 Initialize GL resources. FreeType font instance should be already initialized!
 
float Ascender () const
 
float Descender () const
 
bool RenderGlyph (const Handle< OpenGl_Context > &theCtx, const Standard_Utf32Char theUChar, Tile &theGlyph)
 Render glyph to texture if not already.
 
const Handle< OpenGl_Texture > & Texture () const
 
- Public Member Functions inherited from OpenGl_Resource
 OpenGl_Resource ()
 Empty constructor.
 
virtual ~OpenGl_Resource ()
 Destructor. Inheritors should call Clean (NULL) within it.
 
virtual void DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const
 Dumps the content of me into the stream.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
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.
 
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.
 
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.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Protected Member Functions

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

Protected Attributes

TCollection_AsciiString myKey
 key of shared resource
 
Handle< Font_FTFontmyFont
 FreeType font instance.
 
Standard_ShortReal myAscender
 ascender provided my FT font
 
Standard_ShortReal myDescender
 descender provided my FT font
 
Standard_Integer myTileSizeY
 tile height
 
Standard_Integer myLastTileId
 id of last tile
 
RectI myLastTilePx
 
Standard_Integer myTextureFormat
 texture format
 
NCollection_Vector< Handle< OpenGl_Texture > > myTextures
 array of textures
 
NCollection_Vector< TilemyTiles
 array of loaded tiles
 
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.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const char * get_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Detailed Description

Texture font.

Constructor & Destructor Documentation

◆ OpenGl_Font()

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

Main constructor.

◆ ~OpenGl_Font()

virtual OpenGl_Font::~OpenGl_Font ( )
virtual

Destroy object.

Member Function Documentation

◆ Ascender()

float OpenGl_Font::Ascender ( ) const
inline
Returns
vertical distance from the horizontal baseline to the highest character coordinate

◆ createTexture()

bool OpenGl_Font::createTexture ( const Handle< OpenGl_Context > & theCtx)
protected

Allocate new texture.

◆ Descender()

float OpenGl_Font::Descender ( ) const
inline
Returns
vertical distance from the horizontal baseline to the lowest character coordinate

◆ EstimatedDataSize()

virtual Standard_Size OpenGl_Font::EstimatedDataSize ( ) const
overridevirtual

Returns estimated GPU memory usage.

Implements OpenGl_Resource.

◆ FTFont()

const Handle< Font_FTFont > & OpenGl_Font::FTFont ( ) const
inline
Returns
FreeType font instance specified on construction.

◆ Init()

bool OpenGl_Font::Init ( const Handle< OpenGl_Context > & theCtx)

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

◆ IsValid()

bool OpenGl_Font::IsValid ( ) const
inline
Returns
true if font was loaded successfully.

◆ Release()

virtual void OpenGl_Font::Release ( OpenGl_Context * theCtx)
overridevirtual

Destroy object - will release GPU memory if any.

Implements OpenGl_Resource.

◆ RenderGlyph()

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

◆ renderGlyph()

bool OpenGl_Font::renderGlyph ( const Handle< OpenGl_Context > & theCtx,
const Standard_Utf32Char theChar )
protected

Render new glyph to the texture.

◆ ResourceKey()

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

◆ Texture()

const Handle< OpenGl_Texture > & OpenGl_Font::Texture ( ) const
inline
Returns
first texture.

◆ WasInitialized()

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

◆ myAscender

Standard_ShortReal OpenGl_Font::myAscender
protected

ascender provided my FT font

◆ myDescender

Standard_ShortReal OpenGl_Font::myDescender
protected

descender provided my FT font

◆ myFont

Handle< Font_FTFont > OpenGl_Font::myFont
protected

FreeType font instance.

◆ myGlyphMap

NCollection_DataMap<Standard_Utf32Char, Standard_Integer> OpenGl_Font::myGlyphMap
protected

◆ myKey

TCollection_AsciiString OpenGl_Font::myKey
protected

key of shared resource

◆ myLastTileId

Standard_Integer OpenGl_Font::myLastTileId
protected

id of last tile

◆ myLastTilePx

RectI OpenGl_Font::myLastTilePx
protected

◆ myTextureFormat

Standard_Integer OpenGl_Font::myTextureFormat
protected

texture format

◆ myTextures

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

array of textures

◆ myTiles

NCollection_Vector<Tile> OpenGl_Font::myTiles
protected

array of loaded tiles

◆ myTileSizeY

Standard_Integer OpenGl_Font::myTileSizeY
protected

tile height


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