diff options
author | chai <chaifix@163.com> | 2019-08-06 09:14:11 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-06 09:14:11 +0800 |
commit | 9686368e58e25cbd6dc37d686bdd2be3f80486d6 (patch) | |
tree | b4887373c33f29a0e837420042a8c84d98bdba49 /source | |
parent | 7638df1ed1f0f314d78bd42e0aba084ba14ade0a (diff) |
*misc
Diffstat (limited to 'source')
21 files changed, 320 insertions, 197 deletions
diff --git a/source/Asura.Editor/Config.h b/source/Asura.Editor/Config.h deleted file mode 100644 index e69de29..0000000 --- a/source/Asura.Editor/Config.h +++ /dev/null diff --git a/source/Asura.Editor/Configure/BuildConfigure.h b/source/Asura.Editor/Configure/BuildConfigure.h new file mode 100644 index 0000000..6fd3aad --- /dev/null +++ b/source/Asura.Editor/Configure/BuildConfigure.h @@ -0,0 +1,8 @@ +// Copy to asura-configure folder + +#ifndef _ASURA_EDITOR_CONFIGURE_H_ +#define _ASURA_EDITOR_CONFIGURE_H_ + +#define ASURA_EDITOR 1 + +#endif
\ No newline at end of file diff --git a/source/Asura.Editor/Controls/GUILabel.cpp b/source/Asura.Editor/Controls/GUILabel.cpp index c5741c1..90b277b 100644 --- a/source/Asura.Editor/Controls/GUILabel.cpp +++ b/source/Asura.Editor/Controls/GUILabel.cpp @@ -1,4 +1,4 @@ -#include "gui_button.h" +#include "GUIButton.h" namespace_begin(AsuraEditor) diff --git a/source/Asura.Editor/Core/GUIState.h b/source/Asura.Editor/Core/GUIState.h index 88c9891..0abaf58 100644 --- a/source/Asura.Editor/Core/GUIState.h +++ b/source/Asura.Editor/Core/GUIState.h @@ -19,9 +19,9 @@ private: }; +extern GUIState g_GUIState; namespace_end -#endif - +#endif
\ No newline at end of file diff --git a/source/Asura.Editor/Editor.cpp b/source/Asura.Editor/Editor.cpp index 38e7c26..6ffd789 100644 --- a/source/Asura.Editor/Editor.cpp +++ b/source/Asura.Editor/Editor.cpp @@ -1,5 +1,51 @@ +#include "Editor.h" -int main(int argc, char *argv[]) +#include <vector> + +namespace_begin(AsuraEditor) + +void TranslateAndDispatch(MSG& msg) +{ + //if (g_BatchMode || !TranslateAccelerator(gMainWindow, GetMainMenuAccelerators(), &msg)) + //{ + // ResetGfxDeviceIfNeeded(); + // TranslateMessage(&msg); + // DispatchMessage(&msg); + //} +} + +int MainMessageLoop() { - -}
\ No newline at end of file + MSG msg, lastMsg; + msg.message = WM_NULL; + std::vector<MSG> messages; + PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE); + bool isQuit = msg.message == WM_QUIT; + while (!isQuit) + { + messages.clear(); + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + if (msg.message == WM_INPUT || msg.message == WM_PAINT) + { + + } + + if (msg.message == WM_QUIT) + isQuit = true; + + messages.push_back(msg); + + if (messages.size() > 100) + break; + } + + for (unsigned i = 0; i < messages.size(); ++i) + { + msg = messages[i]; + } + } +} + + +namespace_end
\ No newline at end of file diff --git a/source/Asura.Editor/Editor.h b/source/Asura.Editor/Editor.h index 2f5f8ca..ab91ab7 100644 --- a/source/Asura.Editor/Editor.h +++ b/source/Asura.Editor/Editor.h @@ -2,36 +2,15 @@ #define _ASURA_EDITOR_H_ #include <asura-utils/Scripting/Portable.hpp> +#include <asura-utils/Classes.h> -namespace AsuraEditor -{ - - /// - /// ༭ʵ - /// - class Editor - { - public: +#include <windows.h> - /// - /// ýlua State - /// - Luax::LuaxState& GetLuaxState(); +namespace_begin(AsuraEditor) - private: +int MainMessageLoop(); +void TranslateAndDispatch(MSG& msg); - /// - /// е - /// - Luax::LuaxVM* mEditorVM; - - /// - /// Ϸʱ - /// - Luax::LuaxVM* mRunnerVM; - - }; - -} +namespace_end #endif
\ No newline at end of file diff --git a/source/Asura.Editor/Main.cpp b/source/Asura.Editor/Main.cpp index 207474b..87207f0 100644 --- a/source/Asura.Editor/Main.cpp +++ b/source/Asura.Editor/Main.cpp @@ -1,30 +1,33 @@ -/** - * Copyright (c) 2018-2019 AsuraEngine Team - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software m_ust not be m_isrepresented; you m_ust not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions m_ust be plainly m_arked as such, and m_ust not be - * m_isrepresented as being the original software. - * 3. This notice m_ay not be removed or altered from any source distribution. - **/ +#include <windows.h> -/// -/// ༭ĽͨdirectUIʵ֣Ⱦasura-libϣ¼Ӧͨwin32APIʵ֡ -/// -int main(int argn, char* args[]) -{ +int main(int argn, char* args[]) +{ + bool gotMsg; + MSG msg; + msg.message = WM_NULL; + PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE); + HANDLE hevent = (HANDLE)CreateEvent(NULL, FALSE, FALSE, NULL); + while (WM_QUIT != msg.message) + { + // Use PeekMessage() if the app is active, so we can use idle time to + // render the scene. Else, use GetMessage() to avoid eating CPU time. + //bool dontWaitForMessages = gAppActive || (!gAlreadyClosing && GetPlayerRunInBackground()) || (kPlayerPausing == GetPlayerPause()); + bool dontWaitForMessages = false; + if (dontWaitForMessages) + gotMsg = (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE) != 0); + else + gotMsg = (GetMessage(&msg, NULL, 0U, 0U) != 0); + if (gotMsg) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + else { + // perform main loop + //PerformMainLoop(); + } + } }
\ No newline at end of file diff --git a/source/Asura.Editor/System/Input.cpp b/source/Asura.Editor/System/Input.cpp index e69de29..c10eb3b 100644 --- a/source/Asura.Editor/System/Input.cpp +++ b/source/Asura.Editor/System/Input.cpp @@ -0,0 +1,61 @@ +#include "Input.h" + +namespace_begin(AsuraEditor) + + +Input::Input() +{ +} + +Input::~Input() +{ +} + +bool Input::Open(HWND window) +{ +} + +void Input::Close(void) +{ +} + +bool Input::GetJoystickNames(std::vector<std::string> &names) +{ +} + + +bool Input::Activate(bool active) +{ +} + +bool Input::ToggleFullscreen(bool fullscreen, HWND window) +{ +} + + +bool Input::Process(bool discard) +{ +} + +LRESULT Input::OnKey(HWND window, UINT message, WPARAM wParam, LPARAM lParam) +{ +} + +LRESULT Input::OnInput(HWND window, UINT message, WPARAM wParam, LPARAM lParam) +{ +} + +LRESULT Input::OnDeviceChange(LPCWSTR name, bool add) +{ +} + +bool Input::ConvertPositionToClientAreaCoord(HWND activeWindow, POINT position, AEMath::Vector2f& newPos) +{ +} + +bool Input::UpdateState() +{ + +} + +namespace_end diff --git a/source/Asura.Editor/config.h b/source/Asura.Editor/config.h deleted file mode 100644 index e69de29..0000000 --- a/source/Asura.Editor/config.h +++ /dev/null diff --git a/source/Asura.Editor/editor.cpp b/source/Asura.Editor/editor.cpp index 38e7c26..6ffd789 100644 --- a/source/Asura.Editor/editor.cpp +++ b/source/Asura.Editor/editor.cpp @@ -1,5 +1,51 @@ +#include "Editor.h" -int main(int argc, char *argv[]) +#include <vector> + +namespace_begin(AsuraEditor) + +void TranslateAndDispatch(MSG& msg) +{ + //if (g_BatchMode || !TranslateAccelerator(gMainWindow, GetMainMenuAccelerators(), &msg)) + //{ + // ResetGfxDeviceIfNeeded(); + // TranslateMessage(&msg); + // DispatchMessage(&msg); + //} +} + +int MainMessageLoop() { - -}
\ No newline at end of file + MSG msg, lastMsg; + msg.message = WM_NULL; + std::vector<MSG> messages; + PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE); + bool isQuit = msg.message == WM_QUIT; + while (!isQuit) + { + messages.clear(); + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + if (msg.message == WM_INPUT || msg.message == WM_PAINT) + { + + } + + if (msg.message == WM_QUIT) + isQuit = true; + + messages.push_back(msg); + + if (messages.size() > 100) + break; + } + + for (unsigned i = 0; i < messages.size(); ++i) + { + msg = messages[i]; + } + } +} + + +namespace_end
\ No newline at end of file diff --git a/source/Asura.Editor/editor.h b/source/Asura.Editor/editor.h index 2f5f8ca..ab91ab7 100644 --- a/source/Asura.Editor/editor.h +++ b/source/Asura.Editor/editor.h @@ -2,36 +2,15 @@ #define _ASURA_EDITOR_H_ #include <asura-utils/Scripting/Portable.hpp> +#include <asura-utils/Classes.h> -namespace AsuraEditor -{ - - /// - /// ༭ʵ - /// - class Editor - { - public: +#include <windows.h> - /// - /// ýlua State - /// - Luax::LuaxState& GetLuaxState(); +namespace_begin(AsuraEditor) - private: +int MainMessageLoop(); +void TranslateAndDispatch(MSG& msg); - /// - /// е - /// - Luax::LuaxVM* mEditorVM; - - /// - /// Ϸʱ - /// - Luax::LuaxVM* mRunnerVM; - - }; - -} +namespace_end #endif
\ No newline at end of file diff --git a/source/Asura.Editor/main.cpp b/source/Asura.Editor/main.cpp index 207474b..87207f0 100644 --- a/source/Asura.Editor/main.cpp +++ b/source/Asura.Editor/main.cpp @@ -1,30 +1,33 @@ -/** - * Copyright (c) 2018-2019 AsuraEngine Team - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software m_ust not be m_isrepresented; you m_ust not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions m_ust be plainly m_arked as such, and m_ust not be - * m_isrepresented as being the original software. - * 3. This notice m_ay not be removed or altered from any source distribution. - **/ +#include <windows.h> -/// -/// ༭ĽͨdirectUIʵ֣Ⱦasura-libϣ¼Ӧͨwin32APIʵ֡ -/// -int main(int argn, char* args[]) -{ +int main(int argn, char* args[]) +{ + bool gotMsg; + MSG msg; + msg.message = WM_NULL; + PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE); + HANDLE hevent = (HANDLE)CreateEvent(NULL, FALSE, FALSE, NULL); + while (WM_QUIT != msg.message) + { + // Use PeekMessage() if the app is active, so we can use idle time to + // render the scene. Else, use GetMessage() to avoid eating CPU time. + //bool dontWaitForMessages = gAppActive || (!gAlreadyClosing && GetPlayerRunInBackground()) || (kPlayerPausing == GetPlayerPause()); + bool dontWaitForMessages = false; + if (dontWaitForMessages) + gotMsg = (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE) != 0); + else + gotMsg = (GetMessage(&msg, NULL, 0U, 0U) != 0); + if (gotMsg) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + else { + // perform main loop + //PerformMainLoop(); + } + } }
\ No newline at end of file diff --git a/source/modules/asura-base/BuildConfigure.h b/source/modules/asura-base/BuildConfigure.h new file mode 100644 index 0000000..6fd3aad --- /dev/null +++ b/source/modules/asura-base/BuildConfigure.h @@ -0,0 +1,8 @@ +// Copy to asura-configure folder + +#ifndef _ASURA_EDITOR_CONFIGURE_H_ +#define _ASURA_EDITOR_CONFIGURE_H_ + +#define ASURA_EDITOR 1 + +#endif
\ No newline at end of file diff --git a/source/modules/asura-base/Config.h b/source/modules/asura-base/Configure.h index 024ac79..07926d0 100644 --- a/source/modules/asura-base/Config.h +++ b/source/modules/asura-base/Configure.h @@ -1,13 +1,7 @@ -#ifndef __ASURA_BASE_CONFIG_H__ -#define __ASURA_BASE_CONFIG_H__ +#ifndef _ASURA_BASE_CONFIG_H_ +#define _ASURA_BASE_CONFIG_H_ -// ڱ༭»Ĵ -#define ASURA_EDITOR 1 - -// ʱеĴ -#define ASURA_RUNTIME 1 - -//--------------------------------------------------------------------------------// +#include "BuildConfigure.h" #ifndef ASSERT #ifdef NDEBUG @@ -22,8 +16,6 @@ #endif #endif -//--------------------------------------------------------------------------------// - #ifdef _WIN32 #define ASURA_FINAL final #define ASURA_EXPORT __declspec(dllexport) @@ -52,13 +44,10 @@ #define ASURA_DEBUG 0 -//--------------------------------------------------------------------------------// - #define ASURA_SDL_HOST 1 #define ASURA_LITTLE_ENDIAN 1 -//--------------------------------------------------------------------------------// // չؼ #define ASURA_THROW(ex) throw(ex) // ʾ׳쳣 diff --git a/source/modules/asura-base/config.h b/source/modules/asura-base/config.h deleted file mode 100644 index 024ac79..0000000 --- a/source/modules/asura-base/config.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __ASURA_BASE_CONFIG_H__ -#define __ASURA_BASE_CONFIG_H__ - -// ڱ༭»Ĵ -#define ASURA_EDITOR 1 - -// ʱеĴ -#define ASURA_RUNTIME 1 - -//--------------------------------------------------------------------------------// - -#ifndef ASSERT -#ifdef NDEBUG -#define ASSERT(x) { false ? (void)(x) : (void)0; } -#else -#ifdef _WIN32 -#define ASURA_DEBUG_BREAK() __debugbreak() -#else -#define ASURA_DEBUG_BREAK() raise(SIGTRAP) -#endif -#define ASSERT(x) do { const volatile bool asura_assert_b____ = !(x); if(asura_assert_b____) ASURA_DEBUG_BREAK(); } while (false) -#endif -#endif - -//--------------------------------------------------------------------------------// - -#ifdef _WIN32 - #define ASURA_FINAL final - #define ASURA_EXPORT __declspec(dllexport) - #define ASURA_IMPORT __declspec(dllimport) - #define ASURA_FORCE_INLINE __forceinline - #define ASURA_RESTRICT __restrict - #define ASURA_API ASURA_EXPORT - #define ASURA_ATTRIBUTE_USED - #define ASURA_ABSTRACT - #define ASURA_WINDOWS 1 -#else - #define ASURA_FINAL final - #define ASURA_EXPORT __attribute__((visibility("default"))) - #define ASURA_IMPORT - #define ASURA_FORCE_INLINE __attribute__((always_inline)) inline - #define ASURA_RESTRICT __restrict__ - #define ASURA_ATTRIBUTE_USED __attribute__((used)) - #define ASURA_ABSTRACT - #define ASURA_API ASURA_EXPORT -#endif - -/// -/// ƶָȨ -/// -#define ASURA_MOVE - -#define ASURA_DEBUG 0 - -//--------------------------------------------------------------------------------// - -#define ASURA_SDL_HOST 1 - -#define ASURA_LITTLE_ENDIAN 1 - -//--------------------------------------------------------------------------------// -// չؼ - -#define ASURA_THROW(ex) throw(ex) // ʾ׳쳣 - -#define ASURA_OUT -#define ASURA_REF - -#endif
\ No newline at end of file diff --git a/source/modules/asura-core/Input/InputEvent.h b/source/modules/asura-core/Input/InputEvent.h index 2c5b84b..d7643b6 100644 --- a/source/modules/asura-core/Input/InputEvent.h +++ b/source/modules/asura-core/Input/InputEvent.h @@ -1,16 +1,50 @@ #ifndef _ASURA_ENGINE_INPUT_EVENT_H_ #define _ASURA_ENGINE_INPUT_EVENT_H_ +#include <asura-base/Configure.h> #include <asura-utils/Classes.h> +#include <asura-utils/Math/Vector2.hpp> + +#include <windows.h> +#include <vector> namespace_begin(AsuraEngine) namespace_begin(Input) +// еĿͻ¼̡ػ桢 struct InputEvent { InputEvent(); ~InputEvent(); +#if ASURA_EDITOR + + bool Open(HWND window); + void Close(void); + + bool GetJoystickNames(std::vector<std::string> &names); + + bool Activate(bool active); + bool ToggleFullscreen(bool fullscreen, HWND window); + + bool Process(bool discard); + LRESULT OnKey(HWND window, UINT message, WPARAM wParam, LPARAM lParam); + LRESULT OnInput(HWND window, UINT message, WPARAM wParam, LPARAM lParam); + LRESULT OnDeviceChange(LPCWSTR name, bool add); + + static bool ConvertPositionToClientAreaCoord(HWND activeWindow, POINT position, AEMath::Vector2f& newPos); + +#elif ASURA_RUNNER + + bool Open(); + +#endif + + enum + { + + }; + }; //InputEvent ConvertInputEvent(); diff --git a/source/modules/asura-openal/Audio/Audio.h b/source/modules/asura-openal/Audio/Audio.h index e69de29..b9f718f 100644 --- a/source/modules/asura-openal/Audio/Audio.h +++ b/source/modules/asura-openal/Audio/Audio.h @@ -0,0 +1,18 @@ +#ifndef _ASURA_AUDIO_H_ +#define _ASURA_AUDIO_H_ + +#include <asura-utils/Classes.h> + +namespace_begin(AsuraEngine) +namespace_begin(Audio) + +class Audio +{ + +}; + + +namespace_end +namespace_end + +#endif
\ No newline at end of file diff --git a/source/modules/asura-openal/audio/audio.h b/source/modules/asura-openal/audio/audio.h index e69de29..b9f718f 100644 --- a/source/modules/asura-openal/audio/audio.h +++ b/source/modules/asura-openal/audio/audio.h @@ -0,0 +1,18 @@ +#ifndef _ASURA_AUDIO_H_ +#define _ASURA_AUDIO_H_ + +#include <asura-utils/Classes.h> + +namespace_begin(AsuraEngine) +namespace_begin(Audio) + +class Audio +{ + +}; + + +namespace_end +namespace_end + +#endif
\ No newline at end of file diff --git a/source/modules/asura-utils/Type.h b/source/modules/asura-utils/Type.h index 318145b..5100fa3 100644 --- a/source/modules/asura-utils/Type.h +++ b/source/modules/asura-utils/Type.h @@ -5,7 +5,7 @@ #include <cstdlib> #include <stdint.h> -#include "asura-base/Config.h" +#include "asura-base/Configure.h" namespace AsuraEngine { diff --git a/source/modules/asura-utils/UtilsConfig.h b/source/modules/asura-utils/UtilsConfig.h index 89a605d..df52b13 100644 --- a/source/modules/asura-utils/UtilsConfig.h +++ b/source/modules/asura-utils/UtilsConfig.h @@ -2,7 +2,7 @@ #define _ASURA_UTILS_CONFIG_H_ // ı -#include "asura-base/Config.h" +#include "asura-base/Configure.h" #define ASURA_THREAD_WIN32 1 #define ASURA_THREAD_STD 1 diff --git a/source/modules/asura-utils/type.h b/source/modules/asura-utils/type.h index 318145b..5100fa3 100644 --- a/source/modules/asura-utils/type.h +++ b/source/modules/asura-utils/type.h @@ -5,7 +5,7 @@ #include <cstdlib> #include <stdint.h> -#include "asura-base/Config.h" +#include "asura-base/Configure.h" namespace AsuraEngine { |