view LightClone/Source/ScreenManager.h @ 70:ffaeccdc105e

Work on screen manager
author koryspansel
date Tue, 11 Oct 2011 12:09:04 -0700
parents c4ece16cf995
children bc8afcf7e1ec
line wrap: on
line source

/*
 * ScreenManager
 */

#ifndef __SCREENMANAGER_H__
#define __SCREENMANAGER_H__

#include "Core.h"
#include "Screen.h"
#include "HashMap.h"
#include "FixedString.h"
#include "FixedStack.h"
#include "RenderContext.h"

/*
 * ScreenManager
 */
class ScreenManager
{
	/*
	 * ScreenMap
	 */
	typedef HashMap<FixedString<>, Screen*, FixedString<>::Hash> ScreenMap;

	/*
	 * ScreenStack
	 */
	typedef FixedStack<Screen*, 32> ScreenStack;

	/*
	 * kScreens
	 */
	ScreenMap kScreens;

	/*
	 * kStack
	 */
	ScreenStack kStack;

public:

	/*
	 * ScreenManager
	 */
	ScreenManager();

	/*
	 * Register
	 */
	ErrorCode Register(const char* pName, Screen* pInstance);

	/*
	 * Initialize
	 */
	ErrorCode Initialize(ServiceProvider* pServiceProvider);

	/*
	 * Terminate
	 */
	void Terminate();

	/*
	 * Update
	 */
	void Update(float fElapsed);

	/*
	 * Render
	 */
	void Render(RenderContext& kContext);
};

#endif //__SCREENMANAGER_H__