summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-07-29 09:06:09 +0800
committerchai <chaifix@163.com>2019-07-29 09:06:09 +0800
commitecd7883521cbde02f4f1a6b23a7b3b601c32dbef (patch)
tree37d94224896ea6a27777f67d31ec8d71cbfc91f9
parent7894c2971626f9560b4ec77a1ce5a9a64a4f3810 (diff)
*misc
-rw-r--r--Build/Asura.Runner/Asura.Runner.vcxproj11
-rw-r--r--Build/Asura.Runner/Asura.Runner.vcxproj.filters17
-rw-r--r--Source/Asura.Runner/Runner.cpp10
-rw-r--r--Source/Asura.Runner/Runner.h17
-rw-r--r--Source/Asura.Runner/runner.cpp10
-rw-r--r--Source/Asura.Runner/runner.h17
-rw-r--r--bin/win64/01-window.exebin1461248 -> 1461248 bytes
-rw-r--r--build/Asura.Runner/Asura.Runner.vcxproj11
-rw-r--r--build/Asura.Runner/Asura.Runner.vcxproj.filters17
-rw-r--r--build/external/Luax/Luax.vcxproj1
-rw-r--r--build/external/Luax/Luax.vcxproj.filters1
-rw-r--r--build/modules/asura-core/asura-core.vcxproj26
-rw-r--r--build/modules/asura-core/asura-core.vcxproj.filters78
-rw-r--r--source/Asura.Runner/main.cpp15
-rw-r--r--source/Asura.Runner/runner.cpp10
-rw-r--r--source/Asura.Runner/runner.h17
-rw-r--r--source/external/Luax/luax_class.hpp79
-rw-r--r--source/external/Luax/luax_utility.h66
-rw-r--r--source/modules/asura-core/graphics/canvas.cpp12
-rw-r--r--source/modules/asura-core/graphics/canvas.h2
-rw-r--r--source/modules/asura-core/graphics/image.cpp10
-rw-r--r--source/modules/asura-core/graphics/texture.cpp14
-rw-r--r--source/modules/asura-core/graphics/texture.h19
-rw-r--r--source/modules/asura-core/graphics/vertex_buffer.h3
-rw-r--r--source/modules/asura-core/input/button.h32
-rw-r--r--source/modules/asura-core/input/clipboard.h35
-rw-r--r--source/modules/asura-core/input/cursor.h81
-rw-r--r--source/modules/asura-core/input/equeue.cpp28
-rw-r--r--source/modules/asura-core/input/equeue.h51
-rw-r--r--source/modules/asura-core/input/event.h45
-rw-r--r--source/modules/asura-core/input/event_manager.h24
-rw-r--r--source/modules/asura-core/input/input_device.cpp (renamed from source/modules/asura-core/input/cursor.cpp)0
-rw-r--r--source/modules/asura-core/input/input_device.h41
-rw-r--r--source/modules/asura-core/input/input_device.hpp31
-rw-r--r--source/modules/asura-core/input/input_manager.cpp (renamed from source/modules/asura-core/input/cursor_impl_sdl.cpp)0
-rw-r--r--source/modules/asura-core/input/input_manager.h25
-rw-r--r--source/modules/asura-core/input/joystick_state.h (renamed from source/modules/asura-core/input/cursor_impl_sdl.h)0
-rw-r--r--source/modules/asura-core/input/keyboard.cpp0
-rw-r--r--source/modules/asura-core/input/keyboard.h73
-rw-r--r--source/modules/asura-core/input/keyboard_state.h39
-rw-r--r--source/modules/asura-core/input/mouse.cpp0
-rw-r--r--source/modules/asura-core/input/mouse.h63
-rw-r--r--source/modules/asura-core/input/mouse_state.h (renamed from source/modules/asura-core/input/equeue_impl_sdl.h)0
-rw-r--r--source/modules/asura-core/window/window.h16
-rw-r--r--source/tests/win32/common/window.cpp (renamed from source/modules/asura-core/input/equeue_impl_win32.h)0
-rw-r--r--source/tests/win32/common/window.h (renamed from source/modules/asura-core/input/joypad.h)0
46 files changed, 340 insertions, 707 deletions
diff --git a/Build/Asura.Runner/Asura.Runner.vcxproj b/Build/Asura.Runner/Asura.Runner.vcxproj
index 0c18dc5..ecf025b 100644
--- a/Build/Asura.Runner/Asura.Runner.vcxproj
+++ b/Build/Asura.Runner/Asura.Runner.vcxproj
@@ -18,6 +18,13 @@
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\source\Asura.Runner\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Runner\runner.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Runner\runner.h" />
+ </ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{E21A839A-C7C6-4B83-89FB-C921AEBEA9CD}</ProjectGuid>
@@ -76,6 +83,7 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -108,14 +116,13 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
- <ItemGroup>
- </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/Build/Asura.Runner/Asura.Runner.vcxproj.filters b/Build/Asura.Runner/Asura.Runner.vcxproj.filters
index 3c6f4fd..1819f86 100644
--- a/Build/Asura.Runner/Asura.Runner.vcxproj.filters
+++ b/Build/Asura.Runner/Asura.Runner.vcxproj.filters
@@ -1,17 +1,10 @@
<?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>
+ <ClCompile Include="..\..\source\Asura.Runner\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Runner\runner.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Runner\runner.h" />
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/Source/Asura.Runner/Runner.cpp b/Source/Asura.Runner/Runner.cpp
index 47f44ec..e69de29 100644
--- a/Source/Asura.Runner/Runner.cpp
+++ b/Source/Asura.Runner/Runner.cpp
@@ -1,10 +0,0 @@
-#include "Asura.h"
-#include "Runner.h"
-
-void Runner::Run(int argc, char* args[])
-{
-
-
-}
-
-ASURA_RUN(Runner); \ No newline at end of file
diff --git a/Source/Asura.Runner/Runner.h b/Source/Asura.Runner/Runner.h
index 8d1bc49..52f4d65 100644
--- a/Source/Asura.Runner/Runner.h
+++ b/Source/Asura.Runner/Runner.h
@@ -1,16 +1,21 @@
#ifndef __ASURA_RUNNER_H__
#define __ASURA_RUNNER_H__
-#include "Asura.h"
+#include <windows.h>
-using namespace AsuraEngine;
+#include <asura-core/input/input_device.h>
-class Runner : public Application
+namespace AsuraRunner
{
-public:
- void Run(int argc, char* args[]) override;
+ class SDLInputDevice : public AEInput::InputDevice
+ {
+ public:
-};
+
+
+ };
+
+}
#endif \ No newline at end of file
diff --git a/Source/Asura.Runner/runner.cpp b/Source/Asura.Runner/runner.cpp
index 47f44ec..e69de29 100644
--- a/Source/Asura.Runner/runner.cpp
+++ b/Source/Asura.Runner/runner.cpp
@@ -1,10 +0,0 @@
-#include "Asura.h"
-#include "Runner.h"
-
-void Runner::Run(int argc, char* args[])
-{
-
-
-}
-
-ASURA_RUN(Runner); \ No newline at end of file
diff --git a/Source/Asura.Runner/runner.h b/Source/Asura.Runner/runner.h
index 8d1bc49..52f4d65 100644
--- a/Source/Asura.Runner/runner.h
+++ b/Source/Asura.Runner/runner.h
@@ -1,16 +1,21 @@
#ifndef __ASURA_RUNNER_H__
#define __ASURA_RUNNER_H__
-#include "Asura.h"
+#include <windows.h>
-using namespace AsuraEngine;
+#include <asura-core/input/input_device.h>
-class Runner : public Application
+namespace AsuraRunner
{
-public:
- void Run(int argc, char* args[]) override;
+ class SDLInputDevice : public AEInput::InputDevice
+ {
+ public:
-};
+
+
+ };
+
+}
#endif \ No newline at end of file
diff --git a/bin/win64/01-window.exe b/bin/win64/01-window.exe
index e8d3928..d504084 100644
--- a/bin/win64/01-window.exe
+++ b/bin/win64/01-window.exe
Binary files differ
diff --git a/build/Asura.Runner/Asura.Runner.vcxproj b/build/Asura.Runner/Asura.Runner.vcxproj
index 0c18dc5..ecf025b 100644
--- a/build/Asura.Runner/Asura.Runner.vcxproj
+++ b/build/Asura.Runner/Asura.Runner.vcxproj
@@ -18,6 +18,13 @@
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\source\Asura.Runner\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Runner\runner.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Runner\runner.h" />
+ </ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{E21A839A-C7C6-4B83-89FB-C921AEBEA9CD}</ProjectGuid>
@@ -76,6 +83,7 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -108,14 +116,13 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
- <ItemGroup>
- </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/build/Asura.Runner/Asura.Runner.vcxproj.filters b/build/Asura.Runner/Asura.Runner.vcxproj.filters
index 3c6f4fd..1819f86 100644
--- a/build/Asura.Runner/Asura.Runner.vcxproj.filters
+++ b/build/Asura.Runner/Asura.Runner.vcxproj.filters
@@ -1,17 +1,10 @@
<?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>
+ <ClCompile Include="..\..\source\Asura.Runner\main.cpp" />
+ <ClCompile Include="..\..\source\Asura.Runner\runner.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\source\Asura.Runner\runner.h" />
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/build/external/Luax/Luax.vcxproj b/build/external/Luax/Luax.vcxproj
index 638a1a4..b9b130d 100644
--- a/build/external/Luax/Luax.vcxproj
+++ b/build/external/Luax/Luax.vcxproj
@@ -128,6 +128,7 @@
<ClInclude Include="..\..\..\Source\external\Luax\luax_config.h" />
<ClInclude Include="..\..\..\source\external\Luax\luax_globalstate.h" />
<ClInclude Include="..\..\..\source\external\Luax\luax_internal.h" />
+ <ClInclude Include="..\..\..\source\external\Luax\luax_utility.h" />
<ClInclude Include="..\..\..\Source\external\Luax\luax_vm.h" />
<ClInclude Include="..\..\..\Source\external\Luax\luax_enum.h" />
<ClInclude Include="..\..\..\Source\external\Luax\luax_memberref.h" />
diff --git a/build/external/Luax/Luax.vcxproj.filters b/build/external/Luax/Luax.vcxproj.filters
index 9d690cf..afb32e8 100644
--- a/build/external/Luax/Luax.vcxproj.filters
+++ b/build/external/Luax/Luax.vcxproj.filters
@@ -14,6 +14,7 @@
<ClInclude Include="..\..\..\source\external\Luax\luax_internal.h" />
<ClInclude Include="..\..\..\source\external\Luax\luax_globalstate.h" />
<ClInclude Include="..\..\..\source\external\Luax\luax_watchdog.h" />
+ <ClInclude Include="..\..\..\source\external\Luax\luax_utility.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\Source\external\Luax\luax_ref.cpp" />
diff --git a/build/modules/asura-core/asura-core.vcxproj b/build/modules/asura-core/asura-core.vcxproj
index ed820fa..fcb37c4 100644
--- a/build/modules/asura-core/asura-core.vcxproj
+++ b/build/modules/asura-core/asura-core.vcxproj
@@ -142,7 +142,6 @@
<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\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" />
@@ -163,11 +162,8 @@
<ClCompile Include="..\..\..\source\modules\asura-core\image\png_decoder.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\image\stb_decoder.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\input\clipboard.cpp" />
- <ClCompile Include="..\..\..\source\modules\asura-core\input\cursor.cpp" />
- <ClCompile Include="..\..\..\source\modules\asura-core\input\cursor_impl_sdl.cpp" />
- <ClCompile Include="..\..\..\source\modules\asura-core\input\equeue.cpp" />
- <ClCompile Include="..\..\..\source\modules\asura-core\input\keyboard.cpp" />
- <ClCompile Include="..\..\..\source\modules\asura-core\input\mouse.cpp" />
+ <ClCompile Include="..\..\..\source\modules\asura-core\input\input_device.cpp" />
+ <ClCompile Include="..\..\..\source\modules\asura-core\input\input_manager.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\mesh\am2_handler.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\mesh\mesh2d_data.cpp" />
<ClCompile Include="..\..\..\source\modules\asura-core\mesh\mesh2d_handler.cpp" />
@@ -196,7 +192,6 @@
<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\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" />
@@ -216,18 +211,13 @@
<ClInclude Include="..\..\..\source\modules\asura-core\image\image_decode_task.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\image\png_decoder.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\image\stb_decoder.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\button.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\input\clipboard.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\cursor.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\cursor_impl_sdl.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\equeue.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\equeue_impl_sdl.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\equeue_impl_win32.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\event.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\input_device.hpp" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\joypad.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\keyboard.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\mouse.h" />
- <ClInclude Include="..\..\..\source\modules\asura-core\input\event_manager.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\input_device.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\input_manager.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\joystick_state.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\keyboard_state.h" />
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\mouse_state.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\mesh\am2_handler.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\mesh\mesh2d_data.h" />
<ClInclude Include="..\..\..\source\modules\asura-core\mesh\mesh2d_handler.h" />
diff --git a/build/modules/asura-core/asura-core.vcxproj.filters b/build/modules/asura-core/asura-core.vcxproj.filters
index b5cda13..c7b664b 100644
--- a/build/modules/asura-core/asura-core.vcxproj.filters
+++ b/build/modules/asura-core/asura-core.vcxproj.filters
@@ -49,9 +49,6 @@
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\color.cpp">
<Filter>graphics</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\source\modules\asura-core\graphics\gif.cpp">
- <Filter>graphics</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\source\modules\asura-core\graphics\mesh2d.cpp">
<Filter>graphics</Filter>
</ClCompile>
@@ -128,21 +125,6 @@
<ClCompile Include="..\..\..\source\modules\asura-core\input\clipboard.cpp">
<Filter>input</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\source\modules\asura-core\input\cursor.cpp">
- <Filter>input</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\source\modules\asura-core\input\cursor_impl_sdl.cpp">
- <Filter>input</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\source\modules\asura-core\input\keyboard.cpp">
- <Filter>input</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\source\modules\asura-core\input\mouse.cpp">
- <Filter>input</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\source\modules\asura-core\input\equeue.cpp">
- <Filter>input</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\source\modules\asura-core\image\image_data.cpp">
<Filter>image</Filter>
</ClCompile>
@@ -218,6 +200,12 @@
<ClCompile Include="..\..\..\source\modules\asura-core\profiler\gpu_profiler.cpp">
<Filter>profiler</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\source\modules\asura-core\input\input_device.cpp">
+ <Filter>input</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\source\modules\asura-core\input\input_manager.cpp">
+ <Filter>input</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\source\modules\asura-core\application.h" />
@@ -233,9 +221,6 @@
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\color_palette.h">
<Filter>graphics</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\graphics\gif.h">
- <Filter>graphics</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\source\modules\asura-core\graphics\mesh2d.h">
<Filter>graphics</Filter>
</ClInclude>
@@ -296,39 +281,6 @@
<ClInclude Include="..\..\..\source\modules\asura-core\input\clipboard.h">
<Filter>input</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\cursor.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\cursor_impl_sdl.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\equeue.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\equeue_impl_sdl.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\equeue_impl_win32.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\event.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\input_device.hpp">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\joypad.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\keyboard.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\mouse.h">
- <Filter>input</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\source\modules\asura-core\input\event_manager.h">
- <Filter>input</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\source\modules\asura-core\image\image_decoder.h">
<Filter>image</Filter>
</ClInclude>
@@ -386,6 +338,24 @@
<ClInclude Include="..\..\..\source\modules\asura-core\profiler\gpu_profiler.h">
<Filter>profiler</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\input_manager.h">
+ <Filter>input</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\input_device.h">
+ <Filter>input</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\joystick_state.h">
+ <Filter>input</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\keyboard_state.h">
+ <Filter>input</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\mouse_state.h">
+ <Filter>input</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\source\modules\asura-core\input\button.h">
+ <Filter>input</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\source\modules\asura-core\font\string.inl">
diff --git a/source/Asura.Runner/main.cpp b/source/Asura.Runner/main.cpp
new file mode 100644
index 0000000..0ce68b6
--- /dev/null
+++ b/source/Asura.Runner/main.cpp
@@ -0,0 +1,15 @@
+#ifndef __ASURA_RUNNER_MAIN_H__
+#define __ASURA_RUNNER_MAIN_H__
+
+#include "runner.h"
+
+using namespace AsuraRunner;
+
+/// SDL
+int main(int args, char* argv[])
+{
+
+ return 0;
+}
+
+#endif \ No newline at end of file
diff --git a/source/Asura.Runner/runner.cpp b/source/Asura.Runner/runner.cpp
index 47f44ec..e69de29 100644
--- a/source/Asura.Runner/runner.cpp
+++ b/source/Asura.Runner/runner.cpp
@@ -1,10 +0,0 @@
-#include "Asura.h"
-#include "Runner.h"
-
-void Runner::Run(int argc, char* args[])
-{
-
-
-}
-
-ASURA_RUN(Runner); \ No newline at end of file
diff --git a/source/Asura.Runner/runner.h b/source/Asura.Runner/runner.h
index 8d1bc49..52f4d65 100644
--- a/source/Asura.Runner/runner.h
+++ b/source/Asura.Runner/runner.h
@@ -1,16 +1,21 @@
#ifndef __ASURA_RUNNER_H__
#define __ASURA_RUNNER_H__
-#include "Asura.h"
+#include <windows.h>
-using namespace AsuraEngine;
+#include <asura-core/input/input_device.h>
-class Runner : public Application
+namespace AsuraRunner
{
-public:
- void Run(int argc, char* args[]) override;
+ class SDLInputDevice : public AEInput::InputDevice
+ {
+ public:
-};
+
+
+ };
+
+}
#endif \ No newline at end of file
diff --git a/source/external/Luax/luax_class.hpp b/source/external/Luax/luax_class.hpp
index fd9f75a..12eb268 100644
--- a/source/external/Luax/luax_class.hpp
+++ b/source/external/Luax/luax_class.hpp
@@ -13,88 +13,13 @@
#include "luax_memberref.h"
#include "luax_cfunctions.h"
#include "luax_watchdog.h"
+#include "luax_utility.h"
namespace Luax
{
class LuaxVM;
-///
-/// RegisterLuaxClass עķͳԱö١ȵclass table
-/// LuaxGetFactoryName ùͬʱעʱעΪsingletonͨ
-/// ʱ
-///
-#define LUAX_DECL_FACTORY(type, ...) \
- friend class Luax::LuaxState; \
- friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \
- static void RegisterLuaxClass(Luax::LuaxState&); \
- static void RegisterLuaxPostprocess(Luax::LuaxState&); \
- static const char* GetLuaxFactoryName() { return #type; };\
- static const char* GetLuaxClassName() { return #type; };\
- static bool IsLuaxClassSingleton() { return false; }
-
-///
-/// Ϊij󹤳ʹô˺꣬עһڣעắеãעЩ
-///
-///
-#define LUAX_DECL_ABSTRACT_FACTORY() \
- static void RegisterLuaxClass(Luax::LuaxState&);\
- static void RegisterLuaxPostprocess(Luax::LuaxState&)
-
-///
-/// RegisterLuaxClass עķͳԱö١ȵclass table
-/// LuaxGetSingletonName õ
-///
-#define LUAX_DECL_SINGLETON(type, ...) \
- friend class Luax::LuaxState; \
- friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \
- static void RegisterLuaxClass(Luax::LuaxState&); \
- static void RegisterLuaxPostprocess(Luax::LuaxState&); \
- static const char* GetLuaxSingletonName() { return #type; }; \
- static const char* GetLuaxClassName() { return #type; }; \
- static bool IsLuaxClassSingleton() { return true; }
-
-#define LUAX_DECL_METHOD(mtd) static int mtd(lua_State* L)
-
-#define LUAX_DECL_ENUM(e, under_line_index)
-
-///
-/// ʵֵĺꡣһ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)
-
-///
-/// עĺꡣ֮ǰÿɱ꣬û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)
-#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)
-
-#define LUAX_PREPARE(L, T) \
- LUAX_STATE(L); \
- T* self = state.GetUserdata<T>(1);
-
-#define LUAX_INHERIT(state, type) type::RegisterLuaxClass(state)
-
-#define luaxport private
-
-
///
/// ࣬Ϊʵֶ̬ҪЩӿڵⲿҪ̳д֮࣬оͻ
/// öӦʵķע̳дʱʵķʵLuaxNativeClassУʵֻ
@@ -244,9 +169,7 @@ namespace Luax
///
LuaxWeakRef mUserdata;
- ///
/// ͨɾ
- ///
LuaxWatchDog mWatchDog;
#if LUAX_PROFILER
diff --git a/source/external/Luax/luax_utility.h b/source/external/Luax/luax_utility.h
new file mode 100644
index 0000000..79601e0
--- /dev/null
+++ b/source/external/Luax/luax_utility.h
@@ -0,0 +1,66 @@
+#ifndef __LUAX_UTILITY_H__
+#define __LUAX_UTILITY_H__
+
+// nativeӿ
+
+/// RegisterLuaxClass עķͳԱö١ȵclass table LuaxGetFactoryName ù
+/// ͬʱעʱעΪsingletonͨʱ
+#define LUAX_DECL_FACTORY(type, ...) \
+ friend class Luax::LuaxState; \
+ friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \
+ static void RegisterLuaxClass(Luax::LuaxState&); \
+ static void RegisterLuaxPostprocess(Luax::LuaxState&); \
+ static const char* GetLuaxFactoryName() { return #type; };\
+ static const char* GetLuaxClassName() { return #type; };\
+ static bool IsLuaxClassSingleton() { return false; }
+
+/// Ϊij󹤳ʹô˺꣬עһڣעắеãעЩ
+#define LUAX_DECL_ABSTRACT_FACTORY() \
+ static void RegisterLuaxClass(Luax::LuaxState&);\
+ static void RegisterLuaxPostprocess(Luax::LuaxState&)
+
+/// RegisterLuaxClass עķͳԱö١ȵclass table LuaxGetSingletonName õ
+#define LUAX_DECL_SINGLETON(type, ...) \
+ friend class Luax::LuaxState; \
+ friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \
+ static void RegisterLuaxClass(Luax::LuaxState&); \
+ static void RegisterLuaxPostprocess(Luax::LuaxState&); \
+ static const char* GetLuaxSingletonName() { return #type; }; \
+ static const char* GetLuaxClassName() { return #type; }; \
+ static bool IsLuaxClassSingleton() { return true; }
+
+#define LUAX_DECL_METHOD(mtd) static int mtd(lua_State* L)
+
+#define LUAX_DECL_ENUM(e, under_line_index)
+
+/// ʵֵĺꡣһ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)
+
+/// עĺꡣ֮ǰÿɱ꣬û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)
+#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)
+
+#define LUAX_PREPARE(L, T) \
+ LUAX_STATE(L); \
+ T* self = state.GetUserdata<T>(1);
+
+#define LUAX_INHERIT(state, type) type::RegisterLuaxClass(state)
+
+#define luaxport private
+
+#endif \ No newline at end of file
diff --git a/source/modules/asura-core/graphics/canvas.cpp b/source/modules/asura-core/graphics/canvas.cpp
index 0543461..0a17085 100644
--- a/source/modules/asura-core/graphics/canvas.cpp
+++ b/source/modules/asura-core/graphics/canvas.cpp
@@ -15,7 +15,7 @@ namespace AsuraEngine
//GLint current_fbo;
//glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &current_fbo);
//glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
- //glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTex, 0);
+ //glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTexID, 0);
//glBindFramebuffer(GL_FRAMEBUFFER, current_fbo);
}
@@ -27,21 +27,21 @@ namespace AsuraEngine
if (mFBO == 0)
throw Exception("OpenGL glGenFramebuffers cannot generate frame buffer object.");
//
- if (mTex == 0)
+ if (mTexID == 0)
{
- glGenTextures(1, &mTex);
- if (mTex == 0)
+ glGenTextures(1, &mTexID);
+ if (mTexID == 0)
throw Exception("OpenGL glGenTextures cannot generate texture.");
}
GLint current_fbo;
glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &current_fbo);
glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTex, 0);
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mTexID, 0);
glBindFramebuffer(GL_FRAMEBUFFER, current_fbo);
}
GLint current_tex;
glGetIntegerv(GL_TEXTURE_BINDING_2D, &current_tex);
- glBindTexture(GL_TEXTURE_2D, mTex);
+ glBindTexture(GL_TEXTURE_2D, mTexID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glBindTexture(GL_TEXTURE_2D, current_tex);
}
diff --git a/source/modules/asura-core/graphics/canvas.h b/source/modules/asura-core/graphics/canvas.h
index 03326df..e2e713c 100644
--- a/source/modules/asura-core/graphics/canvas.h
+++ b/source/modules/asura-core/graphics/canvas.h
@@ -49,7 +49,7 @@ namespace AsuraEngine
GLuint mFBO;
- GLuint mTex;
+ GLuint mTexID;
uint mWidth, mHeight;
diff --git a/source/modules/asura-core/graphics/image.cpp b/source/modules/asura-core/graphics/image.cpp
index ef01730..1d74d27 100644
--- a/source/modules/asura-core/graphics/image.cpp
+++ b/source/modules/asura-core/graphics/image.cpp
@@ -28,14 +28,14 @@ namespace AsuraEngine
{
if (!imgData) return false;
- if (mTex == 0)
+ if (mTexID == 0)
{
- glGenTextures(1, &mTex);
- if (mTex == 0)
+ glGenTextures(1, &mTexID);
+ if (mTexID == 0)
throw Exception("OpenGL glGenTextures failed.");
}
- glBindTexture(GL_TEXTURE_2D, mTex);
+ glBindTexture(GL_TEXTURE_2D, mTexID);
imgData->Lock();
int width = imgData->width;
int height = imgData->height;
@@ -66,7 +66,7 @@ namespace AsuraEngine
{
if (!imgData) return false;
- glBindTexture(GL_TEXTURE_2D, mTex);
+ glBindTexture(GL_TEXTURE_2D, mTexID);
imgData->Lock();
int width = imgData->width;
int height = imgData->height;
diff --git a/source/modules/asura-core/graphics/texture.cpp b/source/modules/asura-core/graphics/texture.cpp
index 3438334..240a5f8 100644
--- a/source/modules/asura-core/graphics/texture.cpp
+++ b/source/modules/asura-core/graphics/texture.cpp
@@ -8,24 +8,20 @@ namespace AsuraEngine
{
Texture::Texture()
- : mTex(0)
+ : mTexID(0)
{
- // Fix: ҪʱԴ
- //glGenTextures(1, &mTex);
- //if(mTex == 0)
- // throw Exception("Cannot create texture.");
}
Texture::~Texture()
{
// ͷԴ
- if(mTex != 0)
- glDeleteTextures(1, &mTex);
+ if(mTexID != 0)
+ glDeleteTextures(1, &mTexID);
}
GLuint Texture::GetGLTexture() const
{
- return mTex;
+ return mTexID;
}
TextureFormat Texture::ConvertColorFormat(const ColorFormat& colorformat)
@@ -44,7 +40,7 @@ namespace AsuraEngine
t.type = GL_FLOAT;
break;
default:
- ASSERT(false); // cant reach here
+ ASSERT(false);
}
return t;
}
diff --git a/source/modules/asura-core/graphics/texture.h b/source/modules/asura-core/graphics/texture.h
index 7cfddec..e16990c 100644
--- a/source/modules/asura-core/graphics/texture.h
+++ b/source/modules/asura-core/graphics/texture.h
@@ -16,6 +16,7 @@ namespace AsuraEngine
class RenderTarget;
+ /// UVʽ
enum WrapMode
{
WRAP_MODE_REPEAT,
@@ -24,38 +25,32 @@ namespace AsuraEngine
WRAP_MODE_CLAMPTOBORDER,
};
+ /// ˲ģʽ
enum FilterMode
{
FILTER_MODE_NEAREST,
FILTER_MODE_LINEAR,
};
- ///
/// ͼݵɫʽ
- ///
enum ColorFormat
{
COLOR_FORMAT_UNKNOWN,
-
COLOR_FORMAT_RGBA8, ///< RGBA8bits int
COLOR_FORMAT_RGBA32F, ///< RGBA32bits float
};
- ///
/// ʽGPUڲCPUⲿʽ
- ///
struct TextureFormat
{
GLenum internalformat; ///< GPUڲʽ
-
GLenum externalformat; ///< CPUⲿʽ
GLenum type; ///< ⲿʽÿchannelֵ
};
///
- /// 2D࣬2d meshrender targetбʹáTextureȾԭϽǣϷ
- /// ϲԵѿϵΪ׼EditorҲϽΪԭ㣬Ϊ
- /// 㡣
+ /// 2D࣬2d meshrender targetбʹáTextureȾԭϽǣϷϲԵѿ
+ /// ϵΪ׼EditorҲϽΪԭ㣬Ϊ˷㡣
///
ASURA_ABSTRACT class Texture : public AEScripting::Object
{
@@ -74,19 +69,15 @@ namespace AsuraEngine
void GetFilterMode();
void GetWrapMode();
- ///
/// UVfilterΪ
- ///
bool IsGenMipmap();
protected:
- ///
/// תcolor formatΪtexture format
- ///
TextureFormat ConvertColorFormat(const ColorFormat& colorformat);
- GLuint mTex;
+ GLuint mTexID;
FilterMode mMinFilter;
FilterMode mMagFilter;
WrapMode mWrapMode;
diff --git a/source/modules/asura-core/graphics/vertex_buffer.h b/source/modules/asura-core/graphics/vertex_buffer.h
index 83ca4d1..c16c6d2 100644
--- a/source/modules/asura-core/graphics/vertex_buffer.h
+++ b/source/modules/asura-core/graphics/vertex_buffer.h
@@ -11,8 +11,7 @@ namespace AsuraEngine
{
///
- /// frameworkṩ˴Դ滺Ĺܣֱû壬ܶͨ
- /// ֱöݡ
+ /// frameworkṩ˴Դ滺Ĺܣֱû壬ֱܶͨöݡ
///
class VertexBuffer ASURA_FINAL
: public AEScripting::Portable<VertexBuffer>
diff --git a/source/modules/asura-core/input/button.h b/source/modules/asura-core/input/button.h
new file mode 100644
index 0000000..0df8ed2
--- /dev/null
+++ b/source/modules/asura-core/input/button.h
@@ -0,0 +1,32 @@
+#ifndef __BUTTON_H__
+#define __BUTTON_H__
+
+namespace AsuraEngine
+{
+ namespace Input
+ {
+
+ /// keyboard button \ mouse button \ joystick button
+ class Button
+ {
+ public:
+ inline Button(int key, bool state) :
+ key(key),
+ state(state)
+ {
+ }
+
+ inline int GetKey(void) const { return this->key; }
+ inline bool GetState(void) const { return this->state; }
+
+ private:
+ int key;
+ bool state;
+
+ };
+
+ }
+}
+
+
+#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/clipboard.h b/source/modules/asura-core/input/clipboard.h
index 1b7c2b8..e69de29 100644
--- a/source/modules/asura-core/input/clipboard.h
+++ b/source/modules/asura-core/input/clipboard.h
@@ -1,35 +0,0 @@
-#ifndef __ASURA_ENGINE_CLIPBOARD_H__
-#define __ASURA_ENGINE_CLIPBOARD_H__
-
-#include "Text/String.hpp"
-#include "InputDevice.hpp"
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- class Clipboard ASURA_FINAL : public InputDevice<Clipboard>
- {
- public:
-
- Clipboard();
-
- Text::String GetString();
-
- void SetString(const Text::String& text);
-
- private:
-
- ~Clipboard();
-
- luaxport:
-
- LUAX_DECL_SINGLETON(Clipboard);
-
- };
-
- };
-}
-
-#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/cursor.h b/source/modules/asura-core/input/cursor.h
deleted file mode 100644
index e3df7ee..0000000
--- a/source/modules/asura-core/input/cursor.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef __ASURA_ENGINE_CURSOR_H__
-#define __ASURA_ENGINE_CURSOR_H__
-
-#include <SDL2/SDL.h>
-
-#include <asura-utils/scripting/portable.hpp>
-
-#include "../graphics/image_data.h"
-
-#include "input_device.hpp"
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- class CursorImpl;
-
- // Types of system cursors.
- enum SystemCursor
- {
- CURSOR_ARROW,
- CURSOR_IBEAM,
- CURSOR_WAIT,
- CURSOR_CROSSHAIR,
- CURSOR_WAITARROW,
- CURSOR_SIZENWSE,
- CURSOR_SIZENESW,
- CURSOR_SIZEWE,
- CURSOR_SIZENS,
- CURSOR_SIZEALL,
- CURSOR_NO,
- CURSOR_HAND,
- CURSOR_MAX_ENUM
- };
-
- enum CursorType
- {
- CURSORTYPE_SYSTEM,
- CURSORTYPE_IMAGE,
- CURSORTYPE_MAX_ENUM
- };
-
- // ָö
-#include "Cursor.defs"
-
- class Cursor
- : public AEScripting::Portable<Cursor>
- {
- public:
-
- Cursor(Graphics::ImageData& imageData, int hotx, int hoty);
- Cursor(SystemCursor cursortype);
-
- ~Cursor();
-
- SDL_Cursor* GetHandle() const;
- CursorType GetType() const;
- SystemCursor GetSystemType() const;
-
- private:
-
- CursorType mType;
- SystemCursor mSystemType;
- CursorImpl* mImpl;
-
- luaxport:
-
- LUAX_DECL_FACTORY(Cursor);
-
- };
-
- ASURA_ABSTRACT class CursorImpl
- {
-
- };
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/equeue.cpp b/source/modules/asura-core/input/equeue.cpp
deleted file mode 100644
index e165393..0000000
--- a/source/modules/asura-core/input/equeue.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "equeue.h"
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- EQueue::EQueue()
- {
- // try create queue
-
- ASSERT(mImpl);
- }
-
- EQueue::~EQueue()
- {
- if(mImpl)
- delete mImpl;
- }
-
- bool EQueue::Poll(const Event& e)
- {
- ASSERT(mImpl);
- return mImpl->Poll(e);
- }
-
- }
-} \ No newline at end of file
diff --git a/source/modules/asura-core/input/equeue.h b/source/modules/asura-core/input/equeue.h
deleted file mode 100644
index 495c869..0000000
--- a/source/modules/asura-core/input/equeue.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef __ASURA_EQUEUE_H__
-#define __ASURA_EQUEUE_H__
-
-#include <asura-utils/type.h>
-
-#include "event.h"
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- class EQueueImpl;
-
- ///
- /// Event queue.
- ///
- class EQueue
- {
- public:
-
- EQueue();
- ~EQueue();
-
- bool Poll(const Event& e);
-
- private:
-
- EQueueImpl* mImpl;
-
- };
-
- ASURA_ABSTRACT class EQueueImpl
- {
- public:
-
- EQueueImpl() {};
- virtual ~EQueueImpl() {};
-
- ///
- /// Ӳϵͳ¼óһءзtrue,ûзfalseص
- /// װЩͬʵֵ¼ʹͳһתΪAsura event
- ///
- virtual bool Poll(const Event&) = 0;
-
- };
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/event.h b/source/modules/asura-core/input/event.h
deleted file mode 100644
index a24e806..0000000
--- a/source/modules/asura-core/input/event.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef __ASURA_ENGINE_EVENT_H__
-#define __ASURA_ENGINE_EVENT_H__
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- enum EventType
- {
- EVENT_BEGIN_MOUSE__ ,
- EVENT_LEFT_DOWN ,
- EVENT_LEFT_UP ,
- EVENT_LEFT_DCLICK ,
- EVENT_MIDDLE_DOWN ,
- EVENT_MIDDLE_UP ,
- EVENT_MIDDLE_DCLICK ,
- EVENT_RIGHT_DOWN ,
- EVENT_RIGHT_UP ,
- EVENT_RIGHT_DCLICK ,
- EVENT_MOTION ,
- EVENT_END_MOUSE__ ,
- EVENT_ENTER_WINDOW ,
- EVENT_LEAVE_WINDOW ,
- EVENT_MOUSEWHEEL
- };
-
- struct Event
- {
- int type;
- union
- {
- // 갴¼
- struct {
- int id;
- } button;
- };
- };
-
- }
-}
-
-namespace AEInput = AsuraEngine::Input;
-
-#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/event_manager.h b/source/modules/asura-core/input/event_manager.h
deleted file mode 100644
index b81b7ff..0000000
--- a/source/modules/asura-core/input/event_manager.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __ASURA_EVENT_MANANGER_H__
-#define __ASURA_EVENT_MANANGER_H__
-
-#include "equeue.h"
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- class EventManager
- {
- public:
-
- private:
-
- EQueue mQueue;
-
- };
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/cursor.cpp b/source/modules/asura-core/input/input_device.cpp
index e69de29..e69de29 100644
--- a/source/modules/asura-core/input/cursor.cpp
+++ b/source/modules/asura-core/input/input_device.cpp
diff --git a/source/modules/asura-core/input/input_device.h b/source/modules/asura-core/input/input_device.h
new file mode 100644
index 0000000..7082ea3
--- /dev/null
+++ b/source/modules/asura-core/input/input_device.h
@@ -0,0 +1,41 @@
+#ifndef __ASURA_ENGINE_INPUT_BASE_H__
+#define __ASURA_ENGINE_INPUT_BASE_H__
+
+#include <asura-utils/math/vector2.hpp>
+#include <asura-utils/scripting/portable.hpp>
+#include <asura-utils/singleton.hpp>
+
+#include "../core_config.h"
+
+#include "keyboard_state.h"
+
+namespace AsuraEngine
+{
+ namespace Input
+ {
+
+ /// ͬƽ̨̳ಢʵhandleӿ
+ ASURA_ABSTRACT class InputDevice : public Singleton<InputDevice>
+ {
+ protected:
+
+ void OnKeyDown(int key);
+ void OnKeyUp(int key);
+
+ void OnMouseMove(const AEMath::Vector2f& position);
+
+ void OnMouseButtonDown(int key);
+ void OnMouseButtonUp(int key);
+
+ void OnMouseWheel();
+
+ void OnInputChar();
+
+ };
+
+ }
+}
+
+namespace AEInput = AsuraEngine::Input;
+
+#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/input_device.hpp b/source/modules/asura-core/input/input_device.hpp
deleted file mode 100644
index 4d82343..0000000
--- a/source/modules/asura-core/input/input_device.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __ASURA_ENGINE_INPUT_BASE_H__
-#define __ASURA_ENGINE_INPUT_BASE_H__
-
-#include <asura-utils/scripting/portable.hpp>
-#include <asura-utils/singleton.hpp>
-
-#include "../core_config.h"
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- ///
- /// 豸һ
- ///
- template<class T>
- ASURA_ABSTRACT class InputDevice
- : virtual public Scripting::Portable<T>
- , virtual public Singleton<T>
- {
- public:
- InputDevice();
- virtual ~InputDevice();
-
- };
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/cursor_impl_sdl.cpp b/source/modules/asura-core/input/input_manager.cpp
index e69de29..e69de29 100644
--- a/source/modules/asura-core/input/cursor_impl_sdl.cpp
+++ b/source/modules/asura-core/input/input_manager.cpp
diff --git a/source/modules/asura-core/input/input_manager.h b/source/modules/asura-core/input/input_manager.h
new file mode 100644
index 0000000..4597d39
--- /dev/null
+++ b/source/modules/asura-core/input/input_manager.h
@@ -0,0 +1,25 @@
+#ifndef __INPUT_MAMANGER_H__
+#define __INPUT_MAMANGER_H__
+
+#include <asura-utils/scripting/portable.hpp>
+#include <asura-utils/singleton.hpp>
+
+namespace AsuraEngine
+{
+ namespace Input
+ {
+
+ /// ߼
+ class InputManager : public Singleton<InputManager>
+ {
+ public :
+
+
+ private :
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/cursor_impl_sdl.h b/source/modules/asura-core/input/joystick_state.h
index e69de29..e69de29 100644
--- a/source/modules/asura-core/input/cursor_impl_sdl.h
+++ b/source/modules/asura-core/input/joystick_state.h
diff --git a/source/modules/asura-core/input/keyboard.cpp b/source/modules/asura-core/input/keyboard.cpp
deleted file mode 100644
index e69de29..0000000
--- a/source/modules/asura-core/input/keyboard.cpp
+++ /dev/null
diff --git a/source/modules/asura-core/input/keyboard.h b/source/modules/asura-core/input/keyboard.h
deleted file mode 100644
index d1d7b48..0000000
--- a/source/modules/asura-core/input/keyboard.h
+++ /dev/null
@@ -1,73 +0,0 @@
-//#ifndef __ASURA_INPUT_KEYBOARD_H__
-//#define __ASURA_INPUT_KEYBOARD_H__
-//
-//#include <SDL2/SDL.h>
-//
-//#include "InputDevice.hpp"
-//#include "Scripting/Portable.h"
-//
-//namespace AsuraEngine
-//{
-// namespace Input
-// {
-//
-// class Keyboard ASURA_FINAL : public InputDevice<Keyboard>
-// {
-// public:
-//
-// // صö
-// #include "keys.h"
-//
-// Keyboard();
-//
-// void SetKeyRepeat(bool enable);
-// bool HasKeyRepeat() const;
-// bool IsDown(const std::vector<Key> &keylist) const;
-// bool IsScancodeDown(const std::vector<Scancode> &scancodelist) const;
-//
-// Key GetKeyFromScancode(Scancode scancode) const;
-// Scancode GetScancodeFromKey(Key key) const;
-//
-// void SetTextInput(bool enable);
-// void SetTextInput(bool enable, double x, double y, double w, double h);
-// bool HasTextInput() const;
-// bool HasScreenKeyboard() const;
-//
-// bool GetConstant(Scancode in, SDL_Scancode &out);
-// bool GetConstant(SDL_Scancode in, Scancode &out);
-//
-// private:
-//
-// ~Keyboard();
-//
-// public:
-//
-// //----------------------------------------------------------------------------//
-//
-// LUAX_DECL_SINGLETON(Keyboard); // ͨAsuraEngine.KeyboardֱӷʣûNew
-//
-// LUAX_DECL_ENUM(Key);
-// LUAX_DECL_ENUM(ScanCode);
-//
-// LUAX_DECL_METHOD(SetKeyRepeat);
-// LUAX_DECL_METHOD(HasKeyRepeat);
-// LUAX_DECL_METHOD(IsDown);
-// LUAX_DECL_METHOD(IsScancodeDown);
-//
-// LUAX_DECL_METHOD(GetKeyFromScancode);
-// LUAX_DECL_METHOD(GetScancodeFromKey);
-//
-// LUAX_DECL_METHOD(SetTextInput);
-// LUAX_DECL_METHOD(HasTextInput);
-// LUAX_DECL_METHOD(HasScreenKeyboard);
-//
-// LUAX_DECL_METHOD(GetConstant);
-//
-// //----------------------------------------------------------------------------//
-//
-// };
-//
-// }
-//}
-//
-//#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/keyboard_state.h b/source/modules/asura-core/input/keyboard_state.h
new file mode 100644
index 0000000..f6aa5ea
--- /dev/null
+++ b/source/modules/asura-core/input/keyboard_state.h
@@ -0,0 +1,39 @@
+#ifndef __KEYBOARD_STATE_H__
+#define __KEYBOARD_STATE_H__
+
+#include <vector>
+
+#include "button.h"
+
+namespace AsuraEngine
+{
+ namespace Input
+ {
+
+ typedef std::vector<Button> Buttons;
+
+ class KeyboardState
+ {
+ private:
+ Buttons buttons;
+
+ public:
+ inline KeyboardState(void)
+ {
+ this->buttons.reserve(256);
+ }
+
+ inline const Buttons &GetButtons(void) const { return this->buttons; }
+ inline void AddButton(int key, bool state) { this->buttons.push_back(Button(key, state)); }
+
+ void Reset(bool full)
+ {
+ this->buttons.clear();
+ }
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/mouse.cpp b/source/modules/asura-core/input/mouse.cpp
deleted file mode 100644
index e69de29..0000000
--- a/source/modules/asura-core/input/mouse.cpp
+++ /dev/null
diff --git a/source/modules/asura-core/input/mouse.h b/source/modules/asura-core/input/mouse.h
deleted file mode 100644
index 4a5a4ba..0000000
--- a/source/modules/asura-core/input/mouse.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef __ASURA_ENGINE_MOUSE_H__
-#define __ASURA_ENGINE_MOUSE_H__
-
-#include "cursor.h"
-#include "input_device.hpp"
-
-namespace AsuraEngine
-{
- namespace Input
- {
-
- enum MouseButton
- {
- MOUSE_BUTTON_LEFT,
- MOUSE_BUTTON_MIDDLE,
- MOUSE_BUTTON_RIGHT,
- };
-
- class Mouse : public InputDevice<Mouse>
- {
- public:
-
- ///
- /// ͼƬйָʹϵͳָ
- ///
- Cursor *CreateCursor(Graphics::ImageData *data, int hotx, int hoty);
- Cursor *GetSystemCursor(Cursor::SystemCursor cursortype);
-
- void SetCursor(Cursor *cursor);
- void SetCursor() ;
-
- Cursor* GetCursor() const;
-
- bool IsCursorSupported() const;
-
- double GetX() const;
- double GetY() const;
- void GetPosition(double &x, double &y) const;
- void GetX(double x) ;
- void SetY(double y) ;
- void SetPosition(double x, double y) ;
- void SetVisible(bool visible) ;
- bool IsDown(const std::vector<int> &buttons) const;
- bool IsVisible() const;
- void SetGrabbed(bool grab) ;
- bool IsGrabbed() const;
- bool SetRelativeMode(bool relative) ;
- bool GetRelativeMode() const;
-
- //----------------------------------------------------------------------------//
-
- LUAX_DECL_SINGLETON(Mouse);
-
- //----------------------------------------------------------------------------//
-
- private:
-
- };
-
- }
-}
-
-#endif \ No newline at end of file
diff --git a/source/modules/asura-core/input/equeue_impl_sdl.h b/source/modules/asura-core/input/mouse_state.h
index e69de29..e69de29 100644
--- a/source/modules/asura-core/input/equeue_impl_sdl.h
+++ b/source/modules/asura-core/input/mouse_state.h
diff --git a/source/modules/asura-core/window/window.h b/source/modules/asura-core/window/window.h
index d0f62c1..835535d 100644
--- a/source/modules/asura-core/window/window.h
+++ b/source/modules/asura-core/window/window.h
@@ -39,9 +39,7 @@ namespace AsuraEngine
WINDOW_ALWAYS_ON_TOP = 1 << 14, ///< window should always be above others
};
- ///
/// Windowʼ
- ///
struct WindowConfig
{
uint width, height; ///< ߴ
@@ -63,17 +61,13 @@ namespace AsuraEngine
{
public:
- ///
/// ϷʱĴΨһģ༭õࡣ
- ///
LUAX_DECL_SINGLETON(Window);
Window();
~Window();
- ///
/// ڡ
- ///
bool Init(const WindowConfig& config);
void Exit();
@@ -85,9 +79,7 @@ namespace AsuraEngine
void Show();
void Hide();
- ///
/// ǿ˫ĴڣҪչʾǰ̨
- ///
void SwapRenderBuffer();
void Clear(const AEGraphics::Color& col = AEGraphics::Color::Black) override;
@@ -98,7 +90,9 @@ namespace AsuraEngine
private:
- //----------------------------------------------------------------------------//
+ WindowImpl* mImpl;
+
+ luaxport:
LUAX_DECL_ENUM(WindowFlag, 0);
@@ -114,10 +108,6 @@ namespace AsuraEngine
LUAX_DECL_METHOD(_Clear);
LUAX_DECL_METHOD(_Draw);
- //----------------------------------------------------------------------------//
-
- WindowImpl* mImpl;
-
};
using RenderWindow = Window;
diff --git a/source/modules/asura-core/input/equeue_impl_win32.h b/source/tests/win32/common/window.cpp
index e69de29..e69de29 100644
--- a/source/modules/asura-core/input/equeue_impl_win32.h
+++ b/source/tests/win32/common/window.cpp
diff --git a/source/modules/asura-core/input/joypad.h b/source/tests/win32/common/window.h
index e69de29..e69de29 100644
--- a/source/modules/asura-core/input/joypad.h
+++ b/source/tests/win32/common/window.h