You.i Engine
CYISDFTextAtlas Class Reference

Detailed Description

Class for a signed distance field text atlas.

This type of atlas is used with CYISDFAtlasTextSceneNode.

No instance of CYISDFTextAtlas will exist unless a CYISDFAtlasTextSceneNode is created and tries to use an SDF atlas. This will result in creating an SDF atlas with the default parameters. If the app wants to specify their own SDF parameters, they can create an SDF atlas and add it to CYITextEngine. CYISDFAtlasTextSceneNode will not create a new SDF atlas if one already exists.

#include <graphics/YiSDFTextAtlas.h>

Inheritance diagram for CYISDFTextAtlas:

Public Member Functions

 CYISDFTextAtlas (int32_t nSDFFontSize=64, int32_t nSDFRadius=4)
 
virtual ~CYISDFTextAtlas ()
 
virtual bool CreateNewFontAtlas (uint32_t uWidth, uint32_t uHeight) override
 
virtual void SetRegion (ssize_t nID, void *pReference, YI_REGION Region, const uint8_t *pData, const int32_t nStride) override
 
int32_t GetSDFFontSize () const
 
int32_t GetSDFRadius () const
 
- Public Member Functions inherited from CYIAbstractTextAtlas
 CYIAbstractTextAtlas ()
 
virtual ~CYIAbstractTextAtlas ()
 
virtual YI_TEXTURE_DETAILSGetTexture (ssize_t nID, void *pReference) override
 
int32_t GetGlyphPadding () const
 
bool AddGlyph (const uint32_t uGlyphWidth, const uint32_t uGlyphHeight, YI_GLYPH_DETAILS *pGlyphDetails, const uint8_t *pData, const int32_t nStride)
 
- Public Member Functions inherited from CYITextureAtlas
 CYITextureAtlas ()
 
virtual ~CYITextureAtlas ()
 
bool CreateNewAtlas (uint32_t unWidth, uint32_t unHeight, uint32_t unPages)
 
YI_REGION GetRegion (int32_t nWidth, int32_t nHeight)
 
void UpdateAtlas ()
 
const std::shared_ptr< CYIBitmapGetBitmap () const
 
const std::vector< glm::ivec4 > * GetNodes (uint32_t unPage) const
 
virtual std::shared_ptr< CYIAssetTextureGetGLTexture () const
 
const std::shared_ptr< CYIAssetTextureGetTextureAsset ()
 
YI_LOADED_TEXTURESGetLoadedTextures ()
 
void SetTextureFilter (CYIAssetTexture::YI_MIN_MAG_FILTER minificationFilter, CYIAssetTexture::YI_MIN_MAG_FILTER magnificationFilter)
 
void SetTextureWrap (CYIAssetTexture::YI_TEXTURE_WRAP wrapS, CYIAssetTexture::YI_TEXTURE_WRAP wrapT)
 
void SetName (const CYIString &name)
 
const CYIStringGetName () const
 
float GetAtlasPercentageUsed () const
 
bool RenderAtlasToPng (const CYIString &filePath) const
 
void Reset ()
 

Protected Member Functions

virtual bool CompareGlyphDetails (YI_GLYPH_DETAILS *pLeft, YI_GLYPH_DETAILS *pRight) const override
 
- Protected Member Functions inherited from CYIAbstractTextAtlas
void SetGlyphPadding (int32_t nGlyphPadding)
 
- Protected Member Functions inherited from CYITextureAtlas
int32_t Fit (uint32_t unPage, uint32_t unIndex, int32_t nWidth, int32_t nHeight)
 
void Merge (uint32_t unPage)
 

Additional Inherited Members

- Protected Attributes inherited from CYITextureAtlas
CYIString m_name
 
std::shared_ptr< CYIBitmapm_Image
 
std::vector< glm::ivec4 > m_Nodes [4]
 
std::shared_ptr< CYIAssetTexturem_pTextureAsset
 
YI_LOADED_TEXTURES m_Textures
 
int32_t m_nWidth
 
int32_t m_nHeight
 
uint32_t m_unPages
 
CYIAssetTexture::YI_TEXTURE_CONFIG m_textureConfiguration
 
uint32_t m_unPixelsUsed
 
uint32_t m_unLastUpdatedSize
 

Constructor & Destructor Documentation

CYISDFTextAtlas::CYISDFTextAtlas ( int32_t  nSDFFontSize = 64,
int32_t  nSDFRadius = 4 
)
virtual CYISDFTextAtlas::~CYISDFTextAtlas ( )
virtual

Member Function Documentation

virtual bool CYISDFTextAtlas::CompareGlyphDetails ( YI_GLYPH_DETAILS pLeft,
YI_GLYPH_DETAILS pRight 
) const
overrideprotectedvirtual

Overridden to compare font ID and glyph ID. Font size is not considered.

Reimplemented from CYIAbstractTextAtlas.

virtual bool CYISDFTextAtlas::CreateNewFontAtlas ( uint32_t  uWidth,
uint32_t  uHeight 
)
overridevirtual

Should be implemented to do any internal initialization of the text atlas such as creating the atlas buffer. The width and height of the buffer are given as parameters.

Implements CYIAbstractTextAtlas.

int32_t CYISDFTextAtlas::GetSDFFontSize ( ) const

Returns the font size used to render glyphs in the atlas.

int32_t CYISDFTextAtlas::GetSDFRadius ( ) const

Returns the radius in pixels to render the SDF at.

virtual void CYISDFTextAtlas::SetRegion ( ssize_t  nID,
void *  pReference,
YI_REGION  Region,
const uint8_t *  pData,
const int32_t  nStride 
)
overridevirtual

Renders an SDF into the given region using the given data as input to the algorithm.

Implements CYIAbstractTextAtlas.


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