summaryrefslogtreecommitdiff
path: root/Source/Asura.Engine/Application.h
blob: 431924a71cbce942563ae2c7792265f67563385c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef __ASURA_ENGINE_APPLICATION_H__
#define __ASURA_ENGINE_APPLICATION_H__

#include "Object.h"

namespace AsuraEngine
{

	///
	/// ģ
	///
	enum SubModules
	{
		ASURA_MODULE_NONE = 0X00000000U,

		ASURA_MODULE_GRAPHICS = 1 << 1,
		ASURA_MODULE_AUDIO    = 1 << 2,
		ASURA_MODULE_FONT     = 1 << 3,
		ASURA_MODULE_INPUT    = 1 << 4,
		ASURA_MODULE_MATH     = 1 << 5,
		ASURA_MODULE_PHYSICS  = 1 << 6,
		ASURA_MODULE_TIME     = 1 << 7,
		ASURA_MODULE_WINDOW   = 1 << 8,

		ASURA_MODULE_ALL = 0XFFFFFFFFU
	};

	///
	/// ѭ
	///
	class Application : public Object
	{
	public:
		
		Application(); 

		virtual ~Application();

		///
		/// ʼǰϵͳ
		/// 
		bool InitSubModules(uint flag = ASURA_MODULE_ALL);

		virtual void Run();

	private:

		bool InitGraphics();
		bool InitAudio();
		bool InitFont();
		bool InitInput();
		bool InitMath();
		bool InitPhysics();
		bool InitTime();
		bool InitWindow();

	};

}

#endif