Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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 occ::handle< Font_FTFont > &theFont, const TCollection_AsciiString &theKey="")
 Main constructor.
 
 ~OpenGl_Font () override
 Destroy object.
 
void Release (OpenGl_Context *theCtx) override
 Destroy object - will release GPU memory if any.
 
size_t EstimatedDataSize () const override
 Returns estimated GPU memory usage.
 
const TCollection_AsciiStringResourceKey () const
 
const occ::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 occ::handle< OpenGl_Context > &theCtx)
 Initialize GL resources. FreeType font instance should be already initialized!
 
float Ascender () const
 
float Descender () const
 
bool RenderGlyph (const occ::handle< OpenGl_Context > &theCtx, const char32_t theUChar, Tile &theGlyph)
 Render glyph to texture if not already.
 
const occ::handle< OpenGl_Texture > & Texture () const
 
- Public Member Functions inherited from OpenGl_Resource
 OpenGl_Resource ()
 Empty constructor.
 
 ~OpenGl_Resource () override
 Destructor. Inheritors should call Clean (NULL) within it.
 
virtual void DumpJson (Standard_OStream &theOStream, int 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 ()=default
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
bool IsInstance (const char *const theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
bool 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.
 
bool IsKind (const char *const 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.
 
int GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
 
int DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Protected Member Functions

bool renderGlyph (const occ::handle< OpenGl_Context > &theCtx, const char32_t theChar)
 Render new glyph to the texture.
 
bool createTexture (const occ::handle< OpenGl_Context > &theCtx)
 Allocate new texture.
 

Protected Attributes

TCollection_AsciiString myKey
 key of shared resource
 
occ::handle< Font_FTFontmyFont
 FreeType font instance.
 
float myAscender
 ascender provided my FT font
 
float myDescender
 descender provided my FT font
 
int myTileSizeY
 tile height
 
int myLastTileId
 id of last tile
 
RectI myLastTilePx
 
int myTextureFormat
 texture format
 
NCollection_DynamicArray< occ::handle< OpenGl_Texture > > myTextures
 array of textures
 
NCollection_DynamicArray< TilemyTiles
 array of loaded tiles
 
NCollection_DataMap< char32_t, intmyGlyphMap
 

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 charget_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 occ::handle< Font_FTFont > & theFont,
const TCollection_AsciiString & theKey = "" )

Main constructor.

◆ ~OpenGl_Font()

OpenGl_Font::~OpenGl_Font ( )
override

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 occ::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()

size_t OpenGl_Font::EstimatedDataSize ( ) const
overridevirtual

Returns estimated GPU memory usage.

Implements OpenGl_Resource.

◆ FTFont()

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

◆ Init()

bool OpenGl_Font::Init ( const occ::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()

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 occ::handle< OpenGl_Context > & theCtx,
const char32_t theChar )
protected

Render new glyph to the texture.

◆ RenderGlyph()

bool OpenGl_Font::RenderGlyph ( const occ::handle< OpenGl_Context > & theCtx,
const char32_t 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

◆ ResourceKey()

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

◆ Texture()

const occ::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

float OpenGl_Font::myAscender
protected

ascender provided my FT font

◆ myDescender

float OpenGl_Font::myDescender
protected

descender provided my FT font

◆ myFont

occ::handle<Font_FTFont> OpenGl_Font::myFont
protected

FreeType font instance.

◆ myGlyphMap

NCollection_DataMap<char32_t, int> OpenGl_Font::myGlyphMap
protected

◆ myKey

TCollection_AsciiString OpenGl_Font::myKey
protected

key of shared resource

◆ myLastTileId

int OpenGl_Font::myLastTileId
protected

id of last tile

◆ myLastTilePx

RectI OpenGl_Font::myLastTilePx
protected

◆ myTextureFormat

int OpenGl_Font::myTextureFormat
protected

texture format

◆ myTextures

NCollection_DynamicArray<occ::handle<OpenGl_Texture> > OpenGl_Font::myTextures
protected

array of textures

◆ myTiles

NCollection_DynamicArray<Tile> OpenGl_Font::myTiles
protected

array of loaded tiles

◆ myTileSizeY

int OpenGl_Font::myTileSizeY
protected

tile height


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