SDOM - Simple SDL Document Object Model
A lightweight, extensible Document Object Model for SDL-based applications.
Loading...
Searching...
No Matches
SDOM::IFontObject Class Referenceabstract

#include <SDOM_IFontObject.hpp>

Inheritance diagram for SDOM::IFontObject:
SDOM::IAssetObject SDOM::IDataObject SDOM::IUnitTest SDOM::BitmapFont SDOM::TruetypeFont

Classes

struct  InitStruct
 

Public Types

enum class  FontType { Bitmap , Truetype }
 

Public Member Functions

virtual ~IFontObject () override
 
virtual bool onInit ()=0
 
virtual void onQuit ()=0
 
virtual void onLoad ()=0
 
virtual void onUnload ()=0
 
virtual void create (const sol::table &config)=0
 
virtual void drawGlyph (Uint32 ch, int x, int y, const FontStyle &style)=0
 
virtual void drawPhrase (const std::string &str, int x, int y, const FontStyle &style)=0
 
virtual void drawPhraseOutline (const std::string &str, int x, int y, const FontStyle &style)=0
 
virtual void drawPhraseDropshadow (const std::string &str, int x, int y, const FontStyle &style)=0
 
virtual bool getGlyphMetrics (Uint32 ch, int *minx, int *maxx, int *miny, int *maxy, int *advance) const =0
 
virtual int getGlyphHeight (Uint32 ch) const =0
 
virtual int getGlyphWidth (Uint32 ch) const =0
 
virtual int getFontAscent ()=0
 
virtual int getFontSize ()=0
 
virtual void setFontSize (int p_size)=0
 
virtual void setFontStyle (const FontStyle &style)=0
 
virtual FontStyle getFontStyle ()=0
 
int getWordWidth (const std::string &word) const
 
int getWordHeight (const std::string &word) const
 
int getFontSize () const
 
FontType getFontType () const
 
virtual bool onUnitTest () override
 Runs unit tests for this object.
 
const std::string & getType () const
 
const std::string & getName () const
 
const std::string & getFilename () const
 
bool isInternal () const
 
bool isLoaded () const
 
void setType (const std::string &type)
 
void setName (const std::string &name)
 
void setFilename (const std::string &filename)
 
template<typename T >
T * as ()
 
void registerLuaBindings (const std::string &typeName, sol::state_view lua)
 

Static Public Member Functions

static void applyBitmapFontDefaults (class Factory &factory, const std::string &fontResourceName, int &outFontSize, int &outFontWidth, int &outFontHeight)
 
template<typename T >
static T lua_value_case_insensitive (const sol::table &tbl, const std::string &key, const T &default_value)
 

Static Public Attributes

static constexpr const char * TypeName = "IFontObject"
 
static std::unordered_map< FontType, std::string > FontTypeToString
 
static std::unordered_map< std::string, FontTypeStringToFontType
 

Protected Member Functions

 IFontObject (const InitStruct &init)
 
 IFontObject (const sol::table &config)
 
virtual void _registerLuaBindings (const std::string &typeName, sol::state_view lua)
 

Protected Attributes

friend Factory
 
friend Core
 
int fontSize_ = 8
 
FontType fontType_ = FontType::Bitmap
 
std::string name_
 
std::string type_
 
std::string filename_
 
bool isInternal_
 
bool isLoaded_ = false
 
sol::usertype< IAssetObjectobjHandleType_
 

Member Enumeration Documentation

◆ FontType

enum class SDOM::IFontObject::FontType
strong
Enumerator
Bitmap 
Truetype 

Constructor & Destructor Documentation

◆ IFontObject() [1/2]

SDOM::IFontObject::IFontObject ( const InitStruct init)
protected

◆ IFontObject() [2/2]

SDOM::IFontObject::IFontObject ( const sol::table &  config)
protected

◆ ~IFontObject()

SDOM::IFontObject::~IFontObject ( )
overridevirtual

Member Function Documentation

◆ _registerLuaBindings()

void SDOM::IFontObject::_registerLuaBindings ( const std::string &  typeName,
sol::state_view  lua 
)
protectedvirtual

Reimplemented from SDOM::IAssetObject.

Reimplemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ applyBitmapFontDefaults()

void SDOM::IFontObject::applyBitmapFontDefaults ( class Factory factory,
const std::string &  fontResourceName,
int &  outFontSize,
int &  outFontWidth,
int &  outFontHeight 
)
static

◆ as()

template<typename T >
T * SDOM::IAssetObject::as ( )
inlineinherited

◆ create()

virtual void SDOM::IFontObject::create ( const sol::table &  config)
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ drawGlyph()

virtual void SDOM::IFontObject::drawGlyph ( Uint32  ch,
int  x,
int  y,
const FontStyle style 
)
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ drawPhrase()

virtual void SDOM::IFontObject::drawPhrase ( const std::string &  str,
int  x,
int  y,
const FontStyle style 
)
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ drawPhraseDropshadow()

virtual void SDOM::IFontObject::drawPhraseDropshadow ( const std::string &  str,
int  x,
int  y,
const FontStyle style 
)
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ drawPhraseOutline()

virtual void SDOM::IFontObject::drawPhraseOutline ( const std::string &  str,
int  x,
int  y,
const FontStyle style 
)
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ getFilename()

const std::string & SDOM::IAssetObject::getFilename ( ) const
inlineinherited

◆ getFontAscent()

virtual int SDOM::IFontObject::getFontAscent ( )
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ getFontSize() [1/2]

int SDOM::IFontObject::getFontSize ( ) const
inline

◆ getFontSize() [2/2]

virtual int SDOM::IFontObject::getFontSize ( )
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ getFontStyle()

virtual FontStyle SDOM::IFontObject::getFontStyle ( )
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ getFontType()

FontType SDOM::IFontObject::getFontType ( ) const
inline

◆ getGlyphHeight()

virtual int SDOM::IFontObject::getGlyphHeight ( Uint32  ch) const
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ getGlyphMetrics()

virtual bool SDOM::IFontObject::getGlyphMetrics ( Uint32  ch,
int *  minx,
int *  maxx,
int *  miny,
int *  maxy,
int *  advance 
) const
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ getGlyphWidth()

virtual int SDOM::IFontObject::getGlyphWidth ( Uint32  ch) const
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ getName()

const std::string & SDOM::IAssetObject::getName ( ) const
inlineinherited

◆ getType()

const std::string & SDOM::IAssetObject::getType ( ) const
inlineinherited

◆ getWordHeight()

int SDOM::IFontObject::getWordHeight ( const std::string &  word) const

◆ getWordWidth()

int SDOM::IFontObject::getWordWidth ( const std::string &  word) const

◆ isInternal()

bool SDOM::IAssetObject::isInternal ( ) const
inlineinherited

◆ isLoaded()

bool SDOM::IAssetObject::isLoaded ( ) const
inlineinherited

◆ lua_value_case_insensitive()

template<typename T >
static T SDOM::IDataObject::lua_value_case_insensitive ( const sol::table &  tbl,
const std::string &  key,
const T &  default_value 
)
inlinestaticinherited

◆ onInit()

virtual bool SDOM::IFontObject::onInit ( )
pure virtual

Implements SDOM::IAssetObject.

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ onLoad()

virtual void SDOM::IFontObject::onLoad ( )
pure virtual

Implements SDOM::IAssetObject.

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ onQuit()

virtual void SDOM::IFontObject::onQuit ( )
pure virtual

Implements SDOM::IAssetObject.

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ onUnitTest()

virtual bool SDOM::IAssetObject::onUnitTest ( )
inlineoverridevirtualinherited

Runs unit tests for this object.

Returns
true if all tests pass, false otherwise.

Reimplemented from SDOM::IDataObject.

Reimplemented in SDOM::SpriteSheet, SDOM::Texture, and SDOM::TTFAsset.

◆ onUnload()

virtual void SDOM::IFontObject::onUnload ( )
pure virtual

Implements SDOM::IAssetObject.

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ registerLuaBindings()

void SDOM::IDataObject::registerLuaBindings ( const std::string &  typeName,
sol::state_view  lua 
)
inlineinherited

◆ setFilename()

void SDOM::IAssetObject::setFilename ( const std::string &  filename)
inlineinherited

◆ setFontSize()

virtual void SDOM::IFontObject::setFontSize ( int  p_size)
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ setFontStyle()

virtual void SDOM::IFontObject::setFontStyle ( const FontStyle style)
pure virtual

Implemented in SDOM::BitmapFont, and SDOM::TruetypeFont.

◆ setName()

void SDOM::IAssetObject::setName ( const std::string &  name)
inlineinherited

◆ setType()

void SDOM::IAssetObject::setType ( const std::string &  type)
inlineinherited

Member Data Documentation

◆ Core

friend SDOM::IFontObject::Core
protected

◆ Factory

friend SDOM::IFontObject::Factory
protected

◆ filename_

std::string SDOM::IAssetObject::filename_
protectedinherited

◆ fontSize_

int SDOM::IFontObject::fontSize_ = 8
protected

◆ fontType_

FontType SDOM::IFontObject::fontType_ = FontType::Bitmap
protected

◆ FontTypeToString

std::unordered_map<FontType, std::string> SDOM::IFontObject::FontTypeToString
inlinestatic
Initial value:

◆ isInternal_

bool SDOM::IAssetObject::isInternal_
protectedinherited

◆ isLoaded_

bool SDOM::IAssetObject::isLoaded_ = false
protectedinherited

◆ name_

std::string SDOM::IAssetObject::name_
protectedinherited

◆ objHandleType_

sol::usertype<IAssetObject> SDOM::IAssetObject::objHandleType_
protectedinherited

◆ StringToFontType

std::unordered_map<std::string, FontType> SDOM::IFontObject::StringToFontType
inlinestatic
Initial value:
= {
{ "bitmap", FontType::Bitmap },
{ "truetype", FontType::Truetype },
{ "bitmapfont", FontType::Bitmap },
{ "truetypefont", FontType::Truetype }
}

◆ type_

std::string SDOM::IAssetObject::type_
protectedinherited

◆ TypeName

constexpr const char* SDOM::IFontObject::TypeName = "IFontObject"
staticconstexpr

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