diff 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 diff
--- a/LightClone/Source/ScreenManager.h	Mon Oct 10 09:49:54 2011 -0700
+++ b/LightClone/Source/ScreenManager.h	Tue Oct 11 12:09:04 2011 -0700
@@ -7,12 +7,36 @@
 
 #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:
 
 	/*
@@ -21,9 +45,14 @@
 	ScreenManager();
 
 	/*
+	 * Register
+	 */
+	ErrorCode Register(const char* pName, Screen* pInstance);
+
+	/*
 	 * Initialize
 	 */
-	ErrorCode Initialize();
+	ErrorCode Initialize(ServiceProvider* pServiceProvider);
 
 	/*
 	 * Terminate
@@ -38,7 +67,7 @@
 	/*
 	 * Render
 	 */
-	void Render();
+	void Render(RenderContext& kContext);
 };
 
 #endif //__SCREENMANAGER_H__