summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/Asura.Editor/Asura.Editor.vcxproj34
-rw-r--r--Build/Asura.Editor/Asura.Editor.vcxproj.filters99
-rw-r--r--Build/Asura.sln33
-rw-r--r--Source/Asura.Editor/main.cpp10
-rw-r--r--bin/win64/02-luax.exebin0 -> 529408 bytes
-rw-r--r--build/3rd-party/tinyxml2/tinyxml2.vcxproj122
-rw-r--r--build/3rd-party/tinyxml2/tinyxml2.vcxproj.filters17
-rw-r--r--build/3rd-party/tinyxml2/tinyxml2.vcxproj.user4
-rw-r--r--build/Asura.Editor/Asura.Editor.vcxproj34
-rw-r--r--build/Asura.Editor/Asura.Editor.vcxproj.filters99
-rw-r--r--build/Asura.sln33
-rw-r--r--build/libs/asura-lib-core/asura-lib-core.vcxproj5
-rw-r--r--build/libs/asura-lib-core/asura-lib-core.vcxproj.filters9
-rw-r--r--build/libs/asura-lib-json/asura-lib-json.vcxproj2
-rw-r--r--build/libs/asura-lib-log/asura-lib-log.vcxproj122
-rw-r--r--build/libs/asura-lib-log/asura-lib-log.vcxproj.filters17
-rw-r--r--build/libs/asura-lib-log/asura-lib-log.vcxproj.user4
-rw-r--r--build/libs/asura-lib-utils/asura-lib-utils.vcxproj1
-rw-r--r--build/libs/asura-lib-utils/asura-lib-utils.vcxproj.filters5
-rw-r--r--build/libs/asura-lib-xml/asura-lib-xml.vcxproj122
-rw-r--r--build/libs/asura-lib-xml/asura-lib-xml.vcxproj.filters17
-rw-r--r--build/libs/asura-lib-xml/asura-lib-xml.vcxproj.user4
-rw-r--r--build/tests/02-luax/02-luax.vcxproj24
-rw-r--r--build/tests/02-luax/02-luax.vcxproj.filters19
-rw-r--r--build/包含目录.txt4
-rw-r--r--source/3rd-party/Luax/luax_class.hpp25
-rw-r--r--source/3rd-party/Luax/luax_class.inl8
-rw-r--r--source/3rd-party/Luax/luax_config.h2
-rw-r--r--source/3rd-party/Luax/luax_enum.cpp2
-rw-r--r--source/3rd-party/Luax/luax_enum.h2
-rw-r--r--source/3rd-party/Luax/luax_state.cpp122
-rw-r--r--source/3rd-party/Luax/luax_state.h33
-rw-r--r--source/3rd-party/Luax/luax_state.inl31
-rw-r--r--source/Asura.Editor/dui_module.cpp (renamed from source/Asura.Editor/widgets/rbutton.cpp)0
-rw-r--r--source/Asura.Editor/dui_module.h6
-rw-r--r--source/Asura.Editor/editor.cpp1
-rw-r--r--source/Asura.Editor/editor.h17
-rw-r--r--source/Asura.Editor/layout/horizontal_layout.cpp (renamed from source/Asura.Editor/widgets/rbutton.h)0
-rw-r--r--source/Asura.Editor/layout/horizontal_layout.h (renamed from source/libs/asura-lib-utils/scripting/portable.inl)0
-rw-r--r--source/Asura.Editor/layout/vertical_layout.cpp0
-rw-r--r--source/Asura.Editor/layout/vertical_layout.h0
-rw-r--r--source/Asura.Editor/main.cpp10
-rw-r--r--source/Asura.Editor/widgets/progress.cpp0
-rw-r--r--source/Asura.Editor/widgets/progress.h0
-rw-r--r--source/Asura.Editor/widgets/radio_button.cpp0
-rw-r--r--source/Asura.Editor/widgets/radio_button.h0
-rw-r--r--source/Asura.Editor/widgets/widget.h4
-rw-r--r--source/libs/asura-lib-core/application.cpp33
-rw-r--r--source/libs/asura-lib-core/application.h14
-rw-r--r--source/libs/asura-lib-core/asura.h15
-rw-r--r--source/libs/asura-lib-core/client/client.h15
-rw-r--r--source/libs/asura-lib-core/client/sdl/sdl_thread.cpp0
-rw-r--r--source/libs/asura-lib-core/client/sdl/sdl_thread.h0
-rw-r--r--source/libs/asura-lib-core/client/sdl/sdl_window.h17
-rw-r--r--source/libs/asura-lib-core/config.h4
-rw-r--r--source/libs/asura-lib-core/core_config.h8
-rw-r--r--source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp56
-rw-r--r--source/libs/asura-lib-core/graphics/canvas.h14
-rw-r--r--source/libs/asura-lib-core/graphics/color.h5
-rw-r--r--source/libs/asura-lib-core/graphics/gl.cpp2
-rw-r--r--source/libs/asura-lib-core/graphics/image_data.cpp3
-rw-r--r--source/libs/asura-lib-core/graphics/image_data.h24
-rw-r--r--source/libs/asura-lib-core/graphics/image_decoder.h4
-rw-r--r--source/libs/asura-lib-utils/filesystem/binding/data_buffer.binding.cpp100
-rw-r--r--source/libs/asura-lib-utils/filesystem/data_buffer.cpp54
-rw-r--r--source/libs/asura-lib-utils/filesystem/data_buffer.h30
-rw-r--r--source/libs/asura-lib-utils/filesystem/resource_manager.h4
-rw-r--r--source/libs/asura-lib-utils/scripting/luax.hpp13
-rw-r--r--source/libs/asura-lib-utils/scripting/portable.hpp7
-rw-r--r--source/libs/asura-lib-utils/type.h3
-rw-r--r--source/libs/asura-lib-utils/utils_module.cpp2
-rw-r--r--source/libs/asura-lib-utils/utils_module.h2
-rw-r--r--source/tests/02-luax/main.cpp65
73 files changed, 1315 insertions, 282 deletions
diff --git a/Build/Asura.Editor/Asura.Editor.vcxproj b/Build/Asura.Editor/Asura.Editor.vcxproj
index c16be0a..cc38c61 100644
--- a/Build/Asura.Editor/Asura.Editor.vcxproj
+++ b/Build/Asura.Editor/Asura.Editor.vcxproj
@@ -76,6 +76,7 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -108,6 +109,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -115,6 +117,38 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\source\Asura.Editor\dui_module.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\editor.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\layout\horizontal_layout.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\layout\vertical_layout.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\button.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\checkbox.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hslider.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hvslider.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\label.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\panel.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\progress.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\radio_button.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\textbox.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\vslider.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Editor\dui_module.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\editor.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\layout\horizontal_layout.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\layout\vertical_layout.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\button.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\checkbox.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hslider.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hvslider.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\label.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\panel.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\progress.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\radio_button.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\textbox.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\vslider.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\widget.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/Build/Asura.Editor/Asura.Editor.vcxproj.filters b/Build/Asura.Editor/Asura.Editor.vcxproj.filters
index 3c6f4fd..53931f0 100644
--- a/Build/Asura.Editor/Asura.Editor.vcxproj.filters
+++ b/Build/Asura.Editor/Asura.Editor.vcxproj.filters
@@ -1,17 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
- <Filter Include="源文件">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ <Filter Include="widgets">
+ <UniqueIdentifier>{a4345092-d09c-424c-8d7c-c076914fb6a2}</UniqueIdentifier>
</Filter>
- <Filter Include="头文件">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
+ <Filter Include="layout">
+ <UniqueIdentifier>{7654ef3d-54c4-490f-bb24-e6a67bd63e1e}</UniqueIdentifier>
</Filter>
- <Filter Include="资源文件">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ <Filter Include="core">
+ <UniqueIdentifier>{f67906bd-4f7c-4ac6-bca1-019617435a8b}</UniqueIdentifier>
</Filter>
</ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\button.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\checkbox.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hslider.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hvslider.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\label.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\panel.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\textbox.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\vslider.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\progress.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\layout\horizontal_layout.cpp">
+ <Filter>layout</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\layout\vertical_layout.cpp">
+ <Filter>layout</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\radio_button.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\editor.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\dui_module.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\button.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\checkbox.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hslider.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hvslider.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\label.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\panel.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\textbox.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\vslider.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\widget.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\progress.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\layout\horizontal_layout.h">
+ <Filter>layout</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\layout\vertical_layout.h">
+ <Filter>layout</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\radio_button.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\editor.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\dui_module.h" />
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/Build/Asura.sln b/Build/Asura.sln
index f7ee2f4..fa2e5ca 100644
--- a/Build/Asura.sln
+++ b/Build/Asura.sln
@@ -75,6 +75,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Asura", "Asura\Asura.vcxpro
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-lib-json", "libs\asura-lib-json\asura-lib-json.vcxproj", "{1B83A353-9694-42E0-997E-79E150E1C2E5}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-lib-xml", "libs\asura-lib-xml\asura-lib-xml.vcxproj", "{AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tinyxml2", "3rd-party\tinyxml2\tinyxml2.vcxproj", "{883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-lib-log", "libs\asura-lib-log\asura-lib-log.vcxproj", "{73B0F8AB-EF5A-412A-9E34-0FD2574766B7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -347,6 +353,30 @@ Global
{1B83A353-9694-42E0-997E-79E150E1C2E5}.Release|x64.Build.0 = Release|x64
{1B83A353-9694-42E0-997E-79E150E1C2E5}.Release|x86.ActiveCfg = Release|Win32
{1B83A353-9694-42E0-997E-79E150E1C2E5}.Release|x86.Build.0 = Release|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x64.ActiveCfg = Debug|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x64.Build.0 = Debug|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x86.ActiveCfg = Debug|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x86.Build.0 = Debug|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x64.ActiveCfg = Release|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x64.Build.0 = Release|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x86.ActiveCfg = Release|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x86.Build.0 = Release|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x64.ActiveCfg = Debug|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x64.Build.0 = Debug|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x86.ActiveCfg = Debug|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x86.Build.0 = Debug|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x64.ActiveCfg = Release|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x64.Build.0 = Release|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x86.ActiveCfg = Release|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x86.Build.0 = Release|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x64.ActiveCfg = Debug|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x64.Build.0 = Debug|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x86.ActiveCfg = Debug|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x86.Build.0 = Debug|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x64.ActiveCfg = Release|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x64.Build.0 = Release|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x86.ActiveCfg = Release|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -380,6 +410,9 @@ Global
{41599A7C-B1F2-4D95-90CF-DB74AC4C7FA5} = {E068D138-C824-4365-B5A3-27C65E8FD0B5}
{38090AEB-3AA9-489B-BBEC-0CEDF9EAC0DE} = {E068D138-C824-4365-B5A3-27C65E8FD0B5}
{1B83A353-9694-42E0-997E-79E150E1C2E5} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226} = {64D4E4B2-4A60-46F4-A500-370EFED4524F}
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {331032D8-F7CC-43E3-A03B-67108767F96B}
diff --git a/Source/Asura.Editor/main.cpp b/Source/Asura.Editor/main.cpp
index e69de29..cfe59ac 100644
--- a/Source/Asura.Editor/main.cpp
+++ b/Source/Asura.Editor/main.cpp
@@ -0,0 +1,10 @@
+///
+/// ༭ĽͨdirectUIʵ֣Ⱦasura-libϣ¼Ӧͨwin32APIʵ֡
+///
+
+int main(int argn, char* args[])
+{
+
+
+
+} \ No newline at end of file
diff --git a/bin/win64/02-luax.exe b/bin/win64/02-luax.exe
new file mode 100644
index 0000000..6a06082
--- /dev/null
+++ b/bin/win64/02-luax.exe
Binary files differ
diff --git a/build/3rd-party/tinyxml2/tinyxml2.vcxproj b/build/3rd-party/tinyxml2/tinyxml2.vcxproj
new file mode 100644
index 0000000..a662caf
--- /dev/null
+++ b/build/3rd-party/tinyxml2/tinyxml2.vcxproj
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}</ProjectGuid>
+ <RootNamespace>tinyxml2</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/3rd-party/tinyxml2/tinyxml2.vcxproj.filters b/build/3rd-party/tinyxml2/tinyxml2.vcxproj.filters
new file mode 100644
index 0000000..3c6f4fd
--- /dev/null
+++ b/build/3rd-party/tinyxml2/tinyxml2.vcxproj.filters
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="源文件">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="头文件">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="资源文件">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/3rd-party/tinyxml2/tinyxml2.vcxproj.user b/build/3rd-party/tinyxml2/tinyxml2.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/3rd-party/tinyxml2/tinyxml2.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/Asura.Editor/Asura.Editor.vcxproj b/build/Asura.Editor/Asura.Editor.vcxproj
index c16be0a..cc38c61 100644
--- a/build/Asura.Editor/Asura.Editor.vcxproj
+++ b/build/Asura.Editor/Asura.Editor.vcxproj
@@ -76,6 +76,7 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -108,6 +109,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -115,6 +117,38 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClCompile Include="..\..\source\Asura.Editor\dui_module.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\editor.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\layout\horizontal_layout.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\layout\vertical_layout.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\button.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\checkbox.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hslider.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hvslider.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\label.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\panel.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\progress.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\radio_button.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\textbox.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\vslider.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Editor\dui_module.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\editor.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\layout\horizontal_layout.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\layout\vertical_layout.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\button.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\checkbox.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hslider.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hvslider.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\label.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\panel.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\progress.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\radio_button.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\textbox.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\vslider.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\widget.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/Asura.Editor/Asura.Editor.vcxproj.filters b/build/Asura.Editor/Asura.Editor.vcxproj.filters
index 3c6f4fd..53931f0 100644
--- a/build/Asura.Editor/Asura.Editor.vcxproj.filters
+++ b/build/Asura.Editor/Asura.Editor.vcxproj.filters
@@ -1,17 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
- <Filter Include="源文件">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ <Filter Include="widgets">
+ <UniqueIdentifier>{a4345092-d09c-424c-8d7c-c076914fb6a2}</UniqueIdentifier>
</Filter>
- <Filter Include="头文件">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
+ <Filter Include="layout">
+ <UniqueIdentifier>{7654ef3d-54c4-490f-bb24-e6a67bd63e1e}</UniqueIdentifier>
</Filter>
- <Filter Include="资源文件">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ <Filter Include="core">
+ <UniqueIdentifier>{f67906bd-4f7c-4ac6-bca1-019617435a8b}</UniqueIdentifier>
</Filter>
</ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\button.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\checkbox.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hslider.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\hvslider.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\label.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\panel.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\textbox.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\vslider.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\progress.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\layout\horizontal_layout.cpp">
+ <Filter>layout</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\layout\vertical_layout.cpp">
+ <Filter>layout</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\widgets\radio_button.cpp">
+ <Filter>widgets</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\source\Asura.Editor\editor.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Editor\dui_module.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\button.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\checkbox.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hslider.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\hvslider.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\label.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\panel.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\textbox.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\vslider.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\widget.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\progress.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\layout\horizontal_layout.h">
+ <Filter>layout</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\layout\vertical_layout.h">
+ <Filter>layout</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\widgets\radio_button.h">
+ <Filter>widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\source\Asura.Editor\editor.h" />
+ <ClInclude Include="..\..\source\Asura.Editor\dui_module.h" />
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/build/Asura.sln b/build/Asura.sln
index f7ee2f4..fa2e5ca 100644
--- a/build/Asura.sln
+++ b/build/Asura.sln
@@ -75,6 +75,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Asura", "Asura\Asura.vcxpro
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-lib-json", "libs\asura-lib-json\asura-lib-json.vcxproj", "{1B83A353-9694-42E0-997E-79E150E1C2E5}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-lib-xml", "libs\asura-lib-xml\asura-lib-xml.vcxproj", "{AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tinyxml2", "3rd-party\tinyxml2\tinyxml2.vcxproj", "{883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-lib-log", "libs\asura-lib-log\asura-lib-log.vcxproj", "{73B0F8AB-EF5A-412A-9E34-0FD2574766B7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -347,6 +353,30 @@ Global
{1B83A353-9694-42E0-997E-79E150E1C2E5}.Release|x64.Build.0 = Release|x64
{1B83A353-9694-42E0-997E-79E150E1C2E5}.Release|x86.ActiveCfg = Release|Win32
{1B83A353-9694-42E0-997E-79E150E1C2E5}.Release|x86.Build.0 = Release|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x64.ActiveCfg = Debug|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x64.Build.0 = Debug|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x86.ActiveCfg = Debug|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Debug|x86.Build.0 = Debug|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x64.ActiveCfg = Release|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x64.Build.0 = Release|x64
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x86.ActiveCfg = Release|Win32
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}.Release|x86.Build.0 = Release|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x64.ActiveCfg = Debug|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x64.Build.0 = Debug|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x86.ActiveCfg = Debug|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Debug|x86.Build.0 = Debug|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x64.ActiveCfg = Release|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x64.Build.0 = Release|x64
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x86.ActiveCfg = Release|Win32
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226}.Release|x86.Build.0 = Release|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x64.ActiveCfg = Debug|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x64.Build.0 = Debug|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x86.ActiveCfg = Debug|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Debug|x86.Build.0 = Debug|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x64.ActiveCfg = Release|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x64.Build.0 = Release|x64
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x86.ActiveCfg = Release|Win32
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -380,6 +410,9 @@ Global
{41599A7C-B1F2-4D95-90CF-DB74AC4C7FA5} = {E068D138-C824-4365-B5A3-27C65E8FD0B5}
{38090AEB-3AA9-489B-BBEC-0CEDF9EAC0DE} = {E068D138-C824-4365-B5A3-27C65E8FD0B5}
{1B83A353-9694-42E0-997E-79E150E1C2E5} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
+ {AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
+ {883BC26A-4C9E-44B3-B5C0-7F3E4EDC0226} = {64D4E4B2-4A60-46F4-A500-370EFED4524F}
+ {73B0F8AB-EF5A-412A-9E34-0FD2574766B7} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {331032D8-F7CC-43E3-A03B-67108767F96B}
diff --git a/build/libs/asura-lib-core/asura-lib-core.vcxproj b/build/libs/asura-lib-core/asura-lib-core.vcxproj
index 62d3815..a5dd696 100644
--- a/build/libs/asura-lib-core/asura-lib-core.vcxproj
+++ b/build/libs/asura-lib-core/asura-lib-core.vcxproj
@@ -120,6 +120,7 @@
<ClCompile Include="..\..\..\source\libs\asura-lib-core\application.cpp" />
<ClCompile Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_application.cpp" />
<ClCompile Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_cursor.cpp" />
+ <ClCompile Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_thread.cpp" />
<ClCompile Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_window.cpp" />
<ClCompile Include="..\..\..\source\libs\asura-lib-core\core_module.cpp" />
<ClCompile Include="..\..\..\source\libs\asura-lib-core\font\glyph.cpp" />
@@ -162,12 +163,12 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\source\libs\asura-lib-core\application.h" />
- <ClInclude Include="..\..\..\source\libs\asura-lib-core\asura.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\client\client.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_application.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_cursor.h" />
+ <ClInclude Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_thread.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_window.h" />
- <ClInclude Include="..\..\..\source\libs\asura-lib-core\config.h" />
+ <ClInclude Include="..\..\..\source\libs\asura-lib-core\core_config.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\core_module.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\font\glyph.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\font\string.hpp" />
diff --git a/build/libs/asura-lib-core/asura-lib-core.vcxproj.filters b/build/libs/asura-lib-core/asura-lib-core.vcxproj.filters
index 2948753..ae0aace 100644
--- a/build/libs/asura-lib-core/asura-lib-core.vcxproj.filters
+++ b/build/libs/asura-lib-core/asura-lib-core.vcxproj.filters
@@ -150,10 +150,12 @@
<Filter>client\sdl</Filter>
</ClCompile>
<ClCompile Include="..\..\..\source\libs\asura-lib-core\core_module.cpp" />
+ <ClCompile Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_thread.cpp">
+ <Filter>client\sdl</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\source\libs\asura-lib-core\application.h" />
- <ClInclude Include="..\..\..\source\libs\asura-lib-core\asura.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\manager.hpp" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\singleton.hpp" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\stringmap.hpp" />
@@ -268,9 +270,12 @@
<ClInclude Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_window.h">
<Filter>client\sdl</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\source\libs\asura-lib-core\config.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\core_module.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-core\type.h" />
+ <ClInclude Include="..\..\..\source\libs\asura-lib-core\client\sdl\sdl_thread.h">
+ <Filter>client\sdl</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\source\libs\asura-lib-core\core_config.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\source\libs\asura-lib-core\input\cursor.defs">
diff --git a/build/libs/asura-lib-json/asura-lib-json.vcxproj b/build/libs/asura-lib-json/asura-lib-json.vcxproj
index 7a2d92d..168ea89 100644
--- a/build/libs/asura-lib-json/asura-lib-json.vcxproj
+++ b/build/libs/asura-lib-json/asura-lib-json.vcxproj
@@ -76,6 +76,7 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -108,6 +109,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
diff --git a/build/libs/asura-lib-log/asura-lib-log.vcxproj b/build/libs/asura-lib-log/asura-lib-log.vcxproj
new file mode 100644
index 0000000..3f891f1
--- /dev/null
+++ b/build/libs/asura-lib-log/asura-lib-log.vcxproj
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{73B0F8AB-EF5A-412A-9E34-0FD2574766B7}</ProjectGuid>
+ <RootNamespace>asuraliblog</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/libs/asura-lib-log/asura-lib-log.vcxproj.filters b/build/libs/asura-lib-log/asura-lib-log.vcxproj.filters
new file mode 100644
index 0000000..3c6f4fd
--- /dev/null
+++ b/build/libs/asura-lib-log/asura-lib-log.vcxproj.filters
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="源文件">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="头文件">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="资源文件">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/libs/asura-lib-log/asura-lib-log.vcxproj.user b/build/libs/asura-lib-log/asura-lib-log.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/libs/asura-lib-log/asura-lib-log.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/libs/asura-lib-utils/asura-lib-utils.vcxproj b/build/libs/asura-lib-utils/asura-lib-utils.vcxproj
index 7e3d4a4..094fcb8 100644
--- a/build/libs/asura-lib-utils/asura-lib-utils.vcxproj
+++ b/build/libs/asura-lib-utils/asura-lib-utils.vcxproj
@@ -145,7 +145,6 @@
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\math\vector3.hpp" />
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\math\vector4.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\module.h" />
- <ClInclude Include="..\..\..\source\libs\asura-lib-utils\scripting\luax.hpp" />
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\scripting\portable.hpp" />
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\type.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\utils.h" />
diff --git a/build/libs/asura-lib-utils/asura-lib-utils.vcxproj.filters b/build/libs/asura-lib-utils/asura-lib-utils.vcxproj.filters
index 94c9497..86bd1ff 100644
--- a/build/libs/asura-lib-utils/asura-lib-utils.vcxproj.filters
+++ b/build/libs/asura-lib-utils/asura-lib-utils.vcxproj.filters
@@ -93,16 +93,13 @@
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\math\vector4.h">
<Filter>math</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\source\libs\asura-lib-utils\scripting\luax.hpp">
- <Filter>scripting</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\scripting\portable.hpp">
<Filter>scripting</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\type.h" />
- <ClInclude Include="..\..\..\source\libs\asura-lib-utils\module.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\utils.h" />
<ClInclude Include="..\..\..\source\libs\asura-lib-utils\utils_module.h" />
+ <ClInclude Include="..\..\..\source\libs\asura-lib-utils\module.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\source\libs\asura-lib-utils\math\rect.inl">
diff --git a/build/libs/asura-lib-xml/asura-lib-xml.vcxproj b/build/libs/asura-lib-xml/asura-lib-xml.vcxproj
new file mode 100644
index 0000000..112bc8f
--- /dev/null
+++ b/build/libs/asura-lib-xml/asura-lib-xml.vcxproj
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{AB4F8F4A-73B5-4EFF-BD5D-448A3E39C60A}</ProjectGuid>
+ <RootNamespace>asuralibxml</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/libs/asura-lib-xml/asura-lib-xml.vcxproj.filters b/build/libs/asura-lib-xml/asura-lib-xml.vcxproj.filters
new file mode 100644
index 0000000..3c6f4fd
--- /dev/null
+++ b/build/libs/asura-lib-xml/asura-lib-xml.vcxproj.filters
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="源文件">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="头文件">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
+ </Filter>
+ <Filter Include="资源文件">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/libs/asura-lib-xml/asura-lib-xml.vcxproj.user b/build/libs/asura-lib-xml/asura-lib-xml.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/libs/asura-lib-xml/asura-lib-xml.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/tests/02-luax/02-luax.vcxproj b/build/tests/02-luax/02-luax.vcxproj
index aa14357..5a79408 100644
--- a/build/tests/02-luax/02-luax.vcxproj
+++ b/build/tests/02-luax/02-luax.vcxproj
@@ -69,13 +69,19 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
- <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)..\Bin\win64</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)..\Bin\win64</OutDir>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -108,6 +114,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\3rd-party;$(SolutionDir)..\source\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -115,6 +122,21 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClInclude Include="..\..\..\source\tests\02-luax\header.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\source\tests\02-luax\main.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\..\source\tests\02-luax\script.lua" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\3rd-party\lua51\lua51.vcxproj">
+ <Project>{8b8fca14-fc8a-45b4-bf3c-9340cb586076}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\3rd-party\Luax\Luax.vcxproj">
+ <Project>{1350cee9-b2c2-426a-af4e-f651d51dd592}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/tests/02-luax/02-luax.vcxproj.filters b/build/tests/02-luax/02-luax.vcxproj.filters
index 3c6f4fd..67f1e4d 100644
--- a/build/tests/02-luax/02-luax.vcxproj.filters
+++ b/build/tests/02-luax/02-luax.vcxproj.filters
@@ -1,17 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
- <Filter Include="源文件">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="头文件">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
- </Filter>
- <Filter Include="资源文件">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
+ <ClInclude Include="..\..\..\source\tests\02-luax\header.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\source\tests\02-luax\main.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\..\source\tests\02-luax\script.lua" />
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/build/包含目录.txt b/build/包含目录.txt
deleted file mode 100644
index 6b2716e..0000000
--- a/build/包含目录.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-$(SolutionDir)..\source\3rd-party
-
-$(SolutionDir)..\source\libs
-
diff --git a/source/3rd-party/Luax/luax_class.hpp b/source/3rd-party/Luax/luax_class.hpp
index ea1fab9..539ff1a 100644
--- a/source/3rd-party/Luax/luax_class.hpp
+++ b/source/3rd-party/Luax/luax_class.hpp
@@ -35,15 +35,32 @@ namespace Luax
static const char* GetLuaxClassName() { return #type; }; \
static bool IsLuaxClassSingleton() { return true; };
+ ///
+ /// ʵֵĺꡣһL
+ ///
#define LUAX_IMPL_METHOD(type, f) int type::f(lua_State* L)
+ ///
+ /// Ӧóʵֵӿڡһstate
+ ///
#define LUAX_REGISTRY(type) void type::RegisterLuaxClass(Luax::LuaxState& state)
-
#define LUAX_POSTPROCESS(type) void type::RegisterLuaxPostprocess(Luax::LuaxState& state)
-#define LUAX_REGISTER_FACTORY(stt, type) stt.RegisterFactory<type>()
-
-#define LUAX_REGISTER_SINGLETON(stt, type) stt.RegisterSingleton<type>()
+ ///
+ /// עĺꡣ
+ ///
+#define LUAX_REGISTER_FACTORY(state, type) state.RegisterFactory<type>()
+#define LUAX_REGISTER_SINGLETON(state, type) state.RegisterSingleton<type>()
+#define LUAX_REGISTER_METHODS(state, ...) \
+ do{ \
+ luaL_Reg __m[] = {__VA_ARGS__,{0, 0}}; \
+ state.RegisterMethods(__m); \
+ }while(0)
+#define LUAX_REGISTER_ENUM(state, name, ...) \
+ do{ \
+ Luax::LuaxEnum __e[] = {__VA_ARGS__,{0, 0}}; \
+ state.RegisterEnum(name, __e); \
+ }while(0)
///
/// Ҫ¶luanative classҪ̳дࡣͨluaʵҪȷüȷԣڶ߳Ҫȷͷš
diff --git a/source/3rd-party/Luax/luax_class.inl b/source/3rd-party/Luax/luax_class.inl
index 028d4f9..7a24896 100644
--- a/source/3rd-party/Luax/luax_class.inl
+++ b/source/3rd-party/Luax/luax_class.inl
@@ -206,7 +206,7 @@ namespace Luax
assert(!mUserdata);
// userdataջ
- state.PushPtrUserData(this);
+ state.PushPtrUserdata(this);
lua_newtable(state); // ref table޷luaʣC
lua_newtable(state); // member tableluaдĶԱ
@@ -308,7 +308,7 @@ namespace Luax
int LuaxNativeClass<T>::l___gc(lua_State* L)
{
LUAX_SETUP(L, "U");
- T* self = state.GetLuaUserdata<T>(1);
+ T* self = state.GetUserdata<T>(1);
delete self;
return 0;
}
@@ -324,7 +324,7 @@ namespace Luax
// 1: userdata
LUAX_STATE(L);
- T* self = state.GetLuaUserdata<T>(1);
+ T* self = state.GetUserdata<T>(1);
if (self)
{
cc8* classname = "";
@@ -464,7 +464,7 @@ namespace Luax
int LuaxNativeClass<T>::l_GetRefTable(lua_State* L)
{
LUAX_STATE(L);
- T* self = state.GetLuaUserdata<T>(1);
+ T* self = state.GetUserdata<T>(1);
bool success = self->PushLuaxRefTable(state);
if (!success)
lua_pushnil(L);
diff --git a/source/3rd-party/Luax/luax_config.h b/source/3rd-party/Luax/luax_config.h
index c6562cc..d95ae8b 100644
--- a/source/3rd-party/Luax/luax_config.h
+++ b/source/3rd-party/Luax/luax_config.h
@@ -53,7 +53,7 @@ namespace Luax
#define LUAX_ENABLE_NATIVE_EXTEND 0
#define LUAX_ENABLE_PLAIN_CLASS 1
-#define LUAX_ENABLE_PLAIN_ENABLE 1
+#define LUAX_ENABLE_PLAIN_ENUM 1
}
diff --git a/source/3rd-party/Luax/luax_enum.cpp b/source/3rd-party/Luax/luax_enum.cpp
index 88bbab4..b054d98 100644
--- a/source/3rd-party/Luax/luax_enum.cpp
+++ b/source/3rd-party/Luax/luax_enum.cpp
@@ -35,7 +35,7 @@ namespace Luax
}
//--------------------------------------------------------------------------------------------------------------
-#if LUAX_ENABLE_PLAIN_ENABLE
+#if LUAX_ENABLE_PLAIN_ENUM
int LuaxPlainEnum::registry(lua_State* L)
{
// params:
diff --git a/source/3rd-party/Luax/luax_enum.h b/source/3rd-party/Luax/luax_enum.h
index 36f6bab..c385dc5 100644
--- a/source/3rd-party/Luax/luax_enum.h
+++ b/source/3rd-party/Luax/luax_enum.h
@@ -20,7 +20,7 @@ namespace Luax
extern int l_rmt__newindex(lua_State* L);
//--------------------------------------------------------------------------------------------------------------
-#if LUAX_ENABLE_PLAIN_ENABLE
+#if LUAX_ENABLE_PLAIN_ENUM
///
/// luaö٣޸ĵtable
///
diff --git a/source/3rd-party/Luax/luax_state.cpp b/source/3rd-party/Luax/luax_state.cpp
index 881aaea..622f352 100644
--- a/source/3rd-party/Luax/luax_state.cpp
+++ b/source/3rd-party/Luax/luax_state.cpp
@@ -596,15 +596,6 @@ namespace Luax
return value;
}
- template<>
- int LuaxState::GetValue<int>(int idx, int value)
- {
- if (this->IsType(idx, LUA_TNUMBER)) {
- return (int)lua_tointeger(this->mState, idx);
- }
- return value;
- }
-
template <>
u16 LuaxState::GetValue < u16 >(int idx, const u16 value)
{
@@ -641,7 +632,7 @@ namespace Luax
return value;
}
- void LuaxState::PushPtrUserData(void* ptr) {
+ void LuaxState::PushPtrUserdata(void* ptr) {
void** handle = (void**)lua_newuserdata(this->mState, sizeof(void*));
assert(handle);
@@ -725,7 +716,7 @@ namespace Luax
}
#endif
-#if LUAX_ENABLE_PLAIN_ENABLE
+#if LUAX_ENABLE_PLAIN_ENUM
void LuaxState::RegisterPlainEnumRegistry(cc8* name)
{
assert(lua_istable(mState, -1));
@@ -734,4 +725,113 @@ namespace Luax
}
#endif
+ int LuaxState::ErrorType(int idx, cc8* hint)
+ {
+ return luaL_typerror(mState, idx, hint);
+ }
+
+ template <>
+ bool LuaxState::CheckParam < bool >(int idx)
+ {
+ bool b = false;
+ if (lua_type(mState, idx) == LUA_TBOOLEAN)
+ {
+ b = lua_toboolean(mState, idx);
+ }
+ else
+ {
+ luaL_typerror(mState, idx, lua_typename(mState, LUA_TBOOLEAN));
+ }
+ return b;
+ }
+
+ template <>
+ cc8* LuaxState::CheckParam < cc8* >(int idx)
+ {
+ return luaL_checkstring(mState, idx);
+ }
+
+ template <>
+ double LuaxState::CheckParam < double >(int idx)
+ {
+ return luaL_checknumber(mState, idx);
+ }
+
+ template <>
+ float LuaxState::CheckParam < float >(int idx)
+ {
+ return luaL_checknumber(mState, idx);
+ }
+
+ template <>
+ s8 LuaxState::CheckParam < s8 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ s16 LuaxState::CheckParam < s16 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ s32 LuaxState::CheckParam < s32 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ s64 LuaxState::CheckParam < s64 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ u8 LuaxState::CheckParam < u8 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ u16 LuaxState::CheckParam < u16 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ u32 LuaxState::CheckParam < u32 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ u64 LuaxState::CheckParam < u64 >(int idx)
+ {
+ return luaL_checkinteger(mState, idx);
+ }
+
+ template <>
+ std::string LuaxState::CheckParam < std::string >(int idx)
+ {
+ return luaL_checkstring(mState, idx);
+ }
+
+ ///
+ /// check light userdata
+ ///
+ template <>
+ const void* LuaxState::CheckParam < const void* >(int idx)
+ {
+ if (IsType(idx, LUA_TLIGHTUSERDATA))
+ {
+ return GetValue<const void*>(idx, nullptr);
+ }
+ else
+ {
+ luaL_typerror(mState, idx, "light userdata");
+ return nullptr;
+ }
+ }
+
} \ No newline at end of file
diff --git a/source/3rd-party/Luax/luax_state.h b/source/3rd-party/Luax/luax_state.h
index fbe424b..564eba3 100644
--- a/source/3rd-party/Luax/luax_state.h
+++ b/source/3rd-party/Luax/luax_state.h
@@ -107,13 +107,17 @@ namespace Luax
///
/// void** ʽuserdataֵΪptr
///
- void PushPtrUserData(void* ptr);
+ void PushPtrUserdata(void* ptr);
void Pop(int n = 1);
void Settop(int idx);
- template<typename T> T* GetLuaUserdata(int idx = 1);
+ template<typename T> T* GetUserdata(int idx = 1);
+
+ //------------------------------------------------------------------------------------------------------------
+
+ int ErrorType(int idx, cc8* hint);
//------------------------------------------------------------------------------------------------------------
@@ -123,6 +127,9 @@ namespace Luax
template<typename T> void SetField(int idx, cc8* key, T value);
template<typename T> void SetFieldByIndex(int idx, int key, T value);
+ template<typename T> T* CheckUserdata(int idx);
+ template<typename T> T CheckParam(int idx);
+
//------------------------------------------------------------------------------------------------------------
void DoString(const std::string& code);
@@ -175,7 +182,7 @@ namespace Luax
void RegisterPlainClassRegistry(cc8* name);
#endif
-#if LUAX_ENABLE_PLAIN_ENABLE
+#if LUAX_ENABLE_PLAIN_ENUM
///
/// עᴿluaö٣Էֹ޸öֵ
///
@@ -203,7 +210,7 @@ namespace Luax
};
//--------------------------------------------------------------------------------------------------------------
- // GetValue()ģػ
+ // GetValue()ģʵ
template <> bool LuaxState::GetValue < bool >(int idx, const bool value);
template <> cc8* LuaxState::GetValue < cc8* >(int idx, const cc8* value);
@@ -219,8 +226,24 @@ namespace Luax
template <> u64 LuaxState::GetValue < u64 >(int idx, const u64 value);
template <> std::string LuaxState::GetValue < std::string >(int idx, const std::string value);
template <> const void* LuaxState::GetValue < const void* >(int idx, const void* value);
- template <> int LuaxState::GetValue < int >(int idx, int value);
+ //--------------------------------------------------------------------------------------------------------------
+ // CheckParamģʵ
+
+ template <> bool LuaxState::CheckParam < bool >(int idx);
+ template <> cc8* LuaxState::CheckParam < cc8* >(int idx);
+ template <> double LuaxState::CheckParam < double >(int idx);
+ template <> float LuaxState::CheckParam < float >(int idx);
+ template <> s8 LuaxState::CheckParam < s8 >(int idx);
+ template <> s16 LuaxState::CheckParam < s16 >(int idx);
+ template <> s32 LuaxState::CheckParam < s32 >(int idx);
+ template <> s64 LuaxState::CheckParam < s64 >(int idx);
+ template <> u8 LuaxState::CheckParam < u8 >(int idx);
+ template <> u16 LuaxState::CheckParam < u16 >(int idx);
+ template <> u32 LuaxState::CheckParam < u32 >(int idx);
+ template <> u64 LuaxState::CheckParam < u64 >(int idx);
+ template <> std::string LuaxState::CheckParam < std::string >(int idx);
+ template <> const void* LuaxState::CheckParam < const void* >(int idx);
///
/// ڳԱﴴLuaxStateԲм顣
diff --git a/source/3rd-party/Luax/luax_state.inl b/source/3rd-party/Luax/luax_state.inl
index 06d9350..4af45a2 100644
--- a/source/3rd-party/Luax/luax_state.inl
+++ b/source/3rd-party/Luax/luax_state.inl
@@ -125,7 +125,7 @@ namespace Luax
}
template<typename T>
- T* LuaxState::GetLuaUserdata(int idx)
+ T* LuaxState::GetUserdata(int idx)
{
void* p = nullptr;
@@ -137,4 +137,33 @@ namespace Luax
return static_cast<T*>(p);
}
+ template<typename T>
+ T* LuaxState::CheckUserdata(int idx)
+ {
+ if (IsType(idx, LUA_TUSERDATA))
+ {
+ if (lua_getmetatable(mState, idx)) // ref table
+ {
+ if (lua_getmetatable(mState, -1)) // member table
+ {
+ if (lua_getmetatable(mState, -1)) // class table
+ {
+ T::PushLuaxClassTable(*this); // target class table
+ if (lua_rawequal(mState, -1, -2))
+ {
+ Pop(4); // ref\member\class\target class
+ T* udata = GetUserdata<T>(idx);
+ return udata; // userdata
+ }
+ Pop(2); // target class table\class table
+ }
+ Pop(1); // member table
+ }
+ Pop(1); // ref table
+ }
+ }
+ luaL_typerror(mState, idx, T::GetLuaxClassName());
+ return nullptr;
+ }
+
} \ No newline at end of file
diff --git a/source/Asura.Editor/widgets/rbutton.cpp b/source/Asura.Editor/dui_module.cpp
index e69de29..e69de29 100644
--- a/source/Asura.Editor/widgets/rbutton.cpp
+++ b/source/Asura.Editor/dui_module.cpp
diff --git a/source/Asura.Editor/dui_module.h b/source/Asura.Editor/dui_module.h
new file mode 100644
index 0000000..abcaca5
--- /dev/null
+++ b/source/Asura.Editor/dui_module.h
@@ -0,0 +1,6 @@
+#ifndef __ASRUA_EDITOR_DIRECTUI_MODULE_H__
+#define __ASRUA_EDITOR_DIRECTUI_MODULE_H__
+
+
+
+#endif \ No newline at end of file
diff --git a/source/Asura.Editor/editor.cpp b/source/Asura.Editor/editor.cpp
index 29fb76d..38e7c26 100644
--- a/source/Asura.Editor/editor.cpp
+++ b/source/Asura.Editor/editor.cpp
@@ -1,5 +1,4 @@
-
int main(int argc, char *argv[])
{
diff --git a/source/Asura.Editor/editor.h b/source/Asura.Editor/editor.h
new file mode 100644
index 0000000..6555c81
--- /dev/null
+++ b/source/Asura.Editor/editor.h
@@ -0,0 +1,17 @@
+#ifndef __ASURA_EDITOR_H__
+#define __ASURA_EDITOR_H__
+
+namespace AsuraEditor
+{
+
+ ///
+ ///
+ ///
+ class Editor
+ {
+
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/source/Asura.Editor/widgets/rbutton.h b/source/Asura.Editor/layout/horizontal_layout.cpp
index e69de29..e69de29 100644
--- a/source/Asura.Editor/widgets/rbutton.h
+++ b/source/Asura.Editor/layout/horizontal_layout.cpp
diff --git a/source/libs/asura-lib-utils/scripting/portable.inl b/source/Asura.Editor/layout/horizontal_layout.h
index e69de29..e69de29 100644
--- a/source/libs/asura-lib-utils/scripting/portable.inl
+++ b/source/Asura.Editor/layout/horizontal_layout.h
diff --git a/source/Asura.Editor/layout/vertical_layout.cpp b/source/Asura.Editor/layout/vertical_layout.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/Asura.Editor/layout/vertical_layout.cpp
diff --git a/source/Asura.Editor/layout/vertical_layout.h b/source/Asura.Editor/layout/vertical_layout.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/Asura.Editor/layout/vertical_layout.h
diff --git a/source/Asura.Editor/main.cpp b/source/Asura.Editor/main.cpp
index e69de29..cfe59ac 100644
--- a/source/Asura.Editor/main.cpp
+++ b/source/Asura.Editor/main.cpp
@@ -0,0 +1,10 @@
+///
+/// ༭ĽͨdirectUIʵ֣Ⱦasura-libϣ¼Ӧͨwin32APIʵ֡
+///
+
+int main(int argn, char* args[])
+{
+
+
+
+} \ No newline at end of file
diff --git a/source/Asura.Editor/widgets/progress.cpp b/source/Asura.Editor/widgets/progress.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/Asura.Editor/widgets/progress.cpp
diff --git a/source/Asura.Editor/widgets/progress.h b/source/Asura.Editor/widgets/progress.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/Asura.Editor/widgets/progress.h
diff --git a/source/Asura.Editor/widgets/radio_button.cpp b/source/Asura.Editor/widgets/radio_button.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/Asura.Editor/widgets/radio_button.cpp
diff --git a/source/Asura.Editor/widgets/radio_button.h b/source/Asura.Editor/widgets/radio_button.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/Asura.Editor/widgets/radio_button.h
diff --git a/source/Asura.Editor/widgets/widget.h b/source/Asura.Editor/widgets/widget.h
index 437e2bf..5fb18f1 100644
--- a/source/Asura.Editor/widgets/widget.h
+++ b/source/Asura.Editor/widgets/widget.h
@@ -1,7 +1,7 @@
#ifndef __ASURA_EDITOR_WIDGET_H__
#define __ASURA_EDITOR_WIDGET_H__
-#include <Object.h>
+#include <asura-lib-utils/type.h>
namespace AusraEditor
{
@@ -9,7 +9,7 @@ namespace AusraEditor
///
/// Asura EditorĿؼ߼Ⱦں¼ѯֻ¼Ӧ߼ӿڡ
///
- class Widget : virtual public Object
+ ASURA_ABSTRACT class Widget
{
public:
diff --git a/source/libs/asura-lib-core/application.cpp b/source/libs/asura-lib-core/application.cpp
index 598bca8..0a1c1ef 100644
--- a/source/libs/asura-lib-core/application.cpp
+++ b/source/libs/asura-lib-core/application.cpp
@@ -20,40 +20,7 @@ namespace AsuraEngine
bool Application::InitSubModules(uint flag)
{
- // ʼģ
- #define TryInitSubModule(module_name, func_name) \
- if((flag&ASURA_MODULE_##module_name) && !Application::Init##func_name()) \
- throw Exception("Asura init submodule %s failed.", #module_name);
-
- TryInitSubModule(GRAPHICS, Graphics);
- TryInitSubModule(AUDIO, Audio);
- TryInitSubModule(FONT, Font);
- TryInitSubModule(INPUT, Input);
- TryInitSubModule(MATH, Math);
- TryInitSubModule(PHYSICS, Physics);
- TryInitSubModule(TIME, Time);
- TryInitSubModule(WINDOW, Window);
}
- void Application::PortToLua()
- {
- LuaxState state(mLuaState);
-
-#define RegisterLuaFactory(T) state.RegisterFactory<T>();
-
- state.SetToGlobalNamespace();
- state.PushNamespace("AsuraEngine");
-
- RegisterLuaFactory(AEGraphics::Image>);
-
-#ifdef ASURA_AUTHOR
- state.PushNamespace("Version");
-
- state.PopNamespace(); // AsuraEngine.Version
-#endif
-
- state.PopNamespace(); // AsuraEngine
- }
-
} \ No newline at end of file
diff --git a/source/libs/asura-lib-core/application.h b/source/libs/asura-lib-core/application.h
index 6ae3218..983dbce 100644
--- a/source/libs/asura-lib-core/application.h
+++ b/source/libs/asura-lib-core/application.h
@@ -5,7 +5,7 @@
#include <asura-lib-utils/module.h>
#include <queue>
-#include "config.h"
+#include "core_config.h"
namespace AsuraEngine
{
@@ -65,18 +65,6 @@ namespace AsuraEngine
private:
///
- /// ģʼڸģļʵ֡
- ///
- bool InitGraphics();
- bool InitAudio();
- bool InitFont();
- bool InitInput();
- bool InitMath();
- bool InitPhysics();
- bool InitTime();
- bool InitWindow();
-
- ///
/// Lua state.
///
lua_State* mLuaState;
diff --git a/source/libs/asura-lib-core/asura.h b/source/libs/asura-lib-core/asura.h
deleted file mode 100644
index 5ca56f3..0000000
--- a/source/libs/asura-lib-core/asura.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __ASURA_ENGINE_H__
-#define __ASURA_ENGINE_H__
-
-#include "Application.h"
-
-#include "Graphics/Shader.h"
-
-//namespace AEGraphics = AsuraEngine::Graphics;
-//namespace AEMath = AsuraEngine::Math;
-//namespace AETime = AsuraEngine::Time;
-//namespace AEInput = AsuraEngine::Input;
-//namespace AEProfiler = AsuraEngine::Profiler;
-//namespace AEFont = AsuraEngine::Font;
-
-#endif \ No newline at end of file
diff --git a/source/libs/asura-lib-core/client/client.h b/source/libs/asura-lib-core/client/client.h
index f2464a5..8df30fe 100644
--- a/source/libs/asura-lib-core/client/client.h
+++ b/source/libs/asura-lib-core/client/client.h
@@ -1,16 +1,23 @@
#ifndef __ASURA_ENGINE_HOST_H__
#define __ASURA_ENGINE_HOST_H__
-/**
-* ʹڿйص
-*/
+#include <asura-lib-utils/type.h>
+///
+/// ʹйصʵ֣ǵϷĿƽ̨ʹüֱʵ֡༭벻ڿƽ̨ڿ⣬Ŀǰʹwin32APIʵϢѭ
+///
namespace AsuraEngine
{
- namespace Host
+ namespace Client
{
+ ///
+ /// ࡣ
+ ///
+ ASURA_ABSTRACT class Client
+ {
+ };
}
}
diff --git a/source/libs/asura-lib-core/client/sdl/sdl_thread.cpp b/source/libs/asura-lib-core/client/sdl/sdl_thread.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/libs/asura-lib-core/client/sdl/sdl_thread.cpp
diff --git a/source/libs/asura-lib-core/client/sdl/sdl_thread.h b/source/libs/asura-lib-core/client/sdl/sdl_thread.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/libs/asura-lib-core/client/sdl/sdl_thread.h
diff --git a/source/libs/asura-lib-core/client/sdl/sdl_window.h b/source/libs/asura-lib-core/client/sdl/sdl_window.h
index 1fdef1e..040c23e 100644
--- a/source/libs/asura-lib-core/client/sdl/sdl_window.h
+++ b/source/libs/asura-lib-core/client/sdl/sdl_window.h
@@ -1,14 +1,29 @@
#ifndef __ASURA_SDL_WINDOW_H__
#define __ASURA_SDL_WINDOW_H__
+#include "../../core_config.h"
+#if ASURA_CORE_SDL
+
+#include <asura-lib-utils/scripting/portable.hpp>
+#include "../../graphics/window.h"
+
namespace AsuraEngine
{
namespace SDL
{
+ class SDLWindow ASURA_FINAL
+ : public Graphics::Window
+ , public Scripting::Portable<SDLWindow>
+ {
+ public:
+
+ };
}
}
-#endif \ No newline at end of file
+#endif // ASURA_CORE_SDL
+
+#endif // __ASURA_SDL_WINDOW_H__ \ No newline at end of file
diff --git a/source/libs/asura-lib-core/config.h b/source/libs/asura-lib-core/config.h
deleted file mode 100644
index df7ad99..0000000
--- a/source/libs/asura-lib-core/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef __ASURA_CORE_CONFIG_H__
-#define __ASURA_CORE_CONFIG_H__
-
-#endif \ No newline at end of file
diff --git a/source/libs/asura-lib-core/core_config.h b/source/libs/asura-lib-core/core_config.h
new file mode 100644
index 0000000..06eecc7
--- /dev/null
+++ b/source/libs/asura-lib-core/core_config.h
@@ -0,0 +1,8 @@
+#ifndef __ASURA_CORE_CONFIG_H__
+#define __ASURA_CORE_CONFIG_H__
+
+#define ASURA_CORE_SDL 1
+#define ASURA_CORE_GLUT 0
+#define ASURA_CORE_GLFW 0
+
+#endif \ No newline at end of file
diff --git a/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp b/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp
index 0d68c11..72e33da 100644
--- a/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp
+++ b/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp
@@ -1,4 +1,4 @@
-#include "../image.h"
+#include "../image_data.h"
using namespace Luax;
@@ -7,23 +7,55 @@ namespace AsuraEngine
namespace Graphics
{
- void Image::RegisterLuaxClass(LuaxState& state)
+ LUAX_REGISTRY(ImageData)
{
}
- void Image::RegisterLuaxPostprocess(LuaxState& state)
+ LUAX_POSTPROCESS(ImageData)
+ {
+ LUAX_REGISTER_ENUM(state, "EBlendMode",
+ { "Additive", 1 }
+ );
+ LUAX_REGISTER_ENUM(state, "EPixelFormat",
+ { "RGBA32", 1 }
+ );
+ }
+
+ // imagedata = ImageData.New(databuffer)
+ LUAX_IMPL_METHOD(ImageData, _New)
+ {
+ LUAX_STATE(L);
+
+ Filesystem::DataBuffer* db = state.CheckUserdata<Filesystem::DataBuffer>(1);
+ ImageData* image = new ImageData(*db);
+ image->PushLuaxUserdata(state);
+ return 1;
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetPixel)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetSize)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetWidth)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetHeight)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetPixelFormat)
{
- // blendö٣AsuraEngine.EBlendMode
- LuaxEnum EBlendMode[] = {
- { "Additive", 1 },
- { "PreBlend", 2 },
- { "Substruction", 3 },
- { "Multiplied", 4 },
- {0, 0}
- };
- state.RegisterEnum("EBlendMode", EBlendMode);
}
}
diff --git a/source/libs/asura-lib-core/graphics/canvas.h b/source/libs/asura-lib-core/graphics/canvas.h
index c4e0f65..6b8b630 100644
--- a/source/libs/asura-lib-core/graphics/canvas.h
+++ b/source/libs/asura-lib-core/graphics/canvas.h
@@ -1,12 +1,14 @@
#ifndef __ASURA_ENGINE_CANVAS_H__
#define __ASURA_ENGINE_CANVAS_H__
-#include <Scripting/Luax.hpp>
+#include <asura-lib-utils/scripting/portable.hpp>
+#include <asura-lib-utils/math/rect.hpp>
+#include <asura-lib-utils/math/vector2.hpp>
-#include "Math/Rect.hpp"
-#include "GL.h"
-#include "Texture.h"
-#include "RenderTarget.h"
+#include "gl.h"
+#include "texture.h"
+#include "render_target.h"
+#include "render_state.h"
namespace AsuraEngine
{
@@ -19,7 +21,7 @@ namespace AsuraEngine
class Canvas ASURA_FINAL
: public Drawable
, public RenderTarget
- , public Scripting::Portable
+ , public Scripting::Portable<Canvas>
{
public:
diff --git a/source/libs/asura-lib-core/graphics/color.h b/source/libs/asura-lib-core/graphics/color.h
index a18c682..74cf8f3 100644
--- a/source/libs/asura-lib-core/graphics/color.h
+++ b/source/libs/asura-lib-core/graphics/color.h
@@ -1,8 +1,9 @@
#ifndef __ASURA_ENGINE_COLOR_H__
#define __ASURA_ENGINE_COLOR_H__
-#include "config.h"
-#include "scripting/portable.hpp"
+#include <asura-lib-utils/scripting/portable.hpp>
+
+#include "../core_config.h"
namespace AsuraEngine
{
diff --git a/source/libs/asura-lib-core/graphics/gl.cpp b/source/libs/asura-lib-core/graphics/gl.cpp
index 01c90de..7c68c8f 100644
--- a/source/libs/asura-lib-core/graphics/gl.cpp
+++ b/source/libs/asura-lib-core/graphics/gl.cpp
@@ -1,4 +1,4 @@
-#include "config.h"
+#include "../core_config.h"
#include "gl.h"
namespace AsuraEngine
diff --git a/source/libs/asura-lib-core/graphics/image_data.cpp b/source/libs/asura-lib-core/graphics/image_data.cpp
index 821bfd6..28c706a 100644
--- a/source/libs/asura-lib-core/graphics/image_data.cpp
+++ b/source/libs/asura-lib-core/graphics/image_data.cpp
@@ -1,6 +1,7 @@
#include "image_data.h"
#include "png_decoder.h"
#include "stb_decoder.h"
+#include "image_decoder.h"
namespace AsuraEngine
{
@@ -35,7 +36,7 @@ namespace AsuraEngine
{
if (decoder->CanDecode(buffer))
{
- decoder->Decode(buffer, this);
+ decoder->Decode(buffer, *this);
return;
}
}
diff --git a/source/libs/asura-lib-core/graphics/image_data.h b/source/libs/asura-lib-core/graphics/image_data.h
index 1e711a8..53a9e85 100644
--- a/source/libs/asura-lib-core/graphics/image_data.h
+++ b/source/libs/asura-lib-core/graphics/image_data.h
@@ -3,9 +3,10 @@
#include <list>
-#include "scripting/luax.hpp"
-#include "filesystem/decoded_data.h"
-#include "image_decoder.h"
+#include <asura-lib-utils/scripting/portable.hpp>
+#include <asura-lib-utils/filesystem/decoded_data.h>
+#include <asura-lib-utils/filesystem/data_buffer.h>
+
#include "pixel_format.h"
#include "color.h"
@@ -14,9 +15,11 @@ namespace AsuraEngine
namespace Graphics
{
+ class ImageDecoder;
+
class ImageData ASURA_FINAL
: public Filesystem::DecodedData
- , public Scripting::Portable
+ , public Scripting::Portable<ImageData>
{
public:
@@ -24,7 +27,6 @@ namespace AsuraEngine
/// ͼƬļϢʧܣ׳쳣
///
ImageData(const Filesystem::DataBuffer& buffer);
-
~ImageData();
Color GetPixel(uint x, uint y);
@@ -45,14 +47,14 @@ namespace AsuraEngine
public:
- //----------------------------------------------------------------------------------------------------------
-
LUAX_DECL_FACTORY(ImageData);
- LUAX_DECL_METHOD(l_GetPixel);
- LUAX_DECL_METHOD(l_GetSize);
-
- //----------------------------------------------------------------------------------------------------------
+ LUAX_DECL_METHOD(_New);
+ LUAX_DECL_METHOD(_GetPixel);
+ LUAX_DECL_METHOD(_GetSize);
+ LUAX_DECL_METHOD(_GetWidth);
+ LUAX_DECL_METHOD(_GetHeight);
+ LUAX_DECL_METHOD(_GetPixelFormat);
};
diff --git a/source/libs/asura-lib-core/graphics/image_decoder.h b/source/libs/asura-lib-core/graphics/image_decoder.h
index 2c73fd1..921d129 100644
--- a/source/libs/asura-lib-core/graphics/image_decoder.h
+++ b/source/libs/asura-lib-core/graphics/image_decoder.h
@@ -1,9 +1,9 @@
#ifndef __ASURA_ENGINE_IMAGE_DECODER_H__
#define __ASURA_ENGINE_IMAGE_DECODER_H__
-#include "FileSystem/DataBuffer.h"
+#include <asura-lib-utils/filesystem/data_buffer.h>
-#include "ImageData.h"
+#include "image_data.h"
namespace AsuraEngine
{
diff --git a/source/libs/asura-lib-utils/filesystem/binding/data_buffer.binding.cpp b/source/libs/asura-lib-utils/filesystem/binding/data_buffer.binding.cpp
index a9113a7..8e92eee 100644
--- a/source/libs/asura-lib-utils/filesystem/binding/data_buffer.binding.cpp
+++ b/source/libs/asura-lib-utils/filesystem/binding/data_buffer.binding.cpp
@@ -9,59 +9,101 @@ namespace AsuraEngine
LUAX_REGISTRY(DataBuffer)
{
- luaL_Reg f[] = {
+ LUAX_REGISTER_METHODS(state,
{ "New", _New },
- { "SetContent", _SetContent },
- { "GetContent", _GetContent },
- { "GetContentLength", _GetContentLength },
- {0, 0}
- };
-
- state.RegisterMethods(f);
+ { "GetBuffer", _GetBuffer },
+ { "GetSize", _GetSize },
+ { "Load", _Load },
+ { "Clear", _Clear }
+ );
}
LUAX_POSTPROCESS(DataBuffer)
{
-
}
+ // databuffer = DataBuffer.New(lstring)
+ // databuffer = DataBuffer.New(size)
LUAX_IMPL_METHOD(DataBuffer, _New)
{
+ LUAX_STATE(L);
+ if (state.IsType(1, LUA_TSTRING))
+ {
+ byte* bytes;
+ size_t size;
+ lua_tolstring(L, 1, &size);
+ DataBuffer* buffer = new DataBuffer(bytes, size);
+ buffer->PushLuaxUserdata(state);
+ return 1;
+ }
+ else if (state.IsType(1, LUA_TNUMBER))
+ {
+ size_t size = lua_tonumber(L, 1);
+ DataBuffer* buffer = new DataBuffer(size);
+ buffer->PushLuaxUserdata(state);
+ }
+ else
+ {
+ return state.ErrorType(1, "number or string");
+ }
}
- // SetContent(dataBuffer, lString)
- LUAX_IMPL_METHOD(DataBuffer, _SetContent)
+ // lsting, len = databuffer:GetBuffer()
+ LUAX_IMPL_METHOD(DataBuffer, _GetBuffer)
{
- LUAX_SETUP(L, "US");
- // params:
- // 1: data buffer
- // 2: lstring
+ LUAX_SETUP(L, "U");
- DataBuffer* self = state.GetLuaUserdata<DataBuffer>(1);
- size_t size = 0;
- const char* str = lua_tolstring(L, 2, &size);
- void* data = new char[size];
- memcpy(data, str, size);
- self->SetContent(data, size);
- return 0;
+ DataBuffer* self = state.GetUserdata<DataBuffer>(1);
+ lua_pushlstring(L, self->GetBuffer(), self->GetSize());
+ return 2;
}
- LUAX_IMPL_METHOD(DataBuffer, _GetContent)
+ // length = databuffer:GetSize()
+ LUAX_IMPL_METHOD(DataBuffer, _GetSize)
{
LUAX_SETUP(L, "U");
- DataBuffer* self = state.GetLuaUserdata<DataBuffer>(1);
- lua_pushlstring(L, (const char*)self->data, self->size);
+ DataBuffer* self = state.GetUserdata<DataBuffer>(1);
+ lua_pushinteger(L, self->GetSize());
return 1;
}
- LUAX_IMPL_METHOD(DataBuffer, _GetContentLength)
+ // databuffer:Load(lstring)
+ // databuffer:Load(src)
+ LUAX_IMPL_METHOD(DataBuffer, _Load)
+ {
+ LUAX_STATE(L);
+
+ DataBuffer* buffer = state.GetUserdata<DataBuffer>(1);
+ const byte* data;
+ size_t size;
+ if (state.IsType(2, LUA_TSTRING))
+ {
+ data = lua_tolstring(L, 2, &size);
+ buffer->Load(data, size);
+ return 0;
+ }
+ else if(state.IsType(2, LUA_TUSERDATA))
+ {
+ DataBuffer* src = state.CheckUserdata<DataBuffer>(2);
+ buffer->Load(*src);
+ return 0;
+ }
+ else
+ {
+ return state.ErrorType(1, "lstring or DataBuffer");
+ }
+ }
+
+ // databuffer:Clear()
+ LUAX_IMPL_METHOD(DataBuffer, _Clear)
{
LUAX_SETUP(L, "U");
- DataBuffer* self = state.GetLuaUserdata<DataBuffer>(1);
- lua_pushinteger(L, self->size);
- return 1;
+
+ DataBuffer* self = state.GetUserdata<DataBuffer>(1);
+ self->Clear();
+ return 0;
}
}
diff --git a/source/libs/asura-lib-utils/filesystem/data_buffer.cpp b/source/libs/asura-lib-utils/filesystem/data_buffer.cpp
index 629dc92..32a123f 100644
--- a/source/libs/asura-lib-utils/filesystem/data_buffer.cpp
+++ b/source/libs/asura-lib-utils/filesystem/data_buffer.cpp
@@ -1,3 +1,5 @@
+#include <cstdlib>
+#include <cstring>
#include "data_buffer.h"
namespace AsuraEngine
@@ -5,24 +7,60 @@ namespace AsuraEngine
namespace Filesystem
{
+ DataBuffer::DataBuffer(DataBuffer& src)
+ {
+ Load(src);
+ }
+
+ DataBuffer::DataBuffer(std::size_t size)
+ : mSize(size)
+ , mBytes(nullptr)
+ {
+ mBytes = new byte[size];
+ memset(mBytes, 0, size);
+ }
+
DataBuffer::DataBuffer(const void* data, std::size_t size)
+ : mSize(size)
+ , mBytes(nullptr)
{
- this->data = (const byte*)data;
- this->size = size;
+ Load(data, size);
}
DataBuffer::~DataBuffer()
{
- delete[] data;
+ delete[] mBytes;
}
- void DataBuffer::SetContent(const void* data, std::size_t siez)
+ void DataBuffer::Load(DataBuffer& db)
{
- if (this->data != nullptr)
- delete[] this->data;
+ Load(db.GetBuffer(), db.GetSize());
+ }
- this->data = (const byte*)data;
- this->size = size;
+ void DataBuffer::Load(const void* data, std::size_t size)
+ {
+ if (!mBytes || mSize != size)
+ {
+ delete[] mBytes;
+ mBytes = new byte[size];
+ }
+ memcpy(mBytes, data, size);
+ }
+
+ byte* DataBuffer::GetBuffer()
+ {
+ return mBytes;
+ }
+
+ void DataBuffer::Clear()
+ {
+ if (mBytes)
+ memset(mBytes, 0, mSize);
+ }
+
+ std::size_t DataBuffer::GetSize()
+ {
+ return mSize;
}
}
diff --git a/source/libs/asura-lib-utils/filesystem/data_buffer.h b/source/libs/asura-lib-utils/filesystem/data_buffer.h
index 4b013ed..5c80efb 100644
--- a/source/libs/asura-lib-utils/filesystem/data_buffer.h
+++ b/source/libs/asura-lib-utils/filesystem/data_buffer.h
@@ -3,7 +3,6 @@
#include <cstdlib>
-#include "../scripting/Luax.hpp"
#include "../scripting/portable.hpp"
namespace AsuraEngine
@@ -19,23 +18,34 @@ namespace AsuraEngine
{
public:
- DataBuffer(const void* data, std::size_t size);
-
+ DataBuffer(DataBuffer& src);
+ DataBuffer(std::size_t size);
+ DataBuffer(const void* bytes, std::size_t size);
~DataBuffer();
- void SetContent(const void* data, std::size_t siez);
+ byte* GetBuffer();
+ size_t GetSize();
+
+ void Load(DataBuffer& db);
+ void Load(const void* bytes, std::size_t size);
+ void Clear();
- const byte* data;
- size_t size;
+ private:
- //----------------------------------------------------------------------------------------------------------
+ byte* mBytes;
+ size_t mSize;
+
+ //------------------------------------------------------------------------------------------------------------
+
+ public:
LUAX_DECL_FACTORY(DataBuffer);
LUAX_DECL_METHOD(_New);
- LUAX_DECL_METHOD(_SetContent);
- LUAX_DECL_METHOD(_GetContent);
- LUAX_DECL_METHOD(_GetContentLength);
+ LUAX_DECL_METHOD(_GetBuffer);
+ LUAX_DECL_METHOD(_GetSize);
+ LUAX_DECL_METHOD(_Load);
+ LUAX_DECL_METHOD(_Clear);
};
diff --git a/source/libs/asura-lib-utils/filesystem/resource_manager.h b/source/libs/asura-lib-utils/filesystem/resource_manager.h
index c5d8f06..36d46cf 100644
--- a/source/libs/asura-lib-utils/filesystem/resource_manager.h
+++ b/source/libs/asura-lib-utils/filesystem/resource_manager.h
@@ -36,6 +36,10 @@ namespace AsuraEngine
///
void SaveFile(const std::string& path, const DataBuffer* buffer);
+ //----------------------------------------------------------------------------------------------------------
+
+ LUAX_DECL_SINGLETON(ResourceManager);
+
};
}
diff --git a/source/libs/asura-lib-utils/scripting/luax.hpp b/source/libs/asura-lib-utils/scripting/luax.hpp
deleted file mode 100644
index cca26e2..0000000
--- a/source/libs/asura-lib-utils/scripting/luax.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __ASURA_ENGINE_LUAX_H__
-#define __ASURA_ENGINE_LUAX_H__
-
-///
-/// Scripting with Lua.
-///
-extern "C" {
-#include <Lua51/lua.h>
-#include <Lua51/lauxlib.h>
-}
-#include <Luax/luax.h>
-
-#endif \ No newline at end of file
diff --git a/source/libs/asura-lib-utils/scripting/portable.hpp b/source/libs/asura-lib-utils/scripting/portable.hpp
index 7f780d1..00ede90 100644
--- a/source/libs/asura-lib-utils/scripting/portable.hpp
+++ b/source/libs/asura-lib-utils/scripting/portable.hpp
@@ -3,7 +3,12 @@
#include "../type.h"
-#include "Luax.hpp"
+extern "C"
+{
+ #include <Lua51/lua.h>
+ #include <Lua51/lauxlib.h>
+}
+#include <Luax/luax.h>
namespace AsuraEngine
{
diff --git a/source/libs/asura-lib-utils/type.h b/source/libs/asura-lib-utils/type.h
index 25b52fe..72ed8cc 100644
--- a/source/libs/asura-lib-utils/type.h
+++ b/source/libs/asura-lib-utils/type.h
@@ -11,7 +11,8 @@ namespace AsuraEngine
typedef int8_t int8;
typedef uint8_t uint8;
- typedef uint8 byte;
+ //typedef uint8 byte;
+ typedef char byte;
typedef int16_t int16;
typedef uint16_t uint16;
typedef int32_t int32;
diff --git a/source/libs/asura-lib-utils/utils_module.cpp b/source/libs/asura-lib-utils/utils_module.cpp
index 7fe3612..f025cac 100644
--- a/source/libs/asura-lib-utils/utils_module.cpp
+++ b/source/libs/asura-lib-utils/utils_module.cpp
@@ -9,12 +9,10 @@ namespace AsuraEngine
void UtilsModule::Initialize(Luax::LuaxState& state)
{
LUAX_REGISTER_FACTORY(state, DataBuffer);
-
}
void UtilsModule::Finalize(Luax::LuaxState& state)
{
-
}
} \ No newline at end of file
diff --git a/source/libs/asura-lib-utils/utils_module.h b/source/libs/asura-lib-utils/utils_module.h
index 0b5d076..c4b046b 100644
--- a/source/libs/asura-lib-utils/utils_module.h
+++ b/source/libs/asura-lib-utils/utils_module.h
@@ -9,7 +9,7 @@ namespace AsuraEngine
///
/// Asuraģ
///
- class UtilsModule : public Module
+ class UtilsModule ASURA_FINAL : public Module
{
public:
diff --git a/source/tests/02-luax/main.cpp b/source/tests/02-luax/main.cpp
index f87226e..cd718ac 100644
--- a/source/tests/02-luax/main.cpp
+++ b/source/tests/02-luax/main.cpp
@@ -2,10 +2,11 @@
/// Scripting with Lua.
///
extern "C"{
-#include "Lua51/lua.h"
-#include "Lua51/lauxlib.h"
+#include <Lua51/lua.h>
+#include <Lua51/lauxlib.h>
}
-#include "Luax/luax.h"
+#include <Luax/luax.h>
+
#include "header.h"
#include <iostream>
@@ -114,7 +115,7 @@ int Boy::l_New(lua_State* L)
int Boy::l_GetAge(lua_State* L)
{
LUAX_SETUP(L, "U");
- Boy* self = state.GetLuaUserdata<Boy>(1);
+ Boy* self = state.CheckUserdata<Boy>(1);
state.Push(self->mAge);
return 1;
}
@@ -122,7 +123,7 @@ int Boy::l_GetAge(lua_State* L)
int Boy::l_GetName(lua_State* L)
{
LUAX_SETUP(L, "U");
- Boy* self = state.GetLuaUserdata<Boy>(1);
+ Boy* self = state.CheckUserdata<Boy>(1);
state.Push(self->mName);
return 1;
}
@@ -138,7 +139,7 @@ int Boy::l_Speak(lua_State* L)
{
LUAX_STATE(L);
- Boy* self = state.GetLuaUserdata<Boy>(1);
+ Boy* self = state.CheckUserdata<Boy>(1);
self->PushMemberRef(state, self->mCallbak);
state.Call(0, 1);
return 1;
@@ -148,51 +149,41 @@ int Boy::l_Write(lua_State* L)
{
LUAX_STATE(L);
// self, func
- Boy* self = state.GetLuaUserdata<Boy>(1);
+ Boy* self = state.CheckUserdata<Boy>(1);
self->SetMemberRef(state, self->mCallbak, 2);
return 0;
}
void Boy::RegisterLuaxClass(LuaxState& state)
{
- luaL_Reg regTable[] = {
- // class functions
- { "New", l_New },
- { "GetGender", l_GetGender },
- // members
- { "GetAge", l_GetAge },
- { "GetName", l_GetName },
- { "Write", l_Write },
- { "Speak", l_Speak },
- { 0, 0}
- };
- state.RegisterMethods(regTable);
+ LUAX_REGISTER_METHODS(state,
+ { "New", l_New },/**/
+ { "GetGender", l_GetGender },
+ { "GetAge", l_GetAge },
+ { "GetName", l_GetName },
+ { "Write", l_Write },
+ { "Speak", l_Speak }
+ );
// boyİ
- LuaxEnum EHabits[] = {
- { "Computer", 1},
- { "Buscketball", 2},
- { "Baseball", 3},
- { "Girls", 4},
- {0, 0}
- };
-
- state.RegisterEnum("EHabits", EHabits);
+ LUAX_REGISTER_ENUM(state, "EHabits",
+ { "Computer", 1 },
+ { "Buscketball", 2 },
+ { "Baseball", 3 },
+ { "Girls", 4 }
+ );
}
void Boy::RegisterLuaxPostprocess(LuaxState& state)
{
// boyİ
- LuaxEnum EHabits[] = {
- { "Computer", 1},
- { "Buscketball", 2},
- { "Baseball", 3},
- { "Girls", 4},
- {0, 0}
- };
-
- state.RegisterEnum("EHabits", EHabits);
+ LUAX_REGISTER_ENUM(state, "EHabits",
+ { "Computer", 1 },
+ { "Buscketball", 2 },
+ { "Baseball", 3 },
+ { "Girls", 4 }
+ );
}
//----------------------------------------------------------------------------------------------------------------