summaryrefslogtreecommitdiff
path: root/Source/Asura.Engine
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Asura.Engine')
-rw-r--r--Source/Asura.Engine/AI/BehaviorTree.cpp0
-rw-r--r--Source/Asura.Engine/AI/BehaviorTree.h0
-rw-r--r--Source/Asura.Engine/AI/StateMachine.cpp0
-rw-r--r--Source/Asura.Engine/AI/StateMachine.h33
-rw-r--r--Source/Asura.Engine/AI/StateMap.cpp0
-rw-r--r--Source/Asura.Engine/AI/StateMap.h25
-rw-r--r--Source/Asura.Engine/Asura.h6
-rw-r--r--Source/Asura.Engine/Audio/Sound.cpp0
-rw-r--r--Source/Asura.Engine/Audio/Sound.h0
-rw-r--r--Source/Asura.Engine/Audio/Source.cpp0
-rw-r--r--Source/Asura.Engine/Audio/Source.h0
-rw-r--r--Source/Asura.Engine/Component.cpp0
-rw-r--r--Source/Asura.Engine/Component.h43
-rw-r--r--Source/Asura.Engine/Containers/Map.cpp0
-rw-r--r--Source/Asura.Engine/Containers/Map.h17
-rw-r--r--Source/Asura.Engine/Containers/Stack.cpp0
-rw-r--r--Source/Asura.Engine/Containers/Stack.h0
-rw-r--r--Source/Asura.Engine/Containers/String.cpp0
-rw-r--r--Source/Asura.Engine/Containers/String.h78
-rw-r--r--Source/Asura.Engine/Containers/StringMap.cpp0
-rw-r--r--Source/Asura.Engine/Containers/StringMap.hpp32
-rw-r--r--Source/Asura.Engine/Containers/UnorderedMap.hpp0
-rw-r--r--Source/Asura.Engine/Containers/Vector.hpp16
-rw-r--r--Source/Asura.Engine/Exceptions/Exception.cpp0
-rw-r--r--Source/Asura.Engine/Exceptions/Exception.h0
-rw-r--r--Source/Asura.Engine/Factory.h14
-rw-r--r--Source/Asura.Engine/FileSystem/AnimationImpoter.h20
-rw-r--r--Source/Asura.Engine/FileSystem/Asset.cpp0
-rw-r--r--Source/Asura.Engine/FileSystem/Asset.h22
-rw-r--r--Source/Asura.Engine/FileSystem/ImageImpoter.h20
-rw-r--r--Source/Asura.Engine/FileSystem/Importer.h17
-rw-r--r--Source/Asura.Engine/FileSystem/ParticleSystemImpoter.h20
-rw-r--r--Source/Asura.Engine/FileSystem/SpriteImpoter.h20
-rw-r--r--Source/Asura.Engine/Font/TrueTypeFont.cpp0
-rw-r--r--Source/Asura.Engine/Font/TrueTypeFont.h0
-rw-r--r--Source/Asura.Engine/GUI/Button.cpp0
-rw-r--r--Source/Asura.Engine/GUI/README.md1
-rw-r--r--Source/Asura.Engine/GameObject.cpp11
-rw-r--r--Source/Asura.Engine/GameObject.h56
-rw-r--r--Source/Asura.Engine/Graphics/Animation.cpp21
-rw-r--r--Source/Asura.Engine/Graphics/Animation.h128
-rw-r--r--Source/Asura.Engine/Graphics/Animator.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Animator.h96
-rw-r--r--Source/Asura.Engine/Graphics/Camera.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Camera.h42
-rw-r--r--Source/Asura.Engine/Graphics/Canvas.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Canvas.h20
-rw-r--r--Source/Asura.Engine/Graphics/CanvasRenderer.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/CanvasRenderer.h30
-rw-r--r--Source/Asura.Engine/Graphics/Color.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Color.h30
-rw-r--r--Source/Asura.Engine/Graphics/Image.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Image.h119
-rw-r--r--Source/Asura.Engine/Graphics/Material.cpp18
-rw-r--r--Source/Asura.Engine/Graphics/Material.h189
-rw-r--r--Source/Asura.Engine/Graphics/Mesh2D.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Mesh2D.h20
-rw-r--r--Source/Asura.Engine/Graphics/Mesh2DRenderer.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Mesh2DRenderer.h19
-rw-r--r--Source/Asura.Engine/Graphics/OpenGL.cpp11
-rw-r--r--Source/Asura.Engine/Graphics/OpenGL.h17
-rw-r--r--Source/Asura.Engine/Graphics/ParticleSystem.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/ParticleSystem.h22
-rw-r--r--Source/Asura.Engine/Graphics/Prefab.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Prefab.h30
-rw-r--r--Source/Asura.Engine/Graphics/Renderer.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Renderer.h39
-rw-r--r--Source/Asura.Engine/Graphics/Shader.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Shader.h67
-rw-r--r--Source/Asura.Engine/Graphics/ShapeRenderer.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/ShapeRenderer.h0
-rw-r--r--Source/Asura.Engine/Graphics/Sprite.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Sprite.h71
-rw-r--r--Source/Asura.Engine/Graphics/SpriteBatch.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/SpriteBatch.h0
-rw-r--r--Source/Asura.Engine/Graphics/SpriteRenderer.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/SpriteRenderer.h32
-rw-r--r--Source/Asura.Engine/Graphics/Texture.cpp0
-rw-r--r--Source/Asura.Engine/Graphics/Texture.h22
-rw-r--r--Source/Asura.Engine/Input/Keyboard.cpp0
-rw-r--r--Source/Asura.Engine/Input/Keyboard.h0
-rw-r--r--Source/Asura.Engine/Layer.cpp0
-rw-r--r--Source/Asura.Engine/Layer.h0
-rw-r--r--Source/Asura.Engine/Manager.hpp14
-rw-r--r--Source/Asura.Engine/Math/Curve.cpp0
-rw-r--r--Source/Asura.Engine/Math/Curve.h0
-rw-r--r--Source/Asura.Engine/Math/Functions.cpp0
-rw-r--r--Source/Asura.Engine/Math/Functions.h0
-rw-r--r--Source/Asura.Engine/Math/Matrix44.cpp0
-rw-r--r--Source/Asura.Engine/Math/Matrix44.h24
-rw-r--r--Source/Asura.Engine/Math/RangedValue.cpp0
-rw-r--r--Source/Asura.Engine/Math/RangedValue.h0
-rw-r--r--Source/Asura.Engine/Math/Vector2.cpp0
-rw-r--r--Source/Asura.Engine/Math/Vector2.h17
-rw-r--r--Source/Asura.Engine/Math/Vector3.cpp0
-rw-r--r--Source/Asura.Engine/Math/Vector3.h17
-rw-r--r--Source/Asura.Engine/Math/Vector4.cpp0
-rw-r--r--Source/Asura.Engine/Math/Vector4.h17
-rw-r--r--Source/Asura.Engine/Object.cpp23
-rw-r--r--Source/Asura.Engine/Object.h32
-rw-r--r--Source/Asura.Engine/ObjectPool.cpp0
-rw-r--r--Source/Asura.Engine/ObjectPool.h14
-rw-r--r--Source/Asura.Engine/Physics/World.h14
-rw-r--r--Source/Asura.Engine/Profiler/Stats.cpp0
-rw-r--r--Source/Asura.Engine/Profiler/Stats.h0
-rw-r--r--Source/Asura.Engine/Scene.cpp0
-rw-r--r--Source/Asura.Engine/Scene.h28
-rw-r--r--Source/Asura.Engine/Scripting/Luax.hpp8
-rw-r--r--Source/Asura.Engine/Time/Timer.cpp0
-rw-r--r--Source/Asura.Engine/Time/Timer.h0
-rw-r--r--Source/Asura.Engine/Transform.cpp0
-rw-r--r--Source/Asura.Engine/Transform.h24
-rw-r--r--Source/Asura.Engine/Type.h24
113 files changed, 1750 insertions, 0 deletions
diff --git a/Source/Asura.Engine/AI/BehaviorTree.cpp b/Source/Asura.Engine/AI/BehaviorTree.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/AI/BehaviorTree.cpp
diff --git a/Source/Asura.Engine/AI/BehaviorTree.h b/Source/Asura.Engine/AI/BehaviorTree.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/AI/BehaviorTree.h
diff --git a/Source/Asura.Engine/AI/StateMachine.cpp b/Source/Asura.Engine/AI/StateMachine.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/AI/StateMachine.cpp
diff --git a/Source/Asura.Engine/AI/StateMachine.h b/Source/Asura.Engine/AI/StateMachine.h
new file mode 100644
index 0000000..17f8945
--- /dev/null
+++ b/Source/Asura.Engine/AI/StateMachine.h
@@ -0,0 +1,33 @@
+#ifndef __AE_STATEMACHINE_H__
+#define __AE_STATEMACHINE_H__
+
+#include "StateMap.h"
+#include "Component.h"
+
+namespace AsuraEngine
+{
+ namespace AI
+ {
+
+ ///
+ /// Ϊstate mapĴ
+ ///
+ class StateMachine : public Component
+ {
+ public:
+
+
+
+ private:
+
+ ///
+ /// Statemachine ʹõstateͼ
+ ///
+ StateMap* mStateMap;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/AI/StateMap.cpp b/Source/Asura.Engine/AI/StateMap.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/AI/StateMap.cpp
diff --git a/Source/Asura.Engine/AI/StateMap.h b/Source/Asura.Engine/AI/StateMap.h
new file mode 100644
index 0000000..873e1d9
--- /dev/null
+++ b/Source/Asura.Engine/AI/StateMap.h
@@ -0,0 +1,25 @@
+#ifndef __AE_STATEMAP_H__
+#define __AE_STATEMAP_H__
+
+#include "Filesystem/Asset.h"
+
+namespace AsuraEngine
+{
+ namespace AI
+ {
+
+ class StateMap : public Filesystem::Asset
+ {
+ public:
+
+
+ private:
+
+
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Asura.h b/Source/Asura.Engine/Asura.h
new file mode 100644
index 0000000..dfa0fa5
--- /dev/null
+++ b/Source/Asura.Engine/Asura.h
@@ -0,0 +1,6 @@
+#ifndef __AE_H__
+#define __AE_H__
+
+
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Audio/Sound.cpp b/Source/Asura.Engine/Audio/Sound.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Audio/Sound.cpp
diff --git a/Source/Asura.Engine/Audio/Sound.h b/Source/Asura.Engine/Audio/Sound.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Audio/Sound.h
diff --git a/Source/Asura.Engine/Audio/Source.cpp b/Source/Asura.Engine/Audio/Source.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Audio/Source.cpp
diff --git a/Source/Asura.Engine/Audio/Source.h b/Source/Asura.Engine/Audio/Source.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Audio/Source.h
diff --git a/Source/Asura.Engine/Component.cpp b/Source/Asura.Engine/Component.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Component.cpp
diff --git a/Source/Asura.Engine/Component.h b/Source/Asura.Engine/Component.h
new file mode 100644
index 0000000..807bbba
--- /dev/null
+++ b/Source/Asura.Engine/Component.h
@@ -0,0 +1,43 @@
+#ifndef __AE_COMPONENT_H__
+#define __AE_COMPONENT_H__
+
+#include "GameObject.h"
+
+namespace AsuraEngine
+{
+
+ class GameObject;
+
+ ///
+ /// ComponentͨprefabGameObjectϡ
+ ///
+ class Component : public Object
+ {
+ public:
+
+ virtual void OnEnable();
+ virtual void OnEvent();
+ virtual void OnUpdate(uint32 milliseconds);
+ virtual void OnRender();
+ virtual void OnDisable();
+
+ protected:
+
+ enum class EnableCallback
+ {
+ OnEnable = 1,
+ OnEvent = 1 << 1,
+ OnUpdate = 1 << 2,
+ OnRender = 1 << 3,
+ OnDisable = 1 << 4,
+ };
+
+ EnableCallback mEnabledCallbacks;
+
+ GameObject* mGameObject;
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Containers/Map.cpp b/Source/Asura.Engine/Containers/Map.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Containers/Map.cpp
diff --git a/Source/Asura.Engine/Containers/Map.h b/Source/Asura.Engine/Containers/Map.h
new file mode 100644
index 0000000..2caedef
--- /dev/null
+++ b/Source/Asura.Engine/Containers/Map.h
@@ -0,0 +1,17 @@
+#ifndef __AE_MAP_H__
+#define __AE_MAP_H__
+
+#include <map>
+
+namespace AsuraEngine
+{
+ namespace Containers
+ {
+
+ template<typename key_type, typename value_type>
+ using Map = std::map<key_type, value_type>;
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Containers/Stack.cpp b/Source/Asura.Engine/Containers/Stack.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Containers/Stack.cpp
diff --git a/Source/Asura.Engine/Containers/Stack.h b/Source/Asura.Engine/Containers/Stack.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Containers/Stack.h
diff --git a/Source/Asura.Engine/Containers/String.cpp b/Source/Asura.Engine/Containers/String.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Containers/String.cpp
diff --git a/Source/Asura.Engine/Containers/String.h b/Source/Asura.Engine/Containers/String.h
new file mode 100644
index 0000000..3c806fb
--- /dev/null
+++ b/Source/Asura.Engine/Containers/String.h
@@ -0,0 +1,78 @@
+#ifndef __AE_STRING_H__
+#define __AE_STRING_H__
+
+#include <string>
+
+namespace AsuraEngine
+{
+ namespace Containers
+ {
+
+ ///
+ /// װstd::string
+ ///
+ class String : public std::string
+ {
+ public:
+ inline String()
+ : std::string()
+ {
+ }
+
+ inline String(const std::string& str)
+ : std::string(str)
+ {
+ }
+
+ inline String(const String& str)
+ : std::string(str)
+ {
+ }
+
+ inline String(const char* str)
+ : std::string(str)
+ {
+ }
+
+ inline String& operator = (const String& str)
+ {
+ std::string::operator=(str);
+ return *this;
+ }
+
+ inline operator const char* () const
+ {
+ return this->c_str();
+ }
+
+ inline const char* str() const
+ {
+ return this->c_str();
+ }
+
+ inline String(const String& s2, size_type pos2, size_type len2)
+ : std::string(s2, pos2, len2)
+ {
+ }
+
+ inline String(const char* buf, size_type bufsize)
+ : std::string(buf, bufsize)
+ {
+ }
+
+ inline String(size_type repetitions, char c)
+ : std::string(repetitions, c)
+ {
+ }
+
+ inline int length() const
+ {
+ return size();
+ }
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Containers/StringMap.cpp b/Source/Asura.Engine/Containers/StringMap.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Containers/StringMap.cpp
diff --git a/Source/Asura.Engine/Containers/StringMap.hpp b/Source/Asura.Engine/Containers/StringMap.hpp
new file mode 100644
index 0000000..94858a7
--- /dev/null
+++ b/Source/Asura.Engine/Containers/StringMap.hpp
@@ -0,0 +1,32 @@
+#ifndef __AE_STRINGMAP_H__
+#define __AE_STRINGMAP_H__
+
+#include "String.h"
+
+namespace AsuraEngine
+{
+ namespace Containers
+ {
+
+ ///
+ /// һ˫һһӦӳ䣬shader uniformsstatemathine state parameterID
+ ///
+ template<typename key_type>
+ class StringMap
+ {
+ public:
+
+ bool ContainsKey(const key_type& key);
+
+ bool ContainsString(const String& str);
+
+ String GetStringByKey(const key_type& key);
+
+ key_type GetKeyByString(const String& str);
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Containers/UnorderedMap.hpp b/Source/Asura.Engine/Containers/UnorderedMap.hpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Containers/UnorderedMap.hpp
diff --git a/Source/Asura.Engine/Containers/Vector.hpp b/Source/Asura.Engine/Containers/Vector.hpp
new file mode 100644
index 0000000..9fbd52a
--- /dev/null
+++ b/Source/Asura.Engine/Containers/Vector.hpp
@@ -0,0 +1,16 @@
+#ifndef __AE_VECTOR_HPP__
+#define __AE_VECTOR_HPP__
+
+#include <vector>
+
+namespace AsuraEngine
+{
+ namespace Containers
+ {
+ template<typename T>
+ using Vector = std::vector<T>;
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Exceptions/Exception.cpp b/Source/Asura.Engine/Exceptions/Exception.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Exceptions/Exception.cpp
diff --git a/Source/Asura.Engine/Exceptions/Exception.h b/Source/Asura.Engine/Exceptions/Exception.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Exceptions/Exception.h
diff --git a/Source/Asura.Engine/Factory.h b/Source/Asura.Engine/Factory.h
new file mode 100644
index 0000000..0cccab2
--- /dev/null
+++ b/Source/Asura.Engine/Factory.h
@@ -0,0 +1,14 @@
+#ifndef __AE_FACTORY_H__
+#define __AE_FACTORY_H__
+
+namespace AsuraEngine
+{
+
+ class Factory
+ {
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/FileSystem/AnimationImpoter.h b/Source/Asura.Engine/FileSystem/AnimationImpoter.h
new file mode 100644
index 0000000..57fdfdb
--- /dev/null
+++ b/Source/Asura.Engine/FileSystem/AnimationImpoter.h
@@ -0,0 +1,20 @@
+#ifndef __AE_IMAGE_IMPORTER_H__
+#define __AE_IMAGE_IMPORTER_H___
+
+namespace AsuraEngine
+{
+ namespace Filesystem
+ {
+
+ ///
+ /// .asranimation
+ ///
+ class AnimationImporter
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/FileSystem/Asset.cpp b/Source/Asura.Engine/FileSystem/Asset.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/FileSystem/Asset.cpp
diff --git a/Source/Asura.Engine/FileSystem/Asset.h b/Source/Asura.Engine/FileSystem/Asset.h
new file mode 100644
index 0000000..9fc6607
--- /dev/null
+++ b/Source/Asura.Engine/FileSystem/Asset.h
@@ -0,0 +1,22 @@
+#ifndef __AE_ASSET_H__
+#define __AE_ASSET_H__
+
+#include "Object.h"
+
+namespace AsuraEngine
+{
+ namespace Filesystem
+ {
+
+ ///
+ /// AssetΪ
+ ///
+ class Asset : public Object
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/FileSystem/ImageImpoter.h b/Source/Asura.Engine/FileSystem/ImageImpoter.h
new file mode 100644
index 0000000..ca7cb9a
--- /dev/null
+++ b/Source/Asura.Engine/FileSystem/ImageImpoter.h
@@ -0,0 +1,20 @@
+#ifndef __AE_IMAGE_IMPORTER_H__
+#define __AE_IMAGE_IMPORTER_H___
+
+namespace AsuraEngine
+{
+ namespace Filesystem
+ {
+
+ ///
+ /// .asrimage
+ ///
+ class ImageImporter
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/FileSystem/Importer.h b/Source/Asura.Engine/FileSystem/Importer.h
new file mode 100644
index 0000000..b343a92
--- /dev/null
+++ b/Source/Asura.Engine/FileSystem/Importer.h
@@ -0,0 +1,17 @@
+#ifndef __AE_IMPORTER_H__
+#define __AE_IMPORTER_H__
+
+namespace AsuraEngine
+{
+ namespace Filesystem
+ {
+
+ class Importer
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/FileSystem/ParticleSystemImpoter.h b/Source/Asura.Engine/FileSystem/ParticleSystemImpoter.h
new file mode 100644
index 0000000..92796f3
--- /dev/null
+++ b/Source/Asura.Engine/FileSystem/ParticleSystemImpoter.h
@@ -0,0 +1,20 @@
+#ifndef __AE_IMAGE_IMPORTER_H__
+#define __AE_IMAGE_IMPORTER_H___
+
+namespace AsuraEngine
+{
+ namespace Filesystem
+ {
+
+ ///
+ /// .asrparticle system
+ ///
+ class ParticleSystemImporter
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/FileSystem/SpriteImpoter.h b/Source/Asura.Engine/FileSystem/SpriteImpoter.h
new file mode 100644
index 0000000..0e157c1
--- /dev/null
+++ b/Source/Asura.Engine/FileSystem/SpriteImpoter.h
@@ -0,0 +1,20 @@
+#ifndef __AE_IMAGE_IMPORTER_H__
+#define __AE_IMAGE_IMPORTER_H___
+
+namespace AsuraEngine
+{
+ namespace Filesystem
+ {
+
+ ///
+ /// .asrsprite
+ ///
+ class SpriteImporter
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Font/TrueTypeFont.cpp b/Source/Asura.Engine/Font/TrueTypeFont.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Font/TrueTypeFont.cpp
diff --git a/Source/Asura.Engine/Font/TrueTypeFont.h b/Source/Asura.Engine/Font/TrueTypeFont.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Font/TrueTypeFont.h
diff --git a/Source/Asura.Engine/GUI/Button.cpp b/Source/Asura.Engine/GUI/Button.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/GUI/Button.cpp
diff --git a/Source/Asura.Engine/GUI/README.md b/Source/Asura.Engine/GUI/README.md
new file mode 100644
index 0000000..3e367c7
--- /dev/null
+++ b/Source/Asura.Engine/GUI/README.md
@@ -0,0 +1 @@
+immediate mode game gui \ No newline at end of file
diff --git a/Source/Asura.Engine/GameObject.cpp b/Source/Asura.Engine/GameObject.cpp
new file mode 100644
index 0000000..322f798
--- /dev/null
+++ b/Source/Asura.Engine/GameObject.cpp
@@ -0,0 +1,11 @@
+#include "GameObject.h"
+
+namespace AsuraEngine
+{
+
+ void GameObject::OnUpdate(uint32 milliseconds)
+ {
+
+ }
+
+}
diff --git a/Source/Asura.Engine/GameObject.h b/Source/Asura.Engine/GameObject.h
new file mode 100644
index 0000000..85dc87f
--- /dev/null
+++ b/Source/Asura.Engine/GameObject.h
@@ -0,0 +1,56 @@
+#ifndef __AE_GAMEOBJECT_H__
+#define __AE_GAMEOBJECT_H__
+
+#include "./Containers/Vector.hpp"
+#include "./Math/Vector2.h"
+
+#include "Object.h"
+#include "Component.h"
+#include "Transform.h"
+#include "Manager.hpp"
+
+namespace AsuraEngine
+{
+
+ ///
+ /// Ϸʵ壬
+ ///
+ class GameObject final : public Object
+ {
+ public:
+
+ // Ļص
+
+ void OnEnable();
+ void OnEvent();
+ void OnUpdate(uint32 milliseconds);
+ void OnRender();
+ void OnDisable();
+
+ // transformͨк޸GameObjectλáźת
+
+ const Transform& GetTransform();
+ const Math::Vector2& GetPosition();
+ const Math::Vector2& GetScale();
+ const Math::Vector2& GetRotation();
+ void SetTransform(const Transform& transform);
+ void SetPosition(const Math::Vector2& position);
+ void SetScale(const Math::Vector2& scale);
+ void SetRotation(const Math::Vector2& rotation);
+
+ template<typename T>
+ inline T GetComponent()
+ {
+ return NULL;
+ }
+
+ private:
+
+ Transform mTransform;
+ Containers::Vector<Component*> mComponents;
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Animation.cpp b/Source/Asura.Engine/Graphics/Animation.cpp
new file mode 100644
index 0000000..47643aa
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Animation.cpp
@@ -0,0 +1,21 @@
+#include "Animation.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ void Animation::OnEnable()
+ {
+ mSpriteRenderer = mGameObject->GetComponent<SpriteRenderer*>();
+ }
+
+ void Animation::OnUpdate(uint32 milliseconds)
+ {
+ if (!mSpriteRenderer)
+ return;
+ mSpriteRenderer->SetSprite(NULL);
+ }
+
+ }
+}
diff --git a/Source/Asura.Engine/Graphics/Animation.h b/Source/Asura.Engine/Graphics/Animation.h
new file mode 100644
index 0000000..391da22
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Animation.h
@@ -0,0 +1,128 @@
+#ifndef __AE_ANIMATION_H__
+#define __AE_ANIMATION_H__
+
+#include "Sprite.h"
+#include "Component.h"
+#include "Manager.hpp"
+#include "SpriteRenderer.h"
+#include "Containers/Map.h"
+#include "Containers/Vector.hpp"
+#include "Containers/StringMap.hpp"
+#include "Filesystem/Asset.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// ؼ֡
+ ///
+ struct Frame
+ {
+ uint mask; //
+ float time;
+ Sprite* sprite;
+ };
+
+ ///
+ /// SpriteԸıspriteĴСתšimageAnimationͨanimator޸ġ
+ ///
+ class Animation final : public Filesystem::Asset
+ {
+ public:
+
+ enum UpdateMask
+ {
+ Scale = 1,
+ Position = 1 << 1,
+ Rotation = 1 << 2,
+ Sprite = 1 << 3
+ };
+
+ struct Definition
+ {
+
+ };
+
+ ///
+ /// ʱһ֡
+ ///
+ Frame GetFrame(float t);
+
+ ///
+ /// ùؼ֡
+ ///
+ uint GetKeyFrameCount();
+
+ ///
+ /// Ƿѭ
+ ///
+ uint GetLoop();
+
+ ///
+ /// ȡʱ
+ ///
+ uint GetDuration();
+
+ private:
+
+ ///
+ /// ؼ֡
+ ///
+ Containers::Vector<Frame> mFrames;
+
+ ///
+ /// ʱ
+ ///
+ float mDuration;
+
+ ///
+ /// Ƿѭ
+ ///
+ bool mLoop;
+
+ ///
+ /// ID
+ ///
+ uint mID;
+
+ UpdateMask mUpdateMask;
+
+ };
+
+ class AnimationManager : public Manager
+ {
+ public:
+
+ Containers::String GetAnimationName(uint ID);
+
+ uint GetAnimationID(const Containers::String& name);
+
+ Animation* GetAnimation(uint ID);
+
+ Animation* GetAnimation(const Containers::String& name);
+
+ ///
+ /// ӶID
+ ///
+ uint AddAnimation(Animation* animation);
+
+ private:
+
+ ///
+ /// ӳIDanimation
+ ///
+ Containers::StringMap<uint> mAnimationIDs;
+
+ ///
+ /// ӳkeyanimation
+ ///
+ Containers::Map<uint, Animation*> mAnimations;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Animator.cpp b/Source/Asura.Engine/Graphics/Animator.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Animator.cpp
diff --git a/Source/Asura.Engine/Graphics/Animator.h b/Source/Asura.Engine/Graphics/Animator.h
new file mode 100644
index 0000000..4d3d269
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Animator.h
@@ -0,0 +1,96 @@
+#ifndef __AE_ANIMATOR_H__
+#define __AE_ANIMATOR_H__
+
+#include "Component.h"
+#include "Animation.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// animationҪΪanimationĴ
+ ///
+ class Animator final : public Component
+ {
+ public:
+
+ void OnEnable() override;
+ void OnUpdate(uint32 milliseconds) override;
+
+ ///
+ /// animation
+ ///
+ void SetAnimation(uint ID);
+
+ ///
+ /// animation
+ ///
+ void SetAnimation(Animation* animation);
+
+ ///
+ /// animation״̬
+ ///
+ void SetTime(float time);
+
+ ///
+ /// ޸IJٶ
+ ///
+ void SetSpeed(float speed);
+
+ ///
+ /// Ƿѭ
+ ///
+ void SetLoop(bool isloop);
+
+ ///
+ /// ݹؼ֡޸animation
+ ///
+ void SetKeyFrame(uint keyFrame);
+
+ ///
+ /// õ
+ ///
+ void SetToBegin();
+
+ ///
+ /// õʼ
+ ///
+ void SetToEnd();
+
+ ///
+ /// ͣ
+ ///
+ void Pause();
+
+ private:
+
+ ///
+ /// ǰanimation
+ ///
+ Animation* mAnimation;
+
+ ///
+ /// AnimationҪһsprite renderer
+ ///
+ SpriteRenderer* mSpriteRenderer;
+
+ ///
+ /// ٶȣĬΪ1dt = mSpeed * DELTA_TIME
+ ///
+ float mSpeed;
+
+ ///
+ /// ǰִеʱ
+ ///
+ float mTime;
+
+ bool mLoop;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Camera.cpp b/Source/Asura.Engine/Graphics/Camera.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Camera.cpp
diff --git a/Source/Asura.Engine/Graphics/Camera.h b/Source/Asura.Engine/Graphics/Camera.h
new file mode 100644
index 0000000..699d342
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Camera.h
@@ -0,0 +1,42 @@
+#ifndef __AE_CAMERA_H__
+#define __AE_CAMERA_H__
+
+#include "RenderTarget.h"
+#include "Component.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// Orthographic Camera.
+ ///
+ class Camera : public Component
+ {
+ public:
+
+
+ private:
+
+ ///
+ /// ȾĿ
+ ///
+ RenderTarget* mRenderTarget;
+
+ ///
+ /// ǷȾĻ
+ ///
+ bool mIsOnScreen;
+
+ ///
+ /// ü
+ ///
+ bool mIsCulling;
+
+ };
+
+ }
+}
+
+#endif
diff --git a/Source/Asura.Engine/Graphics/Canvas.cpp b/Source/Asura.Engine/Graphics/Canvas.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Canvas.cpp
diff --git a/Source/Asura.Engine/Graphics/Canvas.h b/Source/Asura.Engine/Graphics/Canvas.h
new file mode 100644
index 0000000..cd78194
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Canvas.h
@@ -0,0 +1,20 @@
+#ifndef __AE_Canvas_H__
+#define __AE_Canvas_H__
+
+#include "Component.h"
+#include "Texture.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class Canvas : public Texture, public Component
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/CanvasRenderer.cpp b/Source/Asura.Engine/Graphics/CanvasRenderer.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/CanvasRenderer.cpp
diff --git a/Source/Asura.Engine/Graphics/CanvasRenderer.h b/Source/Asura.Engine/Graphics/CanvasRenderer.h
new file mode 100644
index 0000000..ef188a5
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/CanvasRenderer.h
@@ -0,0 +1,30 @@
+#ifndef __AE_CANVAS_RENDERER_H__
+#define __AE_CANVAS_RENDERER_H__
+
+#include "Canvas.h"
+#include "Renderer.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class CanvasRenderer : public Renderer
+ {
+ public:
+
+ void SetCanvas(Canvas* canvas);
+ Canvas* GetCanvas();
+
+ void SetBlendMode();
+
+ private:
+
+ Canvas * mCanvas;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Color.cpp b/Source/Asura.Engine/Graphics/Color.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Color.cpp
diff --git a/Source/Asura.Engine/Graphics/Color.h b/Source/Asura.Engine/Graphics/Color.h
new file mode 100644
index 0000000..f172156
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Color.h
@@ -0,0 +1,30 @@
+#ifndef __AE_COLOR_H__
+#define __AE_COLOR_H__
+
+#include "Type.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// 32bitsɫ
+ ///
+ class Color
+ {
+ public:
+
+ Color(byte r, byte g, byte b, byte a);
+ ~Color();
+
+ private:
+
+ byte mR, mG, mB, mA;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Image.cpp b/Source/Asura.Engine/Graphics/Image.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Image.cpp
diff --git a/Source/Asura.Engine/Graphics/Image.h b/Source/Asura.Engine/Graphics/Image.h
new file mode 100644
index 0000000..5b27079
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Image.h
@@ -0,0 +1,119 @@
+#ifndef __AE_IMAGE_H__
+#define __AE_IMAGE_H__
+
+#include "Math/Vector2.h"
+#include "Manager.hpp"
+#include "Texture.h"
+#include "Color.h"
+#include "Factory.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class ImageFactory;
+
+ ///
+ /// ImageͼƬڴ󣬶ȡϷ󱣴ĽһImageڴ桢ԴֻᱣһݣҪ
+ /// imageêλãźתǶȣʹspriteһֻࡣ
+ ///
+ class Image final : public Texture, public Filesystem::Asset
+ {
+ public:
+
+ uint GetWidth();
+ uint GetHeight();
+
+ ///
+ /// ijһλõ
+ ///
+ Color GetPixel(uint x, uint y);
+
+ private:
+
+ friend class ImageFactory;
+
+ Image(Color* pixels, int width, int height);
+ ~Image();
+
+ ///
+ /// СΪλ
+ ///
+ uint mWidth, mHeight;
+ Color* mPixels;
+
+ ///
+ /// ID
+ ///
+ uint mID;
+
+ };
+
+ ///
+ ///
+ ///
+ class ImageManager : public Manager
+ {
+ public:
+
+ ///
+ /// ͨIDȡ·dz򴴽ͼƬString::Null
+ ///
+ Containers::String GetImagePath(uint ID);
+
+ ///
+ /// ͨID·ȡIDûҵ0
+ ///
+ uint GetImageID(const Containers::String& path);
+
+ Image* GetImage(const Containers::String& path);
+
+ Image* GetImage(const Containers::String& ID);
+
+ uint AddImage(const Containers::String& path, Image* image);
+
+ uint AddImage(Image* image);
+
+ bool RemoveImage(uint ID);
+
+ bool RemoveImage(Image* image);
+
+ private:
+
+ ///
+ /// еimage
+ ///
+ Containers::Map<uint, Image*> mImages;
+
+ ///
+ /// image·IDӳ䡣Դ.asrimageͨ·õimageԲеimageڴmapС
+ /// ɳ򴴽imageֻͨIDȡԳҪID
+ ///
+ Containers::StringMap<uint> mImageIDs;
+
+ };
+
+ ///
+ ///
+ ///
+ class ImageFactory : public Factory
+ {
+ public:
+
+ ///
+ /// image pixelйimage
+ ///
+ Image* ReadBuffer(Color* pixels, int width, int height);
+
+ ///
+ /// image externݲ
+ ///
+ Image* Decode();
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Material.cpp b/Source/Asura.Engine/Graphics/Material.cpp
new file mode 100644
index 0000000..eaf9742
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Material.cpp
@@ -0,0 +1,18 @@
+#include "Material.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+
+
+ //--------------------------------------------------------------------------------------------------------
+
+ int Material::l_SetColor(lua_State* L)
+ {
+
+ }
+
+ }
+}
diff --git a/Source/Asura.Engine/Graphics/Material.h b/Source/Asura.Engine/Graphics/Material.h
new file mode 100644
index 0000000..1cb3c88
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Material.h
@@ -0,0 +1,189 @@
+#ifndef __AE_MATERIAL_H__
+#define __AE_MATERIAL_H__
+
+#include "Containers/Vector.hpp"
+#include "Containers/String.h"
+#include "Math/Vector2.h"
+#include "Math/Vector3.h"
+#include "Math/Vector4.h"
+#include "Math/Matrix44.h"
+#include "Scripting/Luax.hpp"
+
+#include "Shader.h"
+#include "Texture.h"
+#include "Manager.hpp"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class MaterialFactory;
+
+ ///
+ /// ͨʵShaderеuniformsShader޸ĵı¶materialÿʿԲ컯ͬɫ
+ /// ͬͨļ(.mat)ʵ֣ڴáAsuraУShader޷ֱӦõȾ̶һ
+ /// ʹɲ޸shaderuniformsmaterial䵱shaderĴ
+ ///
+ class Material final : public Filesystem::Asset
+ {
+ public:
+
+ enum class UniformsType
+ {
+ None = 0,
+ Float,
+ Int,
+ Vector2,
+ Vector3,
+ Vector4,
+ Matrix44,
+ Texture,
+ Color,
+ };
+
+ struct UniformsInfo
+ {
+ uint ID; // uniformID
+ UniformsType type; // uniform
+ union
+ {
+ float f;
+ int i;
+ Math::Vector2 v2;
+ Math::Vector3 v3;
+ Math::Vector4 v4;
+ Math::Matrix44 m44;
+ Texture* tex;
+ Color col;
+ }value; // uniformֵ
+ };
+
+ void SetShader(Shader* shader);
+
+ // UniformڲУȾʱϴGPU
+
+ ///
+ /// uniformIDIDnamemapshader乲uniformֵʱͨIDѯuniform
+ /// shaderҵuniform locationlocationֵ
+ ///
+ static int GetUniformID(const Containers::String& name);
+
+ void SetTexture(uint ID, Texture* texture);
+ void SetVector2(uint ID, Math::Vector2* vector2);
+ void SetVector3(uint ID, Math::Vector3* vector3);
+ void SetVector4(uint ID, Math::Vector4* vector4);
+ void SetMatrix44(uint ID, Math::Matrix44* matrix44);
+ void SetFloat(uint ID, float value);
+ void SetInteger(uint ID, int value);
+ void SetColor(uint ID, Color color);
+
+ UniformsInfo GetUniformInfo(uint ID);
+ float GetUniformInfof(uint ID);
+ int GetUniformInfoi(uint ID);
+ Math::Vector2 GetUniformInfov2(uint ID);
+ Math::Vector3 GetUniformInfov3(uint ID);
+ Math::Vector4 GetUniformInfov4(uint ID);
+ Math::Matrix44 GetUniformInfom44(uint ID);
+ Texture* GetUniformInfotex(uint ID);
+ Color GetUniformInfocol(uint ID);
+
+ // ϴ
+
+ void SetVertexAttributes();
+
+ private:
+
+ friend class MaterialFactory;
+
+ Material();
+ Material(const Material& src);
+ ~Material();
+
+ ///
+ ///
+ ///
+ uint mID;
+
+ ///
+ ///
+ ///
+ Shader* mShader;
+
+ ///
+ /// UniformsֵӳIDֵ
+ ///
+ Containers::Map<int, UniformsInfo> mUniforms;
+
+ ///
+ /// ǷǹIJ
+ ///
+ bool mIsShared;
+
+ //----------------------------------------------------------------------------------------------------
+
+ LUAX_DECL_FACTORY(Material);
+
+ LUAX_DECL_METHOD(l_Clone);
+
+ LUAX_DECL_METHOD(l_SetShader);
+
+ LUAX_DECL_METHOD(l_SetTexture);
+ LUAX_DECL_METHOD(l_SetVector2);
+ LUAX_DECL_METHOD(l_SetVector3);
+ LUAX_DECL_METHOD(l_SetVector4);
+ LUAX_DECL_METHOD(l_SetMatrix44);
+ LUAX_DECL_METHOD(l_SetFloat);
+ LUAX_DECL_METHOD(l_SetInteger);
+ LUAX_DECL_METHOD(l_SetColor);
+
+ LUAX_DECL_METHOD(l_GetUniformInfo);
+ LUAX_DECL_METHOD(l_GetUniformInfof);
+ LUAX_DECL_METHOD(l_GetUniformInfoi);
+ LUAX_DECL_METHOD(l_GetUniformInfov2);
+ LUAX_DECL_METHOD(l_GetUniformInfov3);
+ LUAX_DECL_METHOD(l_GetUniformInfov4);
+ LUAX_DECL_METHOD(l_GetUniformInfom44);
+ LUAX_DECL_METHOD(l_GetUniformInfotex);
+ LUAX_DECL_METHOD(l_GetUniformInfocol);
+
+ LUAX_DECL_METHOD(l_SetVertexAttributes);
+
+ };
+
+ class MaterialManager : public Manager
+ {
+ public:
+
+ private:
+
+ ///
+ /// еimage
+ ///
+ Containers::Map<uint, Image*> mImages;
+
+ ///
+ /// image·IDӳ䡣Դ.asrimageͨ·õimageԲеimageڴmapС
+ /// ɳ򴴽imageֻͨIDȡԳҪID
+ ///
+ Containers::StringMap<uint> mImageIDs;
+
+ };
+
+ class MaterialFactory : public Factory
+ {
+ public:
+
+ ///
+ /// һmaterial
+ ///
+ Material* Clone(Material* src);
+
+ Material* Create();
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Mesh2D.cpp b/Source/Asura.Engine/Graphics/Mesh2D.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Mesh2D.cpp
diff --git a/Source/Asura.Engine/Graphics/Mesh2D.h b/Source/Asura.Engine/Graphics/Mesh2D.h
new file mode 100644
index 0000000..a113f4c
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Mesh2D.h
@@ -0,0 +1,20 @@
+#ifndef __AE_MESH2D_H__
+#define __AE_MESH2D_H__
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// 2D meshһЩUV
+ ///
+ class Mesh2D
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Mesh2DRenderer.cpp b/Source/Asura.Engine/Graphics/Mesh2DRenderer.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Mesh2DRenderer.cpp
diff --git a/Source/Asura.Engine/Graphics/Mesh2DRenderer.h b/Source/Asura.Engine/Graphics/Mesh2DRenderer.h
new file mode 100644
index 0000000..fcbfd2c
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Mesh2DRenderer.h
@@ -0,0 +1,19 @@
+#ifndef __AE_MESH2D_H__
+#define __AE_MESH2D_H__
+
+#include "FileSystem/Asset.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class Mesh2D : public Filesystem::Asset
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/OpenGL.cpp b/Source/Asura.Engine/Graphics/OpenGL.cpp
new file mode 100644
index 0000000..ec23f52
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/OpenGL.cpp
@@ -0,0 +1,11 @@
+#include "OpenGL.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+
+
+ }
+} \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/OpenGL.h b/Source/Asura.Engine/Graphics/OpenGL.h
new file mode 100644
index 0000000..f46497b
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/OpenGL.h
@@ -0,0 +1,17 @@
+#ifndef __AE_OPENGL_H__
+#define __AE_OPENGL_H__
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class OpenGL
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/ParticleSystem.cpp b/Source/Asura.Engine/Graphics/ParticleSystem.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/ParticleSystem.cpp
diff --git a/Source/Asura.Engine/Graphics/ParticleSystem.h b/Source/Asura.Engine/Graphics/ParticleSystem.h
new file mode 100644
index 0000000..078427a
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/ParticleSystem.h
@@ -0,0 +1,22 @@
+#ifndef __AE_PARTICLESYSTEM_H__
+#define __AE_PARTICLESYSTEM_H__
+
+#include "Component.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// ϵͳ
+ ///
+ class ParticleSystem final : public Component
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Prefab.cpp b/Source/Asura.Engine/Graphics/Prefab.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Prefab.cpp
diff --git a/Source/Asura.Engine/Graphics/Prefab.h b/Source/Asura.Engine/Graphics/Prefab.h
new file mode 100644
index 0000000..82a8da2
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Prefab.h
@@ -0,0 +1,30 @@
+#ifndef __AE_PREFAB_H__
+#define __AE_PREFAB_H__
+
+#include "Manager.hpp"
+#include "FileSystem/Asset.h"
+
+namespace AsuraEngine
+{
+
+ ///
+ /// PrefabGameObject
+ ///
+ class Prefab : public Filesystem::Asset
+ {
+
+ };
+
+ class PrefabManager : public Manager
+ {
+
+ };
+
+ class PrefabFactory
+ {
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Renderer.cpp b/Source/Asura.Engine/Graphics/Renderer.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Renderer.cpp
diff --git a/Source/Asura.Engine/Graphics/Renderer.h b/Source/Asura.Engine/Graphics/Renderer.h
new file mode 100644
index 0000000..c3677a7
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Renderer.h
@@ -0,0 +1,39 @@
+#ifndef __AE_RENDERER_H__
+#define __AE_RENDERER_H__
+
+#include "Component.h"
+#include "Material.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// ࣬ȾRendererദÿRenderer߱һʡ
+ ///
+ class Renderer : public Component
+ {
+ public:
+
+ ///
+ /// һô˷ͻ´shared materialô˷ζҪmaterialý޸ģʱʹõIJ
+ /// shared materialҪһݣӰrenderer
+ ///
+ Material* GetMaterial();
+
+ ///
+ /// Ⱦص
+ ///
+ virtual void OnRender() = 0;
+
+ protected:
+
+ Material* mMaterial;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Shader.cpp b/Source/Asura.Engine/Graphics/Shader.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Shader.cpp
diff --git a/Source/Asura.Engine/Graphics/Shader.h b/Source/Asura.Engine/Graphics/Shader.h
new file mode 100644
index 0000000..c3c67ad
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Shader.h
@@ -0,0 +1,67 @@
+#ifndef __AE_SHADER_H__
+#define __AE_SHADER_H__
+
+#include "luax/luax.h"
+
+#include "FileSystem/Asset.h"
+#include "Containers/Map.h"
+#include "Containers/StringMap.hpp"
+#include "Object.h"
+#include "Color.h"
+#include "Manager.hpp"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class Material;
+
+ ///
+ /// һshaderһڲʼ乲ijShaderuniformsͶݣֻuniforms location
+ ///
+ class Shader final : public Filesystem::Asset
+ {
+ public:
+
+ Shader();
+ ~Shader();
+
+ private:
+
+ friend class Material;
+
+ ///
+ /// shaderuniformsIDӳ䡣
+ ///
+ static Containers::StringMap<int> sUniformsID;
+
+ ///
+ /// uniformID
+ ///
+ static int GetUniformID(const Containers::String& name);
+
+ ///
+ /// ñ
+ /// vec2 Asura_Time xֵΪ뵱ǰʼʱ䣬yֵΪһ֡ʱ
+ /// vec2 Asura_RenderTargetSize RTĴСΪλ
+ /// Texture Asura_MainTexture
+ ///
+ void SetBuiltInUniforms();
+
+ ///
+ /// ӳuniforms IDlocation
+ ///
+ Containers::Map<int, int> mLocations;
+
+ };
+
+ class ShaderManager final : public Manager
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/ShapeRenderer.cpp b/Source/Asura.Engine/Graphics/ShapeRenderer.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/ShapeRenderer.cpp
diff --git a/Source/Asura.Engine/Graphics/ShapeRenderer.h b/Source/Asura.Engine/Graphics/ShapeRenderer.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/ShapeRenderer.h
diff --git a/Source/Asura.Engine/Graphics/Sprite.cpp b/Source/Asura.Engine/Graphics/Sprite.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Sprite.cpp
diff --git a/Source/Asura.Engine/Graphics/Sprite.h b/Source/Asura.Engine/Graphics/Sprite.h
new file mode 100644
index 0000000..b621f1b
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Sprite.h
@@ -0,0 +1,71 @@
+#ifndef __AE_SPRITE_H__
+#define __AE_SPRITE_H__
+
+#include "Math/Vector2.h"
+#include "Transform.h"
+#include "Component.h"
+#include "Image.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// SpriteǿimageĴimagesprite乲ݣsprite𻯴imageԣתŵȡ
+ ///
+ class Sprite final : public Filesystem::Asset
+ {
+ public:
+
+ enum Type
+ {
+
+ };
+
+ ///
+ /// 뷽ʽ
+ ///
+ enum Align
+ {
+
+ };
+
+ struct SpriteDef
+ {
+ Image* image;
+ Align align;
+ Math::Vector2 anchor;
+ Math::Vector2 size;
+ };
+
+ Sprite(SpriteDef definition);
+ ~Sprite();
+
+ private:
+
+ ///
+ /// ê
+ ///
+ Math::Vector2 mAnchor;
+
+ ///
+ /// С
+ ///
+ Math::Vector2 mSize;
+
+ ///
+ /// 󶨵image
+ ///
+ Image* mImage;
+
+ //----------------------------------------------------------------------------------------------------
+
+
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/SpriteBatch.cpp b/Source/Asura.Engine/Graphics/SpriteBatch.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/SpriteBatch.cpp
diff --git a/Source/Asura.Engine/Graphics/SpriteBatch.h b/Source/Asura.Engine/Graphics/SpriteBatch.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/SpriteBatch.h
diff --git a/Source/Asura.Engine/Graphics/SpriteRenderer.cpp b/Source/Asura.Engine/Graphics/SpriteRenderer.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/SpriteRenderer.cpp
diff --git a/Source/Asura.Engine/Graphics/SpriteRenderer.h b/Source/Asura.Engine/Graphics/SpriteRenderer.h
new file mode 100644
index 0000000..bd81509
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/SpriteRenderer.h
@@ -0,0 +1,32 @@
+#ifndef __AE_SPRITE_RENDERER_H__
+#define __AE_SPRITE_RENDERER_H__
+
+#include "Renderer.h"
+#include "Sprite.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ class SpriteRenderer final : public Renderer
+ {
+ public:
+
+ void SetSprite(Sprite* sprite);
+
+ void OnRender() override;
+
+ private:
+
+ ///
+ /// Ⱦsprite
+ ///
+ Sprite* mSprite;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Graphics/Texture.cpp b/Source/Asura.Engine/Graphics/Texture.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Texture.cpp
diff --git a/Source/Asura.Engine/Graphics/Texture.h b/Source/Asura.Engine/Graphics/Texture.h
new file mode 100644
index 0000000..8195fc9
--- /dev/null
+++ b/Source/Asura.Engine/Graphics/Texture.h
@@ -0,0 +1,22 @@
+#ifndef __AE_TEXTURE_H__
+#define __AE_TEXTURE_H__
+
+#include "Object.h"
+
+namespace AsuraEngine
+{
+ namespace Graphics
+ {
+
+ ///
+ /// 2Dࣩ2d meshrender targetбʹ
+ ///
+ class Texture : public Object
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Input/Keyboard.cpp b/Source/Asura.Engine/Input/Keyboard.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Input/Keyboard.cpp
diff --git a/Source/Asura.Engine/Input/Keyboard.h b/Source/Asura.Engine/Input/Keyboard.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Input/Keyboard.h
diff --git a/Source/Asura.Engine/Layer.cpp b/Source/Asura.Engine/Layer.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Layer.cpp
diff --git a/Source/Asura.Engine/Layer.h b/Source/Asura.Engine/Layer.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Layer.h
diff --git a/Source/Asura.Engine/Manager.hpp b/Source/Asura.Engine/Manager.hpp
new file mode 100644
index 0000000..5a94889
--- /dev/null
+++ b/Source/Asura.Engine/Manager.hpp
@@ -0,0 +1,14 @@
+#ifndef __AE_MANAGER_H__
+#define __AE_MANAGER_H__
+
+namespace AsuraEngine
+{
+
+ class Manager
+ {
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Math/Curve.cpp b/Source/Asura.Engine/Math/Curve.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Curve.cpp
diff --git a/Source/Asura.Engine/Math/Curve.h b/Source/Asura.Engine/Math/Curve.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Curve.h
diff --git a/Source/Asura.Engine/Math/Functions.cpp b/Source/Asura.Engine/Math/Functions.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Functions.cpp
diff --git a/Source/Asura.Engine/Math/Functions.h b/Source/Asura.Engine/Math/Functions.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Functions.h
diff --git a/Source/Asura.Engine/Math/Matrix44.cpp b/Source/Asura.Engine/Math/Matrix44.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Matrix44.cpp
diff --git a/Source/Asura.Engine/Math/Matrix44.h b/Source/Asura.Engine/Math/Matrix44.h
new file mode 100644
index 0000000..5bc44e7
--- /dev/null
+++ b/Source/Asura.Engine/Math/Matrix44.h
@@ -0,0 +1,24 @@
+#ifndef __AE_MATRIX44_H__
+#define __AE_MATRIX44_H__
+
+namespace AsuraEngine
+{
+ namespace Math
+ {
+
+ ///
+ /// 4x4
+ ///
+ class Matrix44
+ {
+ public:
+
+ private:
+
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Math/RangedValue.cpp b/Source/Asura.Engine/Math/RangedValue.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/RangedValue.cpp
diff --git a/Source/Asura.Engine/Math/RangedValue.h b/Source/Asura.Engine/Math/RangedValue.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/RangedValue.h
diff --git a/Source/Asura.Engine/Math/Vector2.cpp b/Source/Asura.Engine/Math/Vector2.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Vector2.cpp
diff --git a/Source/Asura.Engine/Math/Vector2.h b/Source/Asura.Engine/Math/Vector2.h
new file mode 100644
index 0000000..d5f8739
--- /dev/null
+++ b/Source/Asura.Engine/Math/Vector2.h
@@ -0,0 +1,17 @@
+#ifndef __AE_VECTOR2_H__
+#define __AE_VECTOR2_H__
+
+namespace AsuraEngine
+{
+ namespace Math
+ {
+
+ class Vector2
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Math/Vector3.cpp b/Source/Asura.Engine/Math/Vector3.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Vector3.cpp
diff --git a/Source/Asura.Engine/Math/Vector3.h b/Source/Asura.Engine/Math/Vector3.h
new file mode 100644
index 0000000..14fdd88
--- /dev/null
+++ b/Source/Asura.Engine/Math/Vector3.h
@@ -0,0 +1,17 @@
+#ifndef __AE_VECTOR3_H__
+#define __AE_VECTOR3_H__
+
+namespace AsuraEngine
+{
+ namespace Math
+ {
+
+ class Vector3
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Math/Vector4.cpp b/Source/Asura.Engine/Math/Vector4.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Math/Vector4.cpp
diff --git a/Source/Asura.Engine/Math/Vector4.h b/Source/Asura.Engine/Math/Vector4.h
new file mode 100644
index 0000000..a6e8b38
--- /dev/null
+++ b/Source/Asura.Engine/Math/Vector4.h
@@ -0,0 +1,17 @@
+#ifndef __AE_VECTOR4_H__
+#define __AE_VECTOR4_H__
+
+namespace AsuraEngine
+{
+ namespace Math
+ {
+
+ class Vector4
+ {
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Object.cpp b/Source/Asura.Engine/Object.cpp
new file mode 100644
index 0000000..587dca7
--- /dev/null
+++ b/Source/Asura.Engine/Object.cpp
@@ -0,0 +1,23 @@
+#include "Object.h"
+
+namespace AsuraEngine
+{
+
+ Object::Object()
+ : mRC(0)
+ {
+
+ }
+
+ void Object::Retain(Object* obj)
+ {
+ ++obj->mRC;
+ }
+
+ void Object::Release(Object* obj)
+ {
+ if (--obj->mRC == 0)
+ delete obj;
+ }
+
+} \ No newline at end of file
diff --git a/Source/Asura.Engine/Object.h b/Source/Asura.Engine/Object.h
new file mode 100644
index 0000000..3dace26
--- /dev/null
+++ b/Source/Asura.Engine/Object.h
@@ -0,0 +1,32 @@
+#ifndef __AE_OBJECT_H__
+#define __AE_OBJECT_H__
+
+#include "Type.h"
+
+namespace AsuraEngine
+{
+
+ ///
+ ///
+ ///
+ class Object
+ {
+ public:
+
+ Object();
+
+ virtual ~Object();
+
+ static void Retain(Object* obj);
+
+ static void Release(Object* obj);
+
+ private:
+
+ int mRC; //
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/ObjectPool.cpp b/Source/Asura.Engine/ObjectPool.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/ObjectPool.cpp
diff --git a/Source/Asura.Engine/ObjectPool.h b/Source/Asura.Engine/ObjectPool.h
new file mode 100644
index 0000000..bf97858
--- /dev/null
+++ b/Source/Asura.Engine/ObjectPool.h
@@ -0,0 +1,14 @@
+#ifndef __AE_OBJECT_POOL_H__
+#define __AE_OBJECT_POOL_H__
+
+namespace AsuraEngine
+{
+
+ class ObjectPool
+ {
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Physics/World.h b/Source/Asura.Engine/Physics/World.h
new file mode 100644
index 0000000..7000351
--- /dev/null
+++ b/Source/Asura.Engine/Physics/World.h
@@ -0,0 +1,14 @@
+#ifndef __AE_WORLD_H__
+#define __AE_WORLD_H__
+
+namespace AsuraEngine
+{
+ namespace Physics
+ {
+
+
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Profiler/Stats.cpp b/Source/Asura.Engine/Profiler/Stats.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Profiler/Stats.cpp
diff --git a/Source/Asura.Engine/Profiler/Stats.h b/Source/Asura.Engine/Profiler/Stats.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Profiler/Stats.h
diff --git a/Source/Asura.Engine/Scene.cpp b/Source/Asura.Engine/Scene.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Scene.cpp
diff --git a/Source/Asura.Engine/Scene.h b/Source/Asura.Engine/Scene.h
new file mode 100644
index 0000000..742d872
--- /dev/null
+++ b/Source/Asura.Engine/Scene.h
@@ -0,0 +1,28 @@
+#ifndef __AE_SCENE_H__
+#define __AE_SCENE_H__
+
+#include "FileSystem/Asset.h"
+#include "Containers/Vector.hpp"
+#include "GameObject.h"
+
+namespace AsuraEngine
+{
+
+ ///
+ /// Ϸ
+ ///
+ class Scene final : public Filesystem::Asset
+ {
+ public:
+
+ //
+
+ private:
+
+ Containers::Vector<GameObject*> mGameObjects;
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Scripting/Luax.hpp b/Source/Asura.Engine/Scripting/Luax.hpp
new file mode 100644
index 0000000..b371166
--- /dev/null
+++ b/Source/Asura.Engine/Scripting/Luax.hpp
@@ -0,0 +1,8 @@
+#ifndef __AE_LUAX_H__
+#define __AE_LUAX_H__
+
+#include "Lua51/lua.h"
+#include "Lua51/lauxlib.h"
+#include "Luax/luax.h"
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Time/Timer.cpp b/Source/Asura.Engine/Time/Timer.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Time/Timer.cpp
diff --git a/Source/Asura.Engine/Time/Timer.h b/Source/Asura.Engine/Time/Timer.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Time/Timer.h
diff --git a/Source/Asura.Engine/Transform.cpp b/Source/Asura.Engine/Transform.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/Asura.Engine/Transform.cpp
diff --git a/Source/Asura.Engine/Transform.h b/Source/Asura.Engine/Transform.h
new file mode 100644
index 0000000..cca7575
--- /dev/null
+++ b/Source/Asura.Engine/Transform.h
@@ -0,0 +1,24 @@
+#ifndef __AE_TRANSFORM_H__
+#define __AE_TRANSFORM_H__
+
+#include "Object.h"
+#include "Math/Vector2.h"
+
+namespace AsuraEngine
+{
+
+ ///
+ /// TransformΪԣΪ
+ ///
+ class Transform final : public Object
+ {
+ private:
+ Math::Vector2 position;
+ Math::Vector2 rotation;
+ Math::Vector2 scale;
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/Source/Asura.Engine/Type.h b/Source/Asura.Engine/Type.h
new file mode 100644
index 0000000..2a2bc70
--- /dev/null
+++ b/Source/Asura.Engine/Type.h
@@ -0,0 +1,24 @@
+#ifndef __AE_TYPE_H__
+#define __AE_TYPE_H__
+
+#include <stdint.h>
+
+namespace AsuraEngine
+{
+
+ typedef int8_t int8;
+ typedef uint8_t uint8;
+ typedef uint8 byte;
+ typedef int16_t int16;
+ typedef uint16_t uint16;
+ typedef int32_t int32;
+ typedef uint32_t uint32;
+ typedef int64_t int64;
+ typedef uint64_t uint64;
+
+ typedef uint32_t uint;
+ typedef int32_t sint;
+
+}
+
+#endif \ No newline at end of file