summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/Asura.sln24
-rw-r--r--bin/win64/01-window.exebin1460224 -> 1461248 bytes
-rw-r--r--build/Asura.sln24
-rw-r--r--build/BUILD/BUILD.vcxproj122
-rw-r--r--build/BUILD/BUILD.vcxproj.filters17
-rw-r--r--build/BUILD/BUILD.vcxproj.user4
-rw-r--r--build/modules/asura-base/asura-base.vcxproj13
-rw-r--r--build/modules/asura-core/asura-core.vcxproj6
-rw-r--r--build/modules/asura-core/asura-core.vcxproj.filters6
-rw-r--r--build/modules/asura-utils/asura-utils.vcxproj2
-rw-r--r--build/modules/asura-utils/asura-utils.vcxproj.filters9
-rw-r--r--build/tools/bindingGen/obj/Debug/bindingGen.csproj.CoreCompileInputs.cache2
-rw-r--r--source/external/Luax/luax_class.hpp44
-rw-r--r--source/modules/asura-core/core_module.cpp2
-rw-r--r--source/modules/asura-core/graphics/canvas.h9
-rw-r--r--source/modules/asura-core/graphics/gfx_device.h26
-rw-r--r--source/modules/asura-core/graphics/image.cpp1
-rw-r--r--source/modules/asura-core/graphics/image.h4
-rw-r--r--source/modules/asura-core/graphics/shader.cpp97
-rw-r--r--source/modules/asura-core/graphics/shader.h9
-rw-r--r--source/modules/asura-core/image/binding/_image_data.cpp2
-rw-r--r--source/modules/asura-core/image/binding/_image_decode_task.cpp2
-rw-r--r--source/modules/asura-core/image/image_data.cpp8
-rw-r--r--source/modules/asura-core/image/image_data.h8
-rw-r--r--source/modules/asura-core/image/image_decode_task.cpp19
-rw-r--r--source/modules/asura-core/image/image_decode_task.h16
-rw-r--r--source/modules/asura-core/image/image_decoder.h2
-rw-r--r--source/modules/asura-core/image/png_decoder.cpp2
-rw-r--r--source/modules/asura-core/image/png_decoder.h2
-rw-r--r--source/modules/asura-core/image/stb_decoder.cpp4
-rw-r--r--source/modules/asura-core/image/stb_decoder.h2
-rw-r--r--source/modules/asura-core/profiler/gpu_profiler.cpp0
-rw-r--r--source/modules/asura-core/profiler/gpu_profiler.h0
-rw-r--r--source/modules/asura-core/window/binding/_window.cpp1
-rw-r--r--source/modules/asura-core/window/window.h4
-rw-r--r--source/modules/asura-core/window/window_impl_sdl.cpp1
-rw-r--r--source/tests/win32/01-window/03_sub_menu.cpp5
37 files changed, 339 insertions, 160 deletions
diff --git a/Build/Asura.sln b/Build/Asura.sln
index cafd6ab..a25b5d5 100644
--- a/Build/Asura.sln
+++ b/Build/Asura.sln
@@ -113,7 +113,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "external\sqlite\s
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-fmod", "modules\asura-fmod\asura-fmod.vcxproj", "{CC451230-39E1-403A-8E1F-C3E7982049E5}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-base", "modules\asura-base\asura-base.vcxproj", "{4C2E4AA5-9AE7-461A-9C09-27D1ED516444}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-base", "modules\asura-base\asura-base.vcxproj", "{E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -627,16 +627,16 @@ Global
{CC451230-39E1-403A-8E1F-C3E7982049E5}.Release|x64.Build.0 = Release|x64
{CC451230-39E1-403A-8E1F-C3E7982049E5}.Release|x86.ActiveCfg = Release|Win32
{CC451230-39E1-403A-8E1F-C3E7982049E5}.Release|x86.Build.0 = Release|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x64.ActiveCfg = Debug|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x64.Build.0 = Debug|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x86.ActiveCfg = Debug|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x86.Build.0 = Debug|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|Any CPU.ActiveCfg = Release|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x64.ActiveCfg = Release|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x64.Build.0 = Release|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x86.ActiveCfg = Release|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x86.Build.0 = Release|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x64.ActiveCfg = Debug|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x64.Build.0 = Debug|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x86.ActiveCfg = Debug|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x86.Build.0 = Debug|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|Any CPU.ActiveCfg = Release|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x64.ActiveCfg = Release|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x64.Build.0 = Release|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x86.ActiveCfg = Release|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -687,7 +687,7 @@ Global
{11619483-427E-490F-9E82-4FED3591E93F} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
{61BF82F8-2802-4852-BF70-21D6F9F44EBB} = {64D4E4B2-4A60-46F4-A500-370EFED4524F}
{CC451230-39E1-403A-8E1F-C3E7982049E5} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {331032D8-F7CC-43E3-A03B-67108767F96B}
diff --git a/bin/win64/01-window.exe b/bin/win64/01-window.exe
index 46a8d05..1b5b0da 100644
--- a/bin/win64/01-window.exe
+++ b/bin/win64/01-window.exe
Binary files differ
diff --git a/build/Asura.sln b/build/Asura.sln
index cafd6ab..a25b5d5 100644
--- a/build/Asura.sln
+++ b/build/Asura.sln
@@ -113,7 +113,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "external\sqlite\s
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-fmod", "modules\asura-fmod\asura-fmod.vcxproj", "{CC451230-39E1-403A-8E1F-C3E7982049E5}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-base", "modules\asura-base\asura-base.vcxproj", "{4C2E4AA5-9AE7-461A-9C09-27D1ED516444}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asura-base", "modules\asura-base\asura-base.vcxproj", "{E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -627,16 +627,16 @@ Global
{CC451230-39E1-403A-8E1F-C3E7982049E5}.Release|x64.Build.0 = Release|x64
{CC451230-39E1-403A-8E1F-C3E7982049E5}.Release|x86.ActiveCfg = Release|Win32
{CC451230-39E1-403A-8E1F-C3E7982049E5}.Release|x86.Build.0 = Release|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x64.ActiveCfg = Debug|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x64.Build.0 = Debug|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x86.ActiveCfg = Debug|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Debug|x86.Build.0 = Debug|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|Any CPU.ActiveCfg = Release|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x64.ActiveCfg = Release|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x64.Build.0 = Release|x64
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x86.ActiveCfg = Release|Win32
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444}.Release|x86.Build.0 = Release|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x64.ActiveCfg = Debug|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x64.Build.0 = Debug|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x86.ActiveCfg = Debug|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Debug|x86.Build.0 = Debug|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|Any CPU.ActiveCfg = Release|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x64.ActiveCfg = Release|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x64.Build.0 = Release|x64
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x86.ActiveCfg = Release|Win32
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -687,7 +687,7 @@ Global
{11619483-427E-490F-9E82-4FED3591E93F} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
{61BF82F8-2802-4852-BF70-21D6F9F44EBB} = {64D4E4B2-4A60-46F4-A500-370EFED4524F}
{CC451230-39E1-403A-8E1F-C3E7982049E5} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
- {4C2E4AA5-9AE7-461A-9C09-27D1ED516444} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
+ {E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1} = {CD115016-E377-4AC1-8595-DB2836CEFE7E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {331032D8-F7CC-43E3-A03B-67108767F96B}
diff --git a/build/BUILD/BUILD.vcxproj b/build/BUILD/BUILD.vcxproj
new file mode 100644
index 0000000..8ee568f
--- /dev/null
+++ b/build/BUILD/BUILD.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>{28C17C22-8C61-439D-A8E0-3ECC2379BBD6}</ProjectGuid>
+ <RootNamespace>BUILD</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/BUILD/BUILD.vcxproj.filters b/build/BUILD/BUILD.vcxproj.filters
new file mode 100644
index 0000000..3c6f4fd
--- /dev/null
+++ b/build/BUILD/BUILD.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/BUILD/BUILD.vcxproj.user b/build/BUILD/BUILD.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/BUILD/BUILD.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/modules/asura-base/asura-base.vcxproj b/build/modules/asura-base/asura-base.vcxproj
index 62a757e..970e6b1 100644
--- a/build/modules/asura-base/asura-base.vcxproj
+++ b/build/modules/asura-base/asura-base.vcxproj
@@ -20,7 +20,7 @@
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
- <ProjectGuid>{4C2E4AA5-9AE7-461A-9C09-27D1ED516444}</ProjectGuid>
+ <ProjectGuid>{E10B78AA-B90E-4BB7-BAAD-0E2E4C4B9BD1}</ProjectGuid>
<RootNamespace>asurabase</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
@@ -39,13 +39,13 @@
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
+ <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
+ <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
@@ -69,7 +69,12 @@
<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>
diff --git a/build/modules/asura-core/asura-core.vcxproj b/build/modules/asura-core/asura-core.vcxproj
index 672e007..ed820fa 100644
--- a/build/modules/asura-core/asura-core.vcxproj
+++ b/build/modules/asura-core/asura-core.vcxproj
@@ -142,8 +142,8 @@
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\canvas.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\color.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\color32.cpp" />
- <ClCompile Include="..\..\..\source\modules\asura-core\graphics\gfx_device.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\gif.cpp" />
+ <ClCompile Include="..\..\..\source\modules\asura-core\graphics\gfx_device.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\image.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\index_buffer.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\matrix_stack.cpp" />
@@ -172,6 +172,7 @@
<ClCompile Include="..\..\..\source\modules\asura-core\mesh\mesh2d_data.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\mesh\mesh2d_handler.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\mesh\obj_handler.cpp" />
+ <ClCompile Include="..\..\..\source\modules\asura-core\profiler\gpu_profiler.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\profiler\stats.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\threading\channel.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\threading\thread_ex.cpp" />
@@ -195,8 +196,8 @@
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\color.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\color32.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\color_palette.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\graphics\gfx_device.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\gif.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\graphics\gfx_device.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\image.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\index_buffer.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\matrix_stack.h" />
@@ -231,6 +232,7 @@
<ClInclude Include="..\..\..\source\modules\asura-core\mesh\mesh2d_data.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\mesh\mesh2d_handler.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\mesh\obj_handler.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\profiler\gpu_profiler.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\profiler\stats.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\threading\channel.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\threading\thread_ex.h" />
diff --git a/build/modules/asura-core/asura-core.vcxproj.filters b/build/modules/asura-core/asura-core.vcxproj.filters
index 51106c7..b5cda13 100644
--- a/build/modules/asura-core/asura-core.vcxproj.filters
+++ b/build/modules/asura-core/asura-core.vcxproj.filters
@@ -215,6 +215,9 @@
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\binding\_gfx_device.cpp">
<Filter>graphics\binding</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\source\modules\asura-core\profiler\gpu_profiler.cpp">
+ <Filter>profiler</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\source\modules\asura-core\application.h" />
@@ -380,6 +383,9 @@
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\gfx_device.h">
<Filter>graphics</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\source\modules\asura-core\profiler\gpu_profiler.h">
+ <Filter>profiler</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\source\modules\asura-core\font\string.inl">
diff --git a/build/modules/asura-utils/asura-utils.vcxproj b/build/modules/asura-utils/asura-utils.vcxproj
index d4dd1b9..3517962 100644
--- a/build/modules/asura-utils/asura-utils.vcxproj
+++ b/build/modules/asura-utils/asura-utils.vcxproj
@@ -122,7 +122,6 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
- <ClCompile Include="..\..\..\source\libs\asura-lib-utils\profiler\memory_leak.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-utils\exceptions\exception.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-utils\io\binding\_compressor.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-utils\io\binding\_data_buffer.cpp" />
@@ -159,7 +158,6 @@
<ClCompile Include="..\..\..\source\modules\asura-utils\utils_module.cpp" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="..\..\..\source\libs\asura-lib-utils\profiler\memory_leak.h" />
<ClInclude Include="..\..\..\source\modules\asura-utils\exceptions\exception.h" />
<ClInclude Include="..\..\..\source\modules\asura-utils\io\compressor.h" />
<ClInclude Include="..\..\..\source\modules\asura-utils\io\data_buffer.h" />
diff --git a/build/modules/asura-utils/asura-utils.vcxproj.filters b/build/modules/asura-utils/asura-utils.vcxproj.filters
index fff909d..3c6d092 100644
--- a/build/modules/asura-utils/asura-utils.vcxproj.filters
+++ b/build/modules/asura-utils/asura-utils.vcxproj.filters
@@ -22,9 +22,6 @@
<Filter Include="threading\binding">
<UniqueIdentifier>{e63982e2-a2ca-4aa2-be11-f98659586c1f}</UniqueIdentifier>
</Filter>
- <Filter Include="profiler">
- <UniqueIdentifier>{be44a97c-e5d0-4262-8b13-a86f7df23590}</UniqueIdentifier>
- </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\source\modules\asura-utils\exceptions\exception.cpp">
@@ -125,9 +122,6 @@
<ClCompile Include="..\..\..\source\modules\asura-utils\threading\conditional.cpp">
<Filter>threading</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\source\libs\asura-lib-utils\profiler\memory_leak.cpp">
- <Filter>profiler</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\source\modules\asura-utils\exceptions\exception.h">
@@ -232,9 +226,6 @@
<Filter>threading</Filter>
</ClInclude>
<ClInclude Include="..\..\..\source\modules\asura-utils\io\renewable.h" />
- <ClInclude Include="..\..\..\source\libs\asura-lib-utils\profiler\memory_leak.h">
- <Filter>profiler</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\source\modules\asura-utils\math\rect.inl">
diff --git a/build/tools/bindingGen/obj/Debug/bindingGen.csproj.CoreCompileInputs.cache b/build/tools/bindingGen/obj/Debug/bindingGen.csproj.CoreCompileInputs.cache
index 93b7e43..c1e0407 100644
--- a/build/tools/bindingGen/obj/Debug/bindingGen.csproj.CoreCompileInputs.cache
+++ b/build/tools/bindingGen/obj/Debug/bindingGen.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-76869cb9eeaafde93fc35e764d87dc7f1f272b2f
+534362588ad2d4462c430a54eb5dee7ab94c0164
diff --git a/source/external/Luax/luax_class.hpp b/source/external/Luax/luax_class.hpp
index c39138d..193ecff 100644
--- a/source/external/Luax/luax_class.hpp
+++ b/source/external/Luax/luax_class.hpp
@@ -19,11 +19,11 @@ namespace Luax
class LuaxVM;
- ///
- /// RegisterLuaxClass עķͳԱö١ȵclass table
- /// LuaxGetFactoryName ùͬʱעʱעΪsingletonͨ
- /// ʱ
- ///
+///
+/// RegisterLuaxClass עķͳԱö١ȵclass table
+/// LuaxGetFactoryName ùͬʱעʱעΪsingletonͨ
+/// ʱ
+///
#define LUAX_DECL_FACTORY(type, ...) \
friend class Luax::LuaxState; \
friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \
@@ -33,18 +33,18 @@ namespace Luax
static const char* GetLuaxClassName() { return #type; };\
static bool IsLuaxClassSingleton() { return false; }
- ///
- /// Ϊij󹤳ʹô˺꣬עһڣעắеãעЩ
- ///
- ///
+///
+/// Ϊij󹤳ʹô˺꣬עһڣעắеãעЩ
+///
+///
#define LUAX_DECL_ABSTRACT_FACTORY() \
static void RegisterLuaxClass(Luax::LuaxState&);\
static void RegisterLuaxPostprocess(Luax::LuaxState&)
- ///
- /// RegisterLuaxClass עķͳԱö١ȵclass table
- /// LuaxGetSingletonName õ
- ///
+///
+/// RegisterLuaxClass עķͳԱö١ȵclass table
+/// LuaxGetSingletonName õ
+///
#define LUAX_DECL_SINGLETON(type, ...) \
friend class Luax::LuaxState; \
friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \
@@ -58,20 +58,20 @@ namespace Luax
#define LUAX_DECL_ENUM(e, under_line_index)
- ///
- /// ʵֵĺꡣһL
- ///
+///
+/// ʵֵĺꡣһL
+///
#define LUAX_IMPL_METHOD(type, f) int type::f(lua_State* L)
- ///
- /// Ӧóʵֵӿڡһstate
- ///
+///
+/// Ӧóʵֵӿڡһstate
+///
#define LUAX_REGISTRY(type) void type::RegisterLuaxClass(Luax::LuaxState& state)
#define LUAX_POSTPROCESS(type) void type::RegisterLuaxPostprocess(Luax::LuaxState& state)
- ///
- /// עĺꡣ֮ǰÿɱ꣬ûluaclastable refûעԡ
- ///
+///
+/// עĺꡣ֮ǰÿɱ꣬ûluaclastable refûעԡ
+///
#define LUAX_REGISTER_FACTORY(state, param) state.RegisterFactory<param>()
#define LUAX_REGISTER_SINGLETON(state, param) state.RegisterSingleton<param>()
#define LUAX_REGISTER_ABSTRACT_FACTORY(state, type) type::RegisterLuaxPostprocess(state)
diff --git a/source/modules/asura-core/core_module.cpp b/source/modules/asura-core/core_module.cpp
index 989ec3e..e91dd8f 100644
--- a/source/modules/asura-core/core_module.cpp
+++ b/source/modules/asura-core/core_module.cpp
@@ -10,7 +10,7 @@ namespace AsuraEngine
{
// Graphics
LUAX_REGISTER_ABSTRACT_FACTORY(state, Texture);
- LUAX_REGISTER_FACTORY(state, Image);
+ LUAX_REGISTER_FACTORY(state, AEGraphics::Image);
// Wnd
LUAX_REGISTER_SINGLETON(state, AEWindow::Window);
// Threading
diff --git a/source/modules/asura-core/graphics/canvas.h b/source/modules/asura-core/graphics/canvas.h
index 49096c7..4175561 100644
--- a/source/modules/asura-core/graphics/canvas.h
+++ b/source/modules/asura-core/graphics/canvas.h
@@ -47,19 +47,10 @@ namespace AsuraEngine
private:
- ///
- /// Frame buffer object id.
- ///
GLuint mFBO;
- ///
- /// 󶨵tex
- ///
GLuint mTex;
- ///
- /// canvasĴС
- ///
uint mWidth, mHeight;
public:
diff --git a/source/modules/asura-core/graphics/gfx_device.h b/source/modules/asura-core/graphics/gfx_device.h
index 5bb8c6a..c93717f 100644
--- a/source/modules/asura-core/graphics/gfx_device.h
+++ b/source/modules/asura-core/graphics/gfx_device.h
@@ -46,14 +46,8 @@ namespace AsuraEngine
GfxDevice();
~GfxDevice();
- ///
- /// óֵ
- ///
int GetParam(GLParams param);
- ///
- /// ʼOpenGLIJڴOpenGL֮󡣴˺עOpenGLĵַ
- ///
bool Init(const AEMath::Recti& viewport);
bool Inited();
@@ -64,12 +58,8 @@ namespace AsuraEngine
void UnuseShader();
Shader* GetShader();
- // Draw call.
void DrawArrays(GLenum mode, GLint first, GLsizei count);
- ///
- /// Matrix stackز
- ///
void SetMatrixMode(MatrixMode mode);
MatrixMode GetMatrixMode();
void PushMatrix();
@@ -87,20 +77,10 @@ namespace AsuraEngine
void SetDrawColor(float r, float g, float b, float a);
Color& GetDrawColor();
- ///
- /// ʾ
- ///
void WipeError();
bool HasError();
GLenum GetError();
- ///
- /// OpenGL3.0Ժû任ӿڡshaderȲﱣһЩOpenGL״̬ע
- /// ƺȫ̵ģҲ˵Asuraֶ֧߳ȾOpenGLĵĴʹһ
- /// İһHDC\ϣڴض̴߳ģOpenGLҲһ
- /// ض̡߳ͬһ̵߳IJͬHDC\ڿԹͬһOpenGLġΪ
- /// дtextuer\shaderhandle
- ///
struct
{
Shader* shader; ///< ǰʹõshader
@@ -113,9 +93,9 @@ namespace AsuraEngine
#if ASURA_GL_PROFILE
struct
{
- uint drawCall; ///< ͳdrawcall
- uint canvasSwitch; ///< лtextureĴ
- uint shaderSwitch; ///< лshaderĴ
+ uint drawCall; ///< ͳdrawcall
+ uint canvasSwitch; ///< лtextureĴ
+ uint shaderSwitch; ///< лshaderĴ
} stats;
#endif
diff --git a/source/modules/asura-core/graphics/image.cpp b/source/modules/asura-core/graphics/image.cpp
index d2f1d7b..42fc2ab 100644
--- a/source/modules/asura-core/graphics/image.cpp
+++ b/source/modules/asura-core/graphics/image.cpp
@@ -7,6 +7,7 @@
#include "gfx_device.h"
using namespace AEIO;
+using namespace AEImage;
namespace AsuraEngine
{
diff --git a/source/modules/asura-core/graphics/image.h b/source/modules/asura-core/graphics/image.h
index 932ca65..8e3e7d3 100644
--- a/source/modules/asura-core/graphics/image.h
+++ b/source/modules/asura-core/graphics/image.h
@@ -44,8 +44,8 @@ namespace AsuraEngine
/// ͼύGPUϢ¹imageʹglTexImage2D
/// ύimageݡ
///
- bool Load(ImageData* decodeData);
- bool Load(ImageData* decodeData, const AEMath::Vector2i& pos);
+ bool Load(AEImage::ImageData* decodeData);
+ bool Load(AEImage::ImageData* decodeData, const AEMath::Vector2i& pos);
uint GetWidth();
uint GetHeight();
diff --git a/source/modules/asura-core/graphics/shader.cpp b/source/modules/asura-core/graphics/shader.cpp
index 866c4da..afd10b0 100644
--- a/source/modules/asura-core/graphics/shader.cpp
+++ b/source/modules/asura-core/graphics/shader.cpp
@@ -21,74 +21,97 @@ namespace AsuraEngine
Shader::~Shader()
{
- if(mVertShader != 0)
- glDeleteShader(mVertShader);
- if(mFragShader != 0)
- glDeleteShader(mFragShader);
- if(mProgram != 0)
- glDeleteProgram(mProgram);
+ if(mVertShader) glDeleteShader(mVertShader);
+ if(mFragShader) glDeleteShader(mFragShader);
+ if(mProgram) glDeleteProgram(mProgram);
}
bool Shader::Load(const string& vert, const string& frag)
{
- GLenum err = GL_NO_ERROR;
- GLint success;
string warnning = "";
- if (mProgram == 0)
+ if (!mProgram)
{
mProgram = glCreateProgram();
- if (mProgram == 0)
+ if (!mProgram)
throw Exception("Cannot create OpenGL shader program.");
}
- if (mVertShader == 0)
+ if (!CompileVertexShader(vert, warnning))
{
- mVertShader = glCreateShader(GL_VERTEX_SHADER);
- if (mVertShader == 0)
- throw Exception("Cannot create OpenGL vertex shader.");
+ throw Exception("Compile vertex shader failed:%s", warnning);
}
- if (mFragShader == 0)
+ if (!CompileFragementShader(frag, warnning))
{
- mFragShader = glCreateShader(GL_FRAGMENT_SHADER);
- if(mFragShader == 0)
- throw Exception("Cannot create OpenGL fragment shader.");
+ throw Exception("Compile fragment shader failed:%s", warnning);
}
- const GLchar* source;
+ glAttachShader(mProgram, mVertShader);
+ glAttachShader(mProgram, mFragShader);
+
+ glLinkProgram(mProgram);
+ GLint success;
+ glGetProgramiv(mProgram, GL_LINK_STATUS, &success);
+ if (success == GL_FALSE)
+ {
+ warnning = GetProgramWarnings();
+ throw Exception("Link shader program failed:\n%s", warnning.c_str());
+ }
+
+ return true;
+ }
+
+ bool Shader::CompileVertexShader(const string& vert, string& outError)
+ {
+ if (!mVertShader)
+ {
+ mVertShader = glCreateShader(GL_VERTEX_SHADER);
+ if (!mVertShader)
+ {
+ outError = "Cannot create OpenGL Vertex shader.";
+ return false;
+ }
+ }
+
+ const GLchar* source = vert.c_str();
+ GLint success;
- // Compile vertex shader.
- source = vert.c_str();
glShaderSource(mVertShader, 1, &source, NULL);
glCompileShader(mVertShader);
glGetShaderiv(mVertShader, GL_COMPILE_STATUS, &success);
if (success == GL_FALSE)
{
- warnning = GetShaderWarnings(mVertShader);
- throw Exception("Compile vertex shader failed:\n%s", warnning.c_str());
+ outError = GetShaderWarnings(mVertShader);
+ return false;
}
- // Compile fragment shader.
+ return true;
+ }
+
+ bool Shader::CompileFragementShader(const string& frag, string& outError)
+ {
+ if (!mFragShader)
+ {
+ mFragShader = glCreateShader(GL_FRAGMENT_SHADER);
+ if (!mFragShader)
+ {
+ outError = "Cannot create OpenGL fragment shader.";
+ return false;
+ }
+ }
+
+ const GLchar* source = frag.c_str();
+ GLint success;
+
source = frag.c_str();
glShaderSource(mFragShader, 1, &source, NULL);
glCompileShader(mFragShader);
glGetShaderiv(mFragShader, GL_COMPILE_STATUS, &success);
if (success == GL_FALSE)
{
- warnning = GetShaderWarnings(mFragShader);
- throw Exception("Compile fragment shader failed:\n%s", warnning.c_str());
- }
-
- // Link program.
- glAttachShader(mProgram, mVertShader);
- glAttachShader(mProgram, mFragShader);
- glLinkProgram(mProgram);
- glGetProgramiv(mProgram, GL_LINK_STATUS, &success);
- if (success == GL_FALSE)
- {
- warnning = GetProgramWarnings();
- throw Exception("Link shader program failed:\n%s", warnning.c_str());
+ outError = GetShaderWarnings(mFragShader);
+ return false;
}
return true;
diff --git a/source/modules/asura-core/graphics/shader.h b/source/modules/asura-core/graphics/shader.h
index b5d866e..f4553ec 100644
--- a/source/modules/asura-core/graphics/shader.h
+++ b/source/modules/asura-core/graphics/shader.h
@@ -45,12 +45,10 @@ namespace AsuraEngine
void OnUse();
void OnUnuse();
- ///
void SetAttribute(int loc, VertexBuffer* vbo, uint offseti = 0, uint stridei = 0, bool normalized = false);
int GetAttributeLocation(const std::string& attribute);
void DisableAttribute(int loc);
- /// Uniform
bool HasUniform(const std::string& uniform);
uint GetUniformLocation(const std::string& uniform);
void SetUniformFloat(uint loc, float value);
@@ -88,15 +86,18 @@ namespace AsuraEngine
LUAX_DECL_METHOD(_SetUniformVector3);
LUAX_DECL_METHOD(_SetUniformVector4);
LUAX_DECL_METHOD(_SetUniformColor);
- /// vertex attributes
+
LUAX_DECL_METHOD(_GetAttributeLocation);
LUAX_DECL_METHOD(_SetAttribute);
LUAX_DECL_METHOD(_DisableAttribute);
- /// uniform
+
LUAX_DECL_METHOD(_SetBuiltInUniforms);
//----------------------------------------------------------------------------//
+ bool CompileVertexShader(const std::string& vert, std::string& outError);
+ bool CompileFragementShader(const std::string& frag, std::string& outError);
+
std::string GetProgramWarnings();
std::string GetShaderWarnings(GLuint shader);
diff --git a/source/modules/asura-core/image/binding/_image_data.cpp b/source/modules/asura-core/image/binding/_image_data.cpp
index ac9473b..1030e93 100644
--- a/source/modules/asura-core/image/binding/_image_data.cpp
+++ b/source/modules/asura-core/image/binding/_image_data.cpp
@@ -9,7 +9,7 @@ using namespace AEIO;
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
LUAX_REGISTRY(ImageData)
diff --git a/source/modules/asura-core/image/binding/_image_decode_task.cpp b/source/modules/asura-core/image/binding/_image_decode_task.cpp
index 76b544b..a0caddf 100644
--- a/source/modules/asura-core/image/binding/_image_decode_task.cpp
+++ b/source/modules/asura-core/image/binding/_image_decode_task.cpp
@@ -4,7 +4,7 @@ using namespace std;
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
LUAX_REGISTRY(ImageDecodeTask)
diff --git a/source/modules/asura-core/image/image_data.cpp b/source/modules/asura-core/image/image_data.cpp
index 1a6d3a2..b35c4b2 100644
--- a/source/modules/asura-core/image/image_data.cpp
+++ b/source/modules/asura-core/image/image_data.cpp
@@ -3,13 +3,15 @@
#include "stb_decoder.h"
#include "image_decoder.h"
+using namespace std;
+
+using namespace AEGraphics;
+
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
- using namespace std;
-
// imagedecoderΪԡ
list<ImageDecoder*> ImageData::ImageDecoders = {
new PNGDecoder(), // png
diff --git a/source/modules/asura-core/image/image_data.h b/source/modules/asura-core/image/image_data.h
index b05507a..c377407 100644
--- a/source/modules/asura-core/image/image_data.h
+++ b/source/modules/asura-core/image/image_data.h
@@ -14,7 +14,7 @@
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
class ImageDecoder;
@@ -36,12 +36,12 @@ namespace AsuraEngine
void Lock();
void Unlock();
- Color GetPixel(uint x, uint y);
+ AEGraphics::Color GetPixel(uint x, uint y);
//----------------------------------------------------------------------------//
uint width, height; // سߴ
- ColorFormat format; // ʽ
+ AEGraphics::ColorFormat format; // ʽ
byte* pixels; //
std::size_t size; // ݳ
@@ -80,6 +80,6 @@ namespace AsuraEngine
}
}
-namespace AEGraphics = AsuraEngine::Graphics;
+namespace AEImage = AsuraEngine::Image;
#endif \ No newline at end of file
diff --git a/source/modules/asura-core/image/image_decode_task.cpp b/source/modules/asura-core/image/image_decode_task.cpp
index e69de29..954749a 100644
--- a/source/modules/asura-core/image/image_decode_task.cpp
+++ b/source/modules/asura-core/image/image_decode_task.cpp
@@ -0,0 +1,19 @@
+#include "image_decode_task.h"
+
+namespace AsuraEngine
+{
+ namespace Image
+ {
+
+ bool ImageDecodeTask::Execute()
+ {
+ return false;
+ }
+
+ void ImageDecodeTask::Invoke(lua_State* invokeThreaad)
+ {
+
+ }
+
+ }
+} \ No newline at end of file
diff --git a/source/modules/asura-core/image/image_decode_task.h b/source/modules/asura-core/image/image_decode_task.h
index 666d00f..fc695fa 100644
--- a/source/modules/asura-core/image/image_decode_task.h
+++ b/source/modules/asura-core/image/image_decode_task.h
@@ -6,7 +6,7 @@
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
class ImageDecodeTask
@@ -14,7 +14,19 @@ namespace AsuraEngine
{
public:
- LUAX_DECL_FACTORY(ImageDecodeTask);
+ ///
+ /// ִɺ󷵻trueûص
+ ///
+ bool Execute() override;
+
+ ///
+ /// ûصinvoke threadص
+ ///
+ void Invoke(lua_State* invokeThreaad) override;
+
+ private:
+
+ LUAX_DECL_FACTORY(ImageDecodeTask, AEThreading::Task);
};
diff --git a/source/modules/asura-core/image/image_decoder.h b/source/modules/asura-core/image/image_decoder.h
index f752826..15efff7 100644
--- a/source/modules/asura-core/image/image_decoder.h
+++ b/source/modules/asura-core/image/image_decoder.h
@@ -7,7 +7,7 @@
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
ASURA_ABSTRACT class ImageDecoder
diff --git a/source/modules/asura-core/image/png_decoder.cpp b/source/modules/asura-core/image/png_decoder.cpp
index 80463d5..a76af80 100644
--- a/source/modules/asura-core/image/png_decoder.cpp
+++ b/source/modules/asura-core/image/png_decoder.cpp
@@ -2,7 +2,7 @@
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
bool PNGDecoder::CanDecode(AEIO::DataBuffer& buffer)
diff --git a/source/modules/asura-core/image/png_decoder.h b/source/modules/asura-core/image/png_decoder.h
index 6377940..24e40c5 100644
--- a/source/modules/asura-core/image/png_decoder.h
+++ b/source/modules/asura-core/image/png_decoder.h
@@ -5,7 +5,7 @@
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
///
diff --git a/source/modules/asura-core/image/stb_decoder.cpp b/source/modules/asura-core/image/stb_decoder.cpp
index b19f28b..add1c13 100644
--- a/source/modules/asura-core/image/stb_decoder.cpp
+++ b/source/modules/asura-core/image/stb_decoder.cpp
@@ -5,9 +5,11 @@
#define STB_IMAGE_IMPLEMENTATION
#include <stb/stb_image.h>
+using namespace AEGraphics;
+
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
bool STBDecoder::CanDecode(IO::DataBuffer& buffer)
diff --git a/source/modules/asura-core/image/stb_decoder.h b/source/modules/asura-core/image/stb_decoder.h
index 76e70c3..ad89214 100644
--- a/source/modules/asura-core/image/stb_decoder.h
+++ b/source/modules/asura-core/image/stb_decoder.h
@@ -5,7 +5,7 @@
namespace AsuraEngine
{
- namespace Graphics
+ namespace Image
{
///
diff --git a/source/modules/asura-core/profiler/gpu_profiler.cpp b/source/modules/asura-core/profiler/gpu_profiler.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/modules/asura-core/profiler/gpu_profiler.cpp
diff --git a/source/modules/asura-core/profiler/gpu_profiler.h b/source/modules/asura-core/profiler/gpu_profiler.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/modules/asura-core/profiler/gpu_profiler.h
diff --git a/source/modules/asura-core/window/binding/_window.cpp b/source/modules/asura-core/window/binding/_window.cpp
index e477408..cff1dd3 100644
--- a/source/modules/asura-core/window/binding/_window.cpp
+++ b/source/modules/asura-core/window/binding/_window.cpp
@@ -4,6 +4,7 @@
using namespace std;
using namespace AEGraphics;
+using namespace AEImage;
namespace AsuraEngine
{
diff --git a/source/modules/asura-core/window/window.h b/source/modules/asura-core/window/window.h
index 61adae1..d0f62c1 100644
--- a/source/modules/asura-core/window/window.h
+++ b/source/modules/asura-core/window/window.h
@@ -48,7 +48,7 @@ namespace AsuraEngine
int x, y; ///< ڳʼ
std::string title; ///<
bool vsync; ///< ֱͬ
- AEGraphics::ImageData* icon; ///< ͼ
+ AEImage::ImageData* icon; ///< ͼ
bool show; ///< Ƿʾ
int flag; ///< ڱ
};
@@ -80,7 +80,7 @@ namespace AsuraEngine
void SetSize(uint width, uint height);
void SetPosition(int x, int y);
void SetTitle(const std::string& title);
- void SetIcon(AEGraphics::ImageData* imgData);
+ void SetIcon(AEImage::ImageData* imgData);
void Show();
void Hide();
diff --git a/source/modules/asura-core/window/window_impl_sdl.cpp b/source/modules/asura-core/window/window_impl_sdl.cpp
index 9554e37..2679bc1 100644
--- a/source/modules/asura-core/window/window_impl_sdl.cpp
+++ b/source/modules/asura-core/window/window_impl_sdl.cpp
@@ -9,6 +9,7 @@
#include "window_impl_sdl.h"
using namespace AEGraphics;
+using namespace AEImage;
namespace AsuraEngine
{
diff --git a/source/tests/win32/01-window/03_sub_menu.cpp b/source/tests/win32/01-window/03_sub_menu.cpp
index e532658..462370f 100644
--- a/source/tests/win32/01-window/03_sub_menu.cpp
+++ b/source/tests/win32/01-window/03_sub_menu.cpp
@@ -13,6 +13,7 @@
using namespace std;
using namespace AEIO;
using namespace AEGraphics;
+using namespace AEImage;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void AddMenus(HWND);
@@ -118,7 +119,7 @@ File* file2;
DataBuffer db(102400);
AEIO::Filesystem* fs;
ImageData* imgdata = new ImageData();
-Image* img;
+AEGraphics::Image* img;
GLint tex;
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam) {
@@ -232,7 +233,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
imgdata->Decode(db);
img->Load(imgdata, {50, 100});
imgdata->Release();
-
+
// shader
shader = new Shader();
shader->Load(vert, frag);