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

The central singleton framework object for SDOM. More...

#include <SDOM_Core.hpp>

Inheritance diagram for SDOM::Core:
SDOM::IDataObject SDOM::IUnitTest

Classes

struct  CoreConfig
 

Public Member Functions

virtual bool onInit () override
 
virtual void onQuit () override
 
virtual bool onUnitTest () override
 Runs unit tests for this object.
 
bool run ()
 
bool run (const CoreConfig &config)
 
bool run (const sol::table &config)
 
bool run (const std::string &configFile)
 
void pumpEventsOnce ()
 
void isRunning (bool bRunning)
 
void quit ()
 
void shutdown ()
 
void onRender ()
 
void onEvent (Event &event)
 
void onUpdate (float fElapsedTime)
 
void onWindowResize (int newWidth, int newHeight)
 
void configure (const CoreConfig &config)
 
void configureFromLua (const sol::table &config)
 
void configureFromLuaFile (const std::string &filename)
 
void reconfigure (const CoreConfig &config)
 
void registerOnInit (std::function< bool()> fn)
 
void registerOnQuit (std::function< void()> fn)
 
void registerOnUpdate (std::function< void(float)> fn)
 
void registerOnEvent (std::function< void(const Event &)> fn)
 
void registerOnRender (std::function< void()> fn)
 
void registerOnUnitTest (std::function< bool()> fn)
 
void registerOnWindowResize (std::function< void(int, int)> fn)
 
void _fnOnInit (std::function< bool()> fn)
 
void _fnOnQuit (std::function< void()> fn)
 
void _fnOnUpdate (std::function< void(float)> fn)
 
void _fnOnEvent (std::function< void(const Event &)> fn)
 
void _fnOnRender (std::function< void()> fn)
 
void _fnOnUnitTest (std::function< bool()> fn)
 
void _fnOnWindowResize (std::function< void(int, int)> fn)
 
std::function< bool()> _fnGetOnInit ()
 
std::function< void()> _fnGetOnQuit ()
 
std::function< void(float)> _fnGetOnUpdate ()
 
std::function< void(const Event &)> _fnGetOnEvent ()
 
std::function< void()> _fnGetOnRender ()
 
std::function< bool()> _fnGetOnUnitTest ()
 
std::function< void(int, int)> _fnGetOnWindowResize ()
 
void setRootNode (const std::string &name)
 
void setRootNode (const DisplayHandle &handle)
 
void setStage (const std::string &name)
 
StagegetStage () const
 
IDisplayObjectgetRootNodePtr () const
 
DisplayHandle getRootNode () const
 
DisplayHandle getStageHandle () const
 
SDL_Window * getWindow () const
 
SDL_Renderer * getRenderer () const
 
SDL_Texture * getTexture () const
 
SDL_Color getColor () const
 
void setColor (const SDL_Color &color)
 
CoreConfiggetConfig ()
 
float getWindowWidth () const
 
float getWindowHeight () const
 
float getPixelWidth () const
 
float getPixelHeight () const
 
bool getPreserveAspectRatio () const
 
bool getAllowTextureResize () const
 
SDL_RendererLogicalPresentation getRendererLogicalPresentation () const
 
SDL_WindowFlags getWindowFlags () const
 
SDL_PixelFormat getPixelFormat () const
 
void setConfig (CoreConfig &config)
 
void setWindowWidth (float width)
 
void setWindowHeight (float height)
 
void setPixelWidth (float width)
 
void setPixelHeight (float height)
 
void setPreserveAspectRatio (bool preserve)
 
void setAllowTextureResize (bool allow)
 
void setRendererLogicalPresentation (SDL_RendererLogicalPresentation presentation)
 
void setWindowFlags (SDL_WindowFlags flags)
 
void setPixelFormat (SDL_PixelFormat format)
 
FactorygetFactory () const
 
EventManagergetEventManager () const
 
bool getIsTraversing () const
 
void setIsTraversing (bool traversing)
 
void handleTabKeyPress ()
 
void handleTabKeyPressReverse ()
 
void setKeyboardFocusedObject (DisplayHandle obj)
 
DisplayHandle getKeyboardFocusedObject () const
 
void clearKeyboardFocusedObject ()
 
void setMouseHoveredObject (DisplayHandle obj)
 
DisplayHandle getMouseHoveredObject () const
 
std::string getWindowTitle () const
 
void setWindowTitle (const std::string &title)
 
float getElapsedTime () const
 
sol::state & getLua ()
 
DisplayHandle createDisplayObject (const std::string &typeName, const sol::table &config)
 
DisplayHandle createDisplayObject (const std::string &typeName, const SDOM::IDisplayObject::InitStruct &init)
 
DisplayHandle createDisplayObjectFromScript (const std::string &typeName, const std::string &luaScript)
 
AssetHandle createAssetObject (const std::string &typeName, const sol::table &config)
 
AssetHandle createAssetObject (const std::string &typeName, const SDOM::IAssetObject::InitStruct &init)
 
AssetHandle createAssetObjectFromScript (const std::string &typeName, const std::string &luaScript)
 
IDisplayObjectgetDisplayObjectPtr (const std::string &name)
 
DisplayHandle getDisplayObject (const std::string &name)
 
DisplayHandle getDisplayObjectHandle (const std::string &name)
 
bool hasDisplayObject (const std::string &name) const
 
IAssetObjectgetAssetObjectPtr (const std::string &name)
 
AssetHandle getAssetObject (const std::string &name)
 
bool hasAssetObject (const std::string &name) const
 
void addDisplayObject (const std::string &name, std::unique_ptr< IDisplayObject > displayObject)
 
void destroyDisplayObject (const std::string &name)
 
int countOrphanedDisplayObjects () const
 
std::vector< DisplayHandlegetOrphanedDisplayObjects ()
 
void destroyOrphanedDisplayObjects ()
 
void detachOrphans ()
 
void attachFutureChildren ()
 
void addToOrphanList (const DisplayHandle &orphan)
 
void addToFutureChildrenList (const DisplayHandle &child, const DisplayHandle &parent, bool useWorld=false, int worldX=0, int worldY=0)
 
std::vector< std::string > listDisplayObjectNames () const
 
void clearFactory ()
 
void printObjectRegistry () const
 
std::vector< std::string > getPropertyNamesForType (const std::string &typeName) const
 
std::vector< std::string > getCommandNamesForType (const std::string &typeName) const
 
std::vector< std::string > getFunctionNamesForType (const std::string &typeName) const
 
void setStopAfterUnitTests (bool stop)
 
bool getStopAfterUnitTests ()
 
void setIgnoreRealInput (bool v)
 
bool getIgnoreRealInput () const
 
float getKeyfocusGray () const
 
void setKeyfocusGray (float gray)
 
std::string getName () const
 
void setName (const std::string &newName)
 
void registerLuaBindings (const std::string &typeName, sol::state_view lua)
 

Static Public Member Functions

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

Protected Member Functions

virtual void _registerLuaBindings (const std::string &typeName, sol::state_view lua) override
 

Protected Attributes

friend Factory
 
sol::usertype< CoreobjHandleType_
 
std::string name_ = "IDataObject"
 

Detailed Description

The central singleton framework object for SDOM.

Member Function Documentation

◆ _fnGetOnEvent()

std::function< void(const Event &)> SDOM::Core::_fnGetOnEvent ( )
inline

◆ _fnGetOnInit()

std::function< bool()> SDOM::Core::_fnGetOnInit ( )
inline

◆ _fnGetOnQuit()

std::function< void()> SDOM::Core::_fnGetOnQuit ( )
inline

◆ _fnGetOnRender()

std::function< void()> SDOM::Core::_fnGetOnRender ( )
inline

◆ _fnGetOnUnitTest()

std::function< bool()> SDOM::Core::_fnGetOnUnitTest ( )
inline

◆ _fnGetOnUpdate()

std::function< void(float)> SDOM::Core::_fnGetOnUpdate ( )
inline

◆ _fnGetOnWindowResize()

std::function< void(int, int)> SDOM::Core::_fnGetOnWindowResize ( )
inline

◆ _fnOnEvent()

void SDOM::Core::_fnOnEvent ( std::function< void(const Event &)>  fn)
inline

◆ _fnOnInit()

void SDOM::Core::_fnOnInit ( std::function< bool()>  fn)
inline

◆ _fnOnQuit()

void SDOM::Core::_fnOnQuit ( std::function< void()>  fn)
inline

◆ _fnOnRender()

void SDOM::Core::_fnOnRender ( std::function< void()>  fn)
inline

◆ _fnOnUnitTest()

void SDOM::Core::_fnOnUnitTest ( std::function< bool()>  fn)
inline

◆ _fnOnUpdate()

void SDOM::Core::_fnOnUpdate ( std::function< void(float)>  fn)
inline

◆ _fnOnWindowResize()

void SDOM::Core::_fnOnWindowResize ( std::function< void(int, int)>  fn)
inline

◆ _registerLuaBindings()

void SDOM::Core::_registerLuaBindings ( const std::string &  typeName,
sol::state_view  lua 
)
overrideprotectedvirtual

Reimplemented from SDOM::IDataObject.

◆ addDisplayObject()

void SDOM::Core::addDisplayObject ( const std::string &  name,
std::unique_ptr< IDisplayObject displayObject 
)

◆ addToFutureChildrenList()

void SDOM::Core::addToFutureChildrenList ( const DisplayHandle child,
const DisplayHandle parent,
bool  useWorld = false,
int  worldX = 0,
int  worldY = 0 
)

◆ addToOrphanList()

void SDOM::Core::addToOrphanList ( const DisplayHandle orphan)

◆ attachFutureChildren()

void SDOM::Core::attachFutureChildren ( )

◆ clearFactory()

void SDOM::Core::clearFactory ( )

◆ clearKeyboardFocusedObject()

void SDOM::Core::clearKeyboardFocusedObject ( )

◆ configure()

void SDOM::Core::configure ( const CoreConfig config)

◆ configureFromLua()

void SDOM::Core::configureFromLua ( const sol::table &  config)

◆ configureFromLuaFile()

void SDOM::Core::configureFromLuaFile ( const std::string &  filename)

◆ countOrphanedDisplayObjects()

int SDOM::Core::countOrphanedDisplayObjects ( ) const

◆ createAssetObject() [1/2]

AssetHandle SDOM::Core::createAssetObject ( const std::string &  typeName,
const SDOM::IAssetObject::InitStruct init 
)

◆ createAssetObject() [2/2]

AssetHandle SDOM::Core::createAssetObject ( const std::string &  typeName,
const sol::table &  config 
)

◆ createAssetObjectFromScript()

AssetHandle SDOM::Core::createAssetObjectFromScript ( const std::string &  typeName,
const std::string &  luaScript 
)

◆ createDisplayObject() [1/2]

DisplayHandle SDOM::Core::createDisplayObject ( const std::string &  typeName,
const SDOM::IDisplayObject::InitStruct init 
)

◆ createDisplayObject() [2/2]

DisplayHandle SDOM::Core::createDisplayObject ( const std::string &  typeName,
const sol::table &  config 
)

◆ createDisplayObjectFromScript()

DisplayHandle SDOM::Core::createDisplayObjectFromScript ( const std::string &  typeName,
const std::string &  luaScript 
)

◆ destroyDisplayObject()

void SDOM::Core::destroyDisplayObject ( const std::string &  name)

◆ destroyOrphanedDisplayObjects()

void SDOM::Core::destroyOrphanedDisplayObjects ( )

◆ detachOrphans()

void SDOM::Core::detachOrphans ( )

◆ getAllowTextureResize()

bool SDOM::Core::getAllowTextureResize ( ) const

◆ getAssetObject()

AssetHandle SDOM::Core::getAssetObject ( const std::string &  name)

◆ getAssetObjectPtr()

IAssetObject * SDOM::Core::getAssetObjectPtr ( const std::string &  name)

◆ getColor()

SDL_Color SDOM::Core::getColor ( ) const
inline

◆ getCommandNamesForType()

std::vector< std::string > SDOM::Core::getCommandNamesForType ( const std::string &  typeName) const

◆ getConfig()

Core::CoreConfig & SDOM::Core::getConfig ( )

◆ getDisplayObject()

DisplayHandle SDOM::Core::getDisplayObject ( const std::string &  name)

◆ getDisplayObjectHandle()

DisplayHandle SDOM::Core::getDisplayObjectHandle ( const std::string &  name)
inline

◆ getDisplayObjectPtr()

IDisplayObject * SDOM::Core::getDisplayObjectPtr ( const std::string &  name)

◆ getElapsedTime()

float SDOM::Core::getElapsedTime ( ) const
inline

◆ getEventManager()

EventManager & SDOM::Core::getEventManager ( ) const
inline

◆ getFactory()

Factory & SDOM::Core::getFactory ( ) const
inline

◆ getFunctionNamesForType()

std::vector< std::string > SDOM::Core::getFunctionNamesForType ( const std::string &  typeName) const

◆ getIgnoreRealInput()

bool SDOM::Core::getIgnoreRealInput ( ) const
inline

◆ getInstance()

static Core & SDOM::Core::getInstance ( )
inlinestatic

◆ getIsTraversing()

bool SDOM::Core::getIsTraversing ( ) const
inline

◆ getKeyboardFocusedObject()

DisplayHandle SDOM::Core::getKeyboardFocusedObject ( ) const

◆ getKeyfocusGray()

float SDOM::Core::getKeyfocusGray ( ) const
inline

◆ getLua()

sol::state & SDOM::Core::getLua ( )
inline

◆ getMouseHoveredObject()

DisplayHandle SDOM::Core::getMouseHoveredObject ( ) const

◆ getName()

std::string SDOM::IDataObject::getName ( ) const
inlineinherited

◆ getOrphanedDisplayObjects()

std::vector< DisplayHandle > SDOM::Core::getOrphanedDisplayObjects ( )

◆ getPixelFormat()

SDL_PixelFormat SDOM::Core::getPixelFormat ( ) const

◆ getPixelHeight()

float SDOM::Core::getPixelHeight ( ) const

◆ getPixelWidth()

float SDOM::Core::getPixelWidth ( ) const

◆ getPreserveAspectRatio()

bool SDOM::Core::getPreserveAspectRatio ( ) const

◆ getPropertyNamesForType()

std::vector< std::string > SDOM::Core::getPropertyNamesForType ( const std::string &  typeName) const

◆ getRenderer()

SDL_Renderer * SDOM::Core::getRenderer ( ) const
inline

◆ getRendererLogicalPresentation()

SDL_RendererLogicalPresentation SDOM::Core::getRendererLogicalPresentation ( ) const

◆ getRootNode()

DisplayHandle SDOM::Core::getRootNode ( ) const

◆ getRootNodePtr()

IDisplayObject * SDOM::Core::getRootNodePtr ( ) const

◆ getStage()

Stage * SDOM::Core::getStage ( ) const

◆ getStageHandle()

DisplayHandle SDOM::Core::getStageHandle ( ) const
inline

◆ getStopAfterUnitTests()

bool SDOM::Core::getStopAfterUnitTests ( )
inline

◆ getTexture()

SDL_Texture * SDOM::Core::getTexture ( ) const
inline

◆ getWindow()

SDL_Window * SDOM::Core::getWindow ( ) const
inline

◆ getWindowFlags()

SDL_WindowFlags SDOM::Core::getWindowFlags ( ) const

◆ getWindowHeight()

float SDOM::Core::getWindowHeight ( ) const

◆ getWindowTitle()

std::string SDOM::Core::getWindowTitle ( ) const
inline

◆ getWindowWidth()

float SDOM::Core::getWindowWidth ( ) const

◆ handleTabKeyPress()

void SDOM::Core::handleTabKeyPress ( )

◆ handleTabKeyPressReverse()

void SDOM::Core::handleTabKeyPressReverse ( )

◆ hasAssetObject()

bool SDOM::Core::hasAssetObject ( const std::string &  name) const

◆ hasDisplayObject()

bool SDOM::Core::hasDisplayObject ( const std::string &  name) const

◆ isRunning()

void SDOM::Core::isRunning ( bool  bRunning)
inline

◆ listDisplayObjectNames()

std::vector< std::string > SDOM::Core::listDisplayObjectNames ( ) const

◆ 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

◆ onEvent()

void SDOM::Core::onEvent ( Event event)

◆ onInit()

bool SDOM::Core::onInit ( )
overridevirtual

Implements SDOM::IDataObject.

◆ onQuit()

void SDOM::Core::onQuit ( )
overridevirtual

Implements SDOM::IDataObject.

◆ onRender()

void SDOM::Core::onRender ( )

◆ onUnitTest()

bool SDOM::Core::onUnitTest ( )
overridevirtual

Runs unit tests for this object.

Returns
true if all tests pass, false otherwise.

Reimplemented from SDOM::IDataObject.

◆ onUpdate()

void SDOM::Core::onUpdate ( float  fElapsedTime)

◆ onWindowResize()

void SDOM::Core::onWindowResize ( int  newWidth,
int  newHeight 
)

◆ printObjectRegistry()

void SDOM::Core::printObjectRegistry ( ) const

◆ pumpEventsOnce()

void SDOM::Core::pumpEventsOnce ( )

◆ quit()

void SDOM::Core::quit ( )
inline

◆ reconfigure()

void SDOM::Core::reconfigure ( const CoreConfig config)

◆ registerLuaBindings()

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

◆ registerOnEvent()

void SDOM::Core::registerOnEvent ( std::function< void(const Event &)>  fn)
inline

◆ registerOnInit()

void SDOM::Core::registerOnInit ( std::function< bool()>  fn)
inline

◆ registerOnQuit()

void SDOM::Core::registerOnQuit ( std::function< void()>  fn)
inline

◆ registerOnRender()

void SDOM::Core::registerOnRender ( std::function< void()>  fn)
inline

◆ registerOnUnitTest()

void SDOM::Core::registerOnUnitTest ( std::function< bool()>  fn)
inline

◆ registerOnUpdate()

void SDOM::Core::registerOnUpdate ( std::function< void(float)>  fn)
inline

◆ registerOnWindowResize()

void SDOM::Core::registerOnWindowResize ( std::function< void(int, int)>  fn)
inline

◆ run() [1/4]

bool SDOM::Core::run ( )

◆ run() [2/4]

bool SDOM::Core::run ( const CoreConfig config)

◆ run() [3/4]

bool SDOM::Core::run ( const sol::table &  config)

◆ run() [4/4]

bool SDOM::Core::run ( const std::string &  configFile)

◆ setAllowTextureResize()

void SDOM::Core::setAllowTextureResize ( bool  allow)

◆ setColor()

void SDOM::Core::setColor ( const SDL_Color &  color)
inline

◆ setConfig()

void SDOM::Core::setConfig ( CoreConfig config)

◆ setIgnoreRealInput()

void SDOM::Core::setIgnoreRealInput ( bool  v)
inline

◆ setIsTraversing()

void SDOM::Core::setIsTraversing ( bool  traversing)
inline

◆ setKeyboardFocusedObject()

void SDOM::Core::setKeyboardFocusedObject ( DisplayHandle  obj)

◆ setKeyfocusGray()

void SDOM::Core::setKeyfocusGray ( float  gray)
inline

◆ setMouseHoveredObject()

void SDOM::Core::setMouseHoveredObject ( DisplayHandle  obj)

◆ setName()

void SDOM::IDataObject::setName ( const std::string &  newName)
inlineinherited

◆ setPixelFormat()

void SDOM::Core::setPixelFormat ( SDL_PixelFormat  format)

◆ setPixelHeight()

void SDOM::Core::setPixelHeight ( float  height)

◆ setPixelWidth()

void SDOM::Core::setPixelWidth ( float  width)

◆ setPreserveAspectRatio()

void SDOM::Core::setPreserveAspectRatio ( bool  preserve)

◆ setRendererLogicalPresentation()

void SDOM::Core::setRendererLogicalPresentation ( SDL_RendererLogicalPresentation  presentation)

◆ setRootNode() [1/2]

void SDOM::Core::setRootNode ( const DisplayHandle handle)

◆ setRootNode() [2/2]

void SDOM::Core::setRootNode ( const std::string &  name)

◆ setStage()

void SDOM::Core::setStage ( const std::string &  name)

◆ setStopAfterUnitTests()

void SDOM::Core::setStopAfterUnitTests ( bool  stop)
inline

◆ setWindowFlags()

void SDOM::Core::setWindowFlags ( SDL_WindowFlags  flags)

◆ setWindowHeight()

void SDOM::Core::setWindowHeight ( float  height)

◆ setWindowTitle()

void SDOM::Core::setWindowTitle ( const std::string &  title)
inline

◆ setWindowWidth()

void SDOM::Core::setWindowWidth ( float  width)

◆ shutdown()

void SDOM::Core::shutdown ( )
inline

Member Data Documentation

◆ Factory

friend SDOM::Core::Factory
protected

◆ name_

std::string SDOM::IDataObject::name_ = "IDataObject"
protectedinherited

◆ objHandleType_

sol::usertype<Core> SDOM::Core::objHandleType_
protected

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