//-----------------------------------------------------------------------------------------------
// GameInterface.hpp
//
#pragma once
#ifndef include_GameInterface
#define include_GameInterface

//-----------------------------------------------------------------------------------------------
#include "Engine/Core/EngineCommon.hpp"
#include "Engine/Core/SystemEvent.hpp"


/////////////////////////////////////////////////////////////////////////////////////////////////
class GameInterface
{
public:
	GameInterface();
	virtual ~GameInterface();

	virtual bool ProcessCommandLine( CommandLineCommands& commandLineCommands );
	virtual void PreStartup();
	virtual void PostStartup();
	virtual bool ProcessSystemEvent( const SystemEvent& systemEvent );
	virtual void RunFrame();
	virtual void PreShutdown();
	virtual void PostShutdown();

public:
	static GameInterface& GetInstance();

private:
	static GameInterface* s_theGame;
};


#endif // include_GameInterface
