diff options
author | chai <chaifix@163.com> | 2019-07-29 09:06:09 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-07-29 09:06:09 +0800 |
commit | ecd7883521cbde02f4f1a6b23a7b3b601c32dbef (patch) | |
tree | 37d94224896ea6a27777f67d31ec8d71cbfc91f9 | |
parent | 7894c2971626f9560b4ec77a1ce5a9a64a4f3810 (diff) |
*misc
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 Binary files differindex e8d3928..d504084 100644 --- a/bin/win64/01-window.exe +++ b/bin/win64/01-window.exe 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, ¤t_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, ¤t_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, ¤t_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 |