diff --git a/.editorconfig b/.editorconfig
index 552be4bf..03bd2fa1 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -11,7 +11,7 @@ insert_final_newline = true
# Matches multiple files with brace expansion notation
# Set default charset
[*.{h,hpp,cpp}]
-charset = gb2312
+charset = utf8
# 4 space indentation
indent_style = space
diff --git a/Doxyfile b/Doxyfile
index 8245e52a..50f00dd5 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -32,7 +32,7 @@ SHOW_NAMESPACES = YES
#---------------------------------------------------------------------------
INPUT = src/
-INPUT_ENCODING = gb2312
+INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
diff --git a/projects/kiwano-audio/kiwano-audio.vcxproj b/projects/kiwano-audio/kiwano-audio.vcxproj
index 7836bc77..54a0883a 100644
--- a/projects/kiwano-audio/kiwano-audio.vcxproj
+++ b/projects/kiwano-audio/kiwano-audio.vcxproj
@@ -74,6 +74,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -92,6 +93,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano-imgui/kiwano-imgui.vcxproj b/projects/kiwano-imgui/kiwano-imgui.vcxproj
index 55833de5..2f1b8d03 100644
--- a/projects/kiwano-imgui/kiwano-imgui.vcxproj
+++ b/projects/kiwano-imgui/kiwano-imgui.vcxproj
@@ -73,6 +73,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -91,6 +92,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano-network/kiwano-network.vcxproj b/projects/kiwano-network/kiwano-network.vcxproj
index 6883d0be..4f6fbd77 100644
--- a/projects/kiwano-network/kiwano-network.vcxproj
+++ b/projects/kiwano-network/kiwano-network.vcxproj
@@ -69,6 +69,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -87,6 +88,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano-physics/kiwano-physics.vcxproj b/projects/kiwano-physics/kiwano-physics.vcxproj
index 8b9bb3d4..a7c96cec 100644
--- a/projects/kiwano-physics/kiwano-physics.vcxproj
+++ b/projects/kiwano-physics/kiwano-physics.vcxproj
@@ -79,6 +79,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
@@ -97,6 +98,7 @@
true
../../src;
false
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano/kiwano.vcxproj b/projects/kiwano/kiwano.vcxproj
index 86570ca7..28f90319 100644
--- a/projects/kiwano/kiwano.vcxproj
+++ b/projects/kiwano/kiwano.vcxproj
@@ -19,6 +19,7 @@
+
@@ -30,7 +31,7 @@
-
+
@@ -62,6 +63,7 @@
+
@@ -71,12 +73,15 @@
+
+
+
-
+
@@ -84,6 +89,7 @@
+
@@ -103,7 +109,7 @@
-
+
@@ -118,6 +124,7 @@
+
@@ -139,18 +146,22 @@
+
+
+
-
+
+
@@ -212,6 +223,7 @@
true
false
../../src;
+ /utf-8 %(AdditionalOptions)
Windows
@@ -230,6 +242,7 @@
true
false
../../src;
+ /utf-8 %(AdditionalOptions)
Windows
diff --git a/projects/kiwano/kiwano.vcxproj.filters b/projects/kiwano/kiwano.vcxproj.filters
index 4500b9b2..9e3b3736 100644
--- a/projects/kiwano/kiwano.vcxproj.filters
+++ b/projects/kiwano/kiwano.vcxproj.filters
@@ -36,9 +36,6 @@
2d
-
- 2d
-
2d
@@ -216,9 +213,6 @@
render
-
- render
-
render
@@ -285,14 +279,35 @@
math
+
+ render
+
+
+ render\DirectX
+
+
+ render\DirectX
+
+
+ render\DirectX
+
+
+ platform\win32
+
+
+ core
+
+
+ 2d
+
+
+ render
+
2d
-
- 2d
-
2d
@@ -440,9 +455,6 @@
render
-
- render
-
render
@@ -482,5 +494,26 @@
render
+
+ render
+
+
+ render\DirectX
+
+
+ render\DirectX
+
+
+ render\DirectX
+
+
+ core
+
+
+ 2d
+
+
+ render
+
\ No newline at end of file
diff --git a/src/3rd-party/OuterC/oc/json/json_parser.h b/src/3rd-party/OuterC/oc/json/json_parser.h
index 706233e9..0732f517 100644
--- a/src/3rd-party/OuterC/oc/json/json_parser.h
+++ b/src/3rd-party/OuterC/oc/json/json_parser.h
@@ -93,11 +93,11 @@ struct json_lexer
break;
case 't':
- return scan_literal(L"true", token_type::LITERAL_TRUE);
+ return scan_literal("true", token_type::LITERAL_TRUE);
case 'f':
- return scan_literal(L"false", token_type::LITERAL_FALSE);
+ return scan_literal("false", token_type::LITERAL_FALSE);
case 'n':
- return scan_literal(L"null", token_type::LITERAL_NULL);
+ return scan_literal("null", token_type::LITERAL_NULL);
case '\"':
return scan_string();
diff --git a/src/3rd-party/OuterC/oc/vector.h b/src/3rd-party/OuterC/oc/vector.h
index 7f69080e..d73b16e0 100644
--- a/src/3rd-party/OuterC/oc/vector.h
+++ b/src/3rd-party/OuterC/oc/vector.h
@@ -18,6 +18,7 @@ class vector
public:
using value_type = _Ty;
using size_type = size_t;
+ using difference_type = ptrdiff_t;
using reference = value_type&;
using const_reference = const value_type&;
using iterator = value_type*;
@@ -70,6 +71,7 @@ public:
inline bool empty() const { return size_ == 0; }
inline size_type size() const { return size_; }
inline size_type size_in_bytes() const { return size_ * ((size_type)sizeof(_Ty)); }
+ inline size_type max_size() const { return std::numeric_limits::max(); }
inline size_type capacity() const { return capacity_; }
inline reference operator[](size_type off) { if (off < 0 || off >= size_) throw std::out_of_range("vector subscript out of range"); return data_[off]; }
inline const_reference operator[](size_type off) const { if (off < 0 || off >= size_) throw std::out_of_range("vector subscript out of range"); return data_[off]; }
diff --git a/src/3rd-party/nlohmann/json.hpp b/src/3rd-party/nlohmann/json.hpp
new file mode 100644
index 00000000..06da8153
--- /dev/null
+++ b/src/3rd-party/nlohmann/json.hpp
@@ -0,0 +1,22875 @@
+/*
+ __ _____ _____ _____
+ __| | __| | | | JSON for Modern C++
+| | |__ | | | | | | version 3.7.3
+|_____|_____|_____|_|___| https://github.com/nlohmann/json
+
+Licensed under the MIT License .
+SPDX-License-Identifier: MIT
+Copyright (c) 2013-2019 Niels Lohmann .
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef INCLUDE_NLOHMANN_JSON_HPP_
+#define INCLUDE_NLOHMANN_JSON_HPP_
+
+#define NLOHMANN_JSON_VERSION_MAJOR 3
+#define NLOHMANN_JSON_VERSION_MINOR 7
+#define NLOHMANN_JSON_VERSION_PATCH 3
+
+#include // all_of, find, for_each
+#include // assert
+#include // and, not, or
+#include // nullptr_t, ptrdiff_t, size_t
+#include // hash, less
+#include // initializer_list
+#include // istream, ostream
+#include // random_access_iterator_tag
+#include // unique_ptr
+#include // accumulate
+#include // string, stoi, to_string
+#include // declval, forward, move, pair, swap
+#include // vector
+
+// #include
+
+
+#include
+
+// #include
+
+
+#include // transform
+#include // array
+#include // and, not
+#include // forward_list
+#include // inserter, front_inserter, end
+#include