/******************************************************************************/
/* GAME'S MAIN LOOP ***********************************************************/
/******************************************************************************/

#ifndef _H_LW_LIB_GAMELOOP
#define _H_LW_LIB_GAMELOOP
#include <lw/lib/Messages.hh>
namespace lw {


/*= GAME LOOP ================================================================*/

class T_GameLoop : public A_PrivateImplementation
{
    public:
	T_GameLoop( ) noexcept;
	T_GameLoop( T_GameLoop const& ) = delete;
	T_GameLoop( T_GameLoop&& ) = delete;

	bool active( ) const noexcept;
	void start( ) noexcept;
	void shutdown( ) noexcept;

	void putMessage( T_UIMessage&& message ) noexcept;
};
M_CLASS_POINTERS( GameLoop );


}
#endif // _H_LW_LIB_GAMELOOP