From 91e589d1678a8187c307e09b98b67ec4133092ff Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 19 Jan 2019 01:44:05 +0800 Subject: =?UTF-8?q?*=E6=B8=B8=E6=88=8F=E6=A1=86=E6=9E=B6=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/Asura.Engine/Containers/Map.cpp | 0 Source/Asura.Engine/Containers/Map.h | 17 ++++++ Source/Asura.Engine/Containers/Stack.cpp | 0 Source/Asura.Engine/Containers/Stack.h | 0 Source/Asura.Engine/Containers/String.cpp | 0 Source/Asura.Engine/Containers/String.h | 78 +++++++++++++++++++++++++ Source/Asura.Engine/Containers/StringMap.cpp | 0 Source/Asura.Engine/Containers/StringMap.hpp | 32 ++++++++++ Source/Asura.Engine/Containers/UnorderedMap.hpp | 0 Source/Asura.Engine/Containers/Vector.hpp | 16 +++++ 10 files changed, 143 insertions(+) create mode 100644 Source/Asura.Engine/Containers/Map.cpp create mode 100644 Source/Asura.Engine/Containers/Map.h create mode 100644 Source/Asura.Engine/Containers/Stack.cpp create mode 100644 Source/Asura.Engine/Containers/Stack.h create mode 100644 Source/Asura.Engine/Containers/String.cpp create mode 100644 Source/Asura.Engine/Containers/String.h create mode 100644 Source/Asura.Engine/Containers/StringMap.cpp create mode 100644 Source/Asura.Engine/Containers/StringMap.hpp create mode 100644 Source/Asura.Engine/Containers/UnorderedMap.hpp create mode 100644 Source/Asura.Engine/Containers/Vector.hpp (limited to 'Source/Asura.Engine/Containers') diff --git a/Source/Asura.Engine/Containers/Map.cpp b/Source/Asura.Engine/Containers/Map.cpp new file mode 100644 index 0000000..e69de29 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 + +namespace AsuraEngine +{ + namespace Containers + { + + template + using Map = std::map; + + } +} + +#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 diff --git a/Source/Asura.Engine/Containers/Stack.h b/Source/Asura.Engine/Containers/Stack.h new file mode 100644 index 0000000..e69de29 diff --git a/Source/Asura.Engine/Containers/String.cpp b/Source/Asura.Engine/Containers/String.cpp new file mode 100644 index 0000000..e69de29 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 + +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 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 uniforms、statemathine state parameter的ID。 + /// + template + 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 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 + +namespace AsuraEngine +{ + namespace Containers + { + template + using Vector = std::vector; + + } +} + +#endif \ No newline at end of file -- cgit v1.1-26-g67d0