From ecd7883521cbde02f4f1a6b23a7b3b601c32dbef Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 29 Jul 2019 09:06:09 +0800 Subject: *misc --- Build/Asura.Runner/Asura.Runner.vcxproj | 11 ++- Build/Asura.Runner/Asura.Runner.vcxproj.filters | 17 ++--- Source/Asura.Runner/Runner.cpp | 10 --- Source/Asura.Runner/Runner.h | 17 +++-- Source/Asura.Runner/runner.cpp | 10 --- Source/Asura.Runner/runner.h | 17 +++-- bin/win64/01-window.exe | Bin 1461248 -> 1461248 bytes build/Asura.Runner/Asura.Runner.vcxproj | 11 ++- build/Asura.Runner/Asura.Runner.vcxproj.filters | 17 ++--- build/external/Luax/Luax.vcxproj | 1 + build/external/Luax/Luax.vcxproj.filters | 1 + build/modules/asura-core/asura-core.vcxproj | 26 ++----- .../modules/asura-core/asura-core.vcxproj.filters | 78 ++++++-------------- source/Asura.Runner/main.cpp | 15 ++++ source/Asura.Runner/runner.cpp | 10 --- source/Asura.Runner/runner.h | 17 +++-- source/external/Luax/luax_class.hpp | 79 +------------------- source/external/Luax/luax_utility.h | 66 +++++++++++++++++ source/modules/asura-core/graphics/canvas.cpp | 12 +-- source/modules/asura-core/graphics/canvas.h | 2 +- source/modules/asura-core/graphics/image.cpp | 10 +-- source/modules/asura-core/graphics/texture.cpp | 14 ++-- source/modules/asura-core/graphics/texture.h | 19 ++--- source/modules/asura-core/graphics/vertex_buffer.h | 3 +- source/modules/asura-core/input/button.h | 32 ++++++++ source/modules/asura-core/input/clipboard.h | 35 --------- source/modules/asura-core/input/cursor.cpp | 0 source/modules/asura-core/input/cursor.h | 81 --------------------- .../modules/asura-core/input/cursor_impl_sdl.cpp | 0 source/modules/asura-core/input/cursor_impl_sdl.h | 0 source/modules/asura-core/input/equeue.cpp | 28 ------- source/modules/asura-core/input/equeue.h | 51 ------------- source/modules/asura-core/input/equeue_impl_sdl.h | 0 .../modules/asura-core/input/equeue_impl_win32.h | 0 source/modules/asura-core/input/event.h | 45 ------------ source/modules/asura-core/input/event_manager.h | 24 ------ source/modules/asura-core/input/input_device.cpp | 0 source/modules/asura-core/input/input_device.h | 41 +++++++++++ source/modules/asura-core/input/input_device.hpp | 31 -------- source/modules/asura-core/input/input_manager.cpp | 0 source/modules/asura-core/input/input_manager.h | 25 +++++++ source/modules/asura-core/input/joypad.h | 0 source/modules/asura-core/input/joystick_state.h | 0 source/modules/asura-core/input/keyboard.cpp | 0 source/modules/asura-core/input/keyboard.h | 73 ------------------- source/modules/asura-core/input/keyboard_state.h | 39 ++++++++++ source/modules/asura-core/input/mouse.cpp | 0 source/modules/asura-core/input/mouse.h | 63 ---------------- source/modules/asura-core/input/mouse_state.h | 0 source/modules/asura-core/window/window.h | 16 +--- source/tests/win32/common/window.cpp | 0 source/tests/win32/common/window.h | 0 52 files changed, 340 insertions(+), 707 deletions(-) create mode 100644 source/Asura.Runner/main.cpp create mode 100644 source/external/Luax/luax_utility.h create mode 100644 source/modules/asura-core/input/button.h delete mode 100644 source/modules/asura-core/input/cursor.cpp delete mode 100644 source/modules/asura-core/input/cursor.h delete mode 100644 source/modules/asura-core/input/cursor_impl_sdl.cpp delete mode 100644 source/modules/asura-core/input/cursor_impl_sdl.h delete mode 100644 source/modules/asura-core/input/equeue.cpp delete mode 100644 source/modules/asura-core/input/equeue.h delete mode 100644 source/modules/asura-core/input/equeue_impl_sdl.h delete mode 100644 source/modules/asura-core/input/equeue_impl_win32.h delete mode 100644 source/modules/asura-core/input/event.h delete mode 100644 source/modules/asura-core/input/event_manager.h create mode 100644 source/modules/asura-core/input/input_device.cpp create mode 100644 source/modules/asura-core/input/input_device.h delete mode 100644 source/modules/asura-core/input/input_device.hpp create mode 100644 source/modules/asura-core/input/input_manager.cpp create mode 100644 source/modules/asura-core/input/input_manager.h delete mode 100644 source/modules/asura-core/input/joypad.h create mode 100644 source/modules/asura-core/input/joystick_state.h delete mode 100644 source/modules/asura-core/input/keyboard.cpp delete mode 100644 source/modules/asura-core/input/keyboard.h create mode 100644 source/modules/asura-core/input/keyboard_state.h delete mode 100644 source/modules/asura-core/input/mouse.cpp delete mode 100644 source/modules/asura-core/input/mouse.h create mode 100644 source/modules/asura-core/input/mouse_state.h create mode 100644 source/tests/win32/common/window.cpp create mode 100644 source/tests/win32/common/window.h 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 @@ x64 + + + + + + + 15.0 {E21A839A-C7C6-4B83-89FB-C921AEBEA9CD} @@ -76,6 +83,7 @@ Disabled true true + $(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories) @@ -108,14 +116,13 @@ true true true + $(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories) true true - - 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 @@  - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - + + + + + \ 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 -using namespace AsuraEngine; +#include -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 -using namespace AsuraEngine; +#include -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 Binary files a/bin/win64/01-window.exe and b/bin/win64/01-window.exe 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 @@ x64 + + + + + + + 15.0 {E21A839A-C7C6-4B83-89FB-C921AEBEA9CD} @@ -76,6 +83,7 @@ Disabled true true + $(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories) @@ -108,14 +116,13 @@ true true true + $(SolutionDir)..\source\external;$(SolutionDir)..\source\modules;%(AdditionalIncludeDirectories) true true - - 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 @@  - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - + + + + + \ 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 @@ + 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 @@ + 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 @@ - @@ -163,11 +162,8 @@ - - - - - + + @@ -196,7 +192,6 @@ - @@ -216,18 +211,13 @@ + - - - - - - - - - - - + + + + + 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 @@ graphics - - graphics - graphics @@ -128,21 +125,6 @@ input - - input - - - input - - - input - - - input - - - input - image @@ -218,6 +200,12 @@ profiler + + input + + + input + @@ -233,9 +221,6 @@ graphics - - graphics - graphics @@ -296,39 +281,6 @@ input - - input - - - input - - - input - - - input - - - input - - - input - - - input - - - input - - - input - - - input - - - input - image @@ -386,6 +338,24 @@ profiler + + input + + + input + + + input + + + input + + + input + + + input + 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 -using namespace AsuraEngine; +#include -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; \ - 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; \ - 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() -#define LUAX_REGISTER_SINGLETON(state, param) state.RegisterSingleton() -#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(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; \ + 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; \ + 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() +#define LUAX_REGISTER_SINGLETON(state, param) state.RegisterSingleton() +#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(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 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 - { - 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.cpp b/source/modules/asura-core/input/cursor.cpp deleted file mode 100644 index e69de29..0000000 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 - -#include - -#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 - { - 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/cursor_impl_sdl.cpp b/source/modules/asura-core/input/cursor_impl_sdl.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/source/modules/asura-core/input/cursor_impl_sdl.h b/source/modules/asura-core/input/cursor_impl_sdl.h deleted file mode 100644 index e69de29..0000000 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 - -#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/equeue_impl_sdl.h b/source/modules/asura-core/input/equeue_impl_sdl.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/modules/asura-core/input/equeue_impl_win32.h b/source/modules/asura-core/input/equeue_impl_win32.h deleted file mode 100644 index e69de29..0000000 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/input_device.cpp b/source/modules/asura-core/input/input_device.cpp new file mode 100644 index 0000000..e69de29 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 +#include +#include + +#include "../core_config.h" + +#include "keyboard_state.h" + +namespace AsuraEngine +{ + namespace Input + { + + /// ͬƽ̨̳ಢʵhandleӿ + ASURA_ABSTRACT class InputDevice : public Singleton + { + 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 -#include - -#include "../core_config.h" - -namespace AsuraEngine -{ - namespace Input - { - - /// - /// 豸һ - /// - template - ASURA_ABSTRACT class InputDevice - : virtual public Scripting::Portable - , virtual public Singleton - { - public: - InputDevice(); - virtual ~InputDevice(); - - }; - - } -} - -#endif \ No newline at end of file diff --git a/source/modules/asura-core/input/input_manager.cpp b/source/modules/asura-core/input/input_manager.cpp new file mode 100644 index 0000000..e69de29 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 +#include + +namespace AsuraEngine +{ + namespace Input + { + + /// ߼ + class InputManager : public Singleton + { + public : + + + private : + + }; + + } +} + +#endif \ No newline at end of file diff --git a/source/modules/asura-core/input/joypad.h b/source/modules/asura-core/input/joypad.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/modules/asura-core/input/joystick_state.h b/source/modules/asura-core/input/joystick_state.h new file mode 100644 index 0000000..e69de29 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 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 -// -//#include "InputDevice.hpp" -//#include "Scripting/Portable.h" -// -//namespace AsuraEngine -//{ -// namespace Input -// { -// -// class Keyboard ASURA_FINAL : public InputDevice -// { -// public: -// -// // صö -// #include "keys.h" -// -// Keyboard(); -// -// void SetKeyRepeat(bool enable); -// bool HasKeyRepeat() const; -// bool IsDown(const std::vector &keylist) const; -// bool IsScancodeDown(const std::vector &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 + +#include "button.h" + +namespace AsuraEngine +{ + namespace Input + { + + typedef std::vector