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

#include <SDOM_SpriteSheet.hpp>

Inheritance diagram for SDOM::SpriteSheet:
SDOM::IAssetObject SDOM::IDataObject SDOM::IUnitTest

Classes

struct  InitStruct
 

Public Member Functions

 SpriteSheet ()=default
 
virtual ~SpriteSheet ()=default
 
virtual bool onInit () override
 
virtual void onQuit () override
 
virtual void onLoad () override
 
virtual void onUnload () override
 
virtual bool onUnitTest () override
 Runs unit tests for this object.
 
void setSpriteWidth (int width)
 
void setSpriteHeight (int height)
 
void setSpriteSize (int width, int height)
 
SDL_Texture * getTexture () const noexcept
 
int getSpriteWidth () const
 
int getSpriteHeight () const
 
std::pair< int, int > getSpriteSize () const
 
int getSpriteCount () const
 
int getSpriteX (int spriteIndex) const
 
int getSpriteY (int spriteIndex) const
 
void drawSprite (int spriteIndex, int x, int y, SDL_Color color={255, 255, 255, 255}, SDL_ScaleMode scaleMode=SDL_SCALEMODE_NEAREST)
 
void drawSprite (int spriteIndex, SDL_FRect &destRect, SDL_Color color={255, 255, 255, 255}, SDL_ScaleMode scaleMode=SDL_SCALEMODE_NEAREST)
 
void drawSprite (int spriteIndex, const SDL_FRect &srcRect, const SDL_FRect &dstRect, SDL_Color color={255, 255, 255, 255}, SDL_ScaleMode scaleMode=SDL_SCALEMODE_NEAREST)
 
void setSpriteWidth_Lua (IAssetObject *obj, int width)
 
void setSpriteHeight_Lua (IAssetObject *obj, int height)
 
void setSpriteSize_Lua (IAssetObject *obj, int width, int height)
 
int getSpriteWidth_Lua (IAssetObject *obj)
 
int getSpriteHeight_Lua (IAssetObject *obj)
 
sol::table getSpriteSize_Lua (IAssetObject *obj, sol::state_view lua)
 
int getSpriteCount_Lua (IAssetObject *obj)
 
int getSpriteX_Lua (IAssetObject *obj, int spriteIndex)
 
int getSpriteY_Lua (IAssetObject *obj, int spriteIndex)
 
void drawSprite_lua (int spriteIndex, int x, int y, SDL_Color color, SDL_ScaleMode scaleMode=SDL_SCALEMODE_NEAREST)
 
void drawSprite_dst_lua (int spriteIndex, SDL_FRect &destRect, SDL_Color color, SDL_ScaleMode scaleMode=SDL_SCALEMODE_NEAREST)
 
void drawSprite_ext_Lua (IAssetObject *obj, int spriteIndex, sol::table srcRect, sol::table dstRect, sol::object color=sol::nil, sol::object scaleMode=sol::nil)
 
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 std::unique_ptr< IAssetObjectCreateFromLua (const sol::table &config)
 
static std::unique_ptr< IAssetObjectCreateFromInitStruct (const IAssetObject::InitStruct &baseInit)
 
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 = "SpriteSheet"
 

Protected Member Functions

 SpriteSheet (const InitStruct &init)
 
 SpriteSheet (const sol::table &config)
 
AssetHandle getTextureAsset () const
 
virtual void _registerLuaBindings (const std::string &typeName, sol::state_view lua)
 
bool operator== (const SpriteSheet &other) const
 

Protected Attributes

friend Factory
 
friend Core
 
AssetHandle textureAsset
 
int spriteWidth_ = 8
 
int spriteHeight_ = 8
 
std::string name_
 
std::string type_
 
std::string filename_
 
bool isInternal_
 
bool isLoaded_ = false
 
sol::usertype< IAssetObjectobjHandleType_
 

Constructor & Destructor Documentation

◆ SpriteSheet() [1/3]

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

◆ SpriteSheet() [2/3]

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

◆ SpriteSheet() [3/3]

SDOM::SpriteSheet::SpriteSheet ( )
default

◆ ~SpriteSheet()

virtual SDOM::SpriteSheet::~SpriteSheet ( )
virtualdefault

Member Function Documentation

◆ _registerLuaBindings()

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

Reimplemented from SDOM::IAssetObject.

◆ as()

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

◆ CreateFromInitStruct()

static std::unique_ptr< IAssetObject > SDOM::SpriteSheet::CreateFromInitStruct ( const IAssetObject::InitStruct baseInit)
inlinestatic

◆ CreateFromLua()

static std::unique_ptr< IAssetObject > SDOM::SpriteSheet::CreateFromLua ( const sol::table &  config)
inlinestatic

◆ drawSprite() [1/3]

void SDOM::SpriteSheet::drawSprite ( int  spriteIndex,
const SDL_FRect &  srcRect,
const SDL_FRect &  dstRect,
SDL_Color  color = {255, 255, 255, 255},
SDL_ScaleMode  scaleMode = SDL_SCALEMODE_NEAREST 
)

◆ drawSprite() [2/3]

void SDOM::SpriteSheet::drawSprite ( int  spriteIndex,
int  x,
int  y,
SDL_Color  color = {255, 255, 255, 255},
SDL_ScaleMode  scaleMode = SDL_SCALEMODE_NEAREST 
)

◆ drawSprite() [3/3]

void SDOM::SpriteSheet::drawSprite ( int  spriteIndex,
SDL_FRect &  destRect,
SDL_Color  color = {255, 255, 255, 255},
SDL_ScaleMode  scaleMode = SDL_SCALEMODE_NEAREST 
)

◆ drawSprite_dst_lua()

void SDOM::SpriteSheet::drawSprite_dst_lua ( int  spriteIndex,
SDL_FRect &  destRect,
SDL_Color  color,
SDL_ScaleMode  scaleMode = SDL_SCALEMODE_NEAREST 
)

◆ drawSprite_ext_Lua()

void SDOM::SpriteSheet::drawSprite_ext_Lua ( IAssetObject obj,
int  spriteIndex,
sol::table  srcRect,
sol::table  dstRect,
sol::object  color = sol::nil,
sol::object  scaleMode = sol::nil 
)

◆ drawSprite_lua()

void SDOM::SpriteSheet::drawSprite_lua ( int  spriteIndex,
int  x,
int  y,
SDL_Color  color,
SDL_ScaleMode  scaleMode = SDL_SCALEMODE_NEAREST 
)

◆ getFilename()

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

◆ getName()

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

◆ getSpriteCount()

int SDOM::SpriteSheet::getSpriteCount ( ) const

◆ getSpriteCount_Lua()

int SDOM::SpriteSheet::getSpriteCount_Lua ( IAssetObject obj)

◆ getSpriteHeight()

int SDOM::SpriteSheet::getSpriteHeight ( ) const

◆ getSpriteHeight_Lua()

int SDOM::SpriteSheet::getSpriteHeight_Lua ( IAssetObject obj)

◆ getSpriteSize()

std::pair< int, int > SDOM::SpriteSheet::getSpriteSize ( ) const

◆ getSpriteSize_Lua()

sol::table SDOM::SpriteSheet::getSpriteSize_Lua ( IAssetObject obj,
sol::state_view  lua 
)

◆ getSpriteWidth()

int SDOM::SpriteSheet::getSpriteWidth ( ) const

◆ getSpriteWidth_Lua()

int SDOM::SpriteSheet::getSpriteWidth_Lua ( IAssetObject obj)

◆ getSpriteX()

int SDOM::SpriteSheet::getSpriteX ( int  spriteIndex) const

◆ getSpriteX_Lua()

int SDOM::SpriteSheet::getSpriteX_Lua ( IAssetObject obj,
int  spriteIndex 
)

◆ getSpriteY()

int SDOM::SpriteSheet::getSpriteY ( int  spriteIndex) const

◆ getSpriteY_Lua()

int SDOM::SpriteSheet::getSpriteY_Lua ( IAssetObject obj,
int  spriteIndex 
)

◆ getTexture()

SDL_Texture * SDOM::SpriteSheet::getTexture ( ) const
inlinenoexcept

◆ getTextureAsset()

AssetHandle SDOM::SpriteSheet::getTextureAsset ( ) const
inlineprotected

◆ getType()

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

◆ 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()

bool SDOM::SpriteSheet::onInit ( )
overridevirtual

Implements SDOM::IAssetObject.

◆ onLoad()

void SDOM::SpriteSheet::onLoad ( )
overridevirtual

Implements SDOM::IAssetObject.

◆ onQuit()

void SDOM::SpriteSheet::onQuit ( )
overridevirtual

Implements SDOM::IAssetObject.

◆ onUnitTest()

bool SDOM::SpriteSheet::onUnitTest ( )
overridevirtual

Runs unit tests for this object.

Returns
true if all tests pass, false otherwise.

Reimplemented from SDOM::IAssetObject.

◆ onUnload()

void SDOM::SpriteSheet::onUnload ( )
overridevirtual

Implements SDOM::IAssetObject.

◆ operator==()

bool SDOM::SpriteSheet::operator== ( const SpriteSheet other) const
protected

◆ registerLuaBindings()

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

◆ setFilename()

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

◆ setName()

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

◆ setSpriteHeight()

void SDOM::SpriteSheet::setSpriteHeight ( int  height)

◆ setSpriteHeight_Lua()

void SDOM::SpriteSheet::setSpriteHeight_Lua ( IAssetObject obj,
int  height 
)

◆ setSpriteSize()

void SDOM::SpriteSheet::setSpriteSize ( int  width,
int  height 
)

◆ setSpriteSize_Lua()

void SDOM::SpriteSheet::setSpriteSize_Lua ( IAssetObject obj,
int  width,
int  height 
)

◆ setSpriteWidth()

void SDOM::SpriteSheet::setSpriteWidth ( int  width)

◆ setSpriteWidth_Lua()

void SDOM::SpriteSheet::setSpriteWidth_Lua ( IAssetObject obj,
int  width 
)

◆ setType()

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

Member Data Documentation

◆ Core

friend SDOM::SpriteSheet::Core
protected

◆ Factory

friend SDOM::SpriteSheet::Factory
protected

◆ filename_

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

◆ 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

◆ spriteHeight_

int SDOM::SpriteSheet::spriteHeight_ = 8
protected

◆ spriteWidth_

int SDOM::SpriteSheet::spriteWidth_ = 8
protected

◆ textureAsset

AssetHandle SDOM::SpriteSheet::textureAsset
protected

◆ type_

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

◆ TypeName

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

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