summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-06 09:14:11 +0800
committerchai <chaifix@163.com>2019-08-06 09:14:11 +0800
commit9686368e58e25cbd6dc37d686bdd2be3f80486d6 (patch)
treeb4887373c33f29a0e837420042a8c84d98bdba49 /source
parent7638df1ed1f0f314d78bd42e0aba084ba14ade0a (diff)
*misc
Diffstat (limited to 'source')
-rw-r--r--source/Asura.Editor/Config.h0
-rw-r--r--source/Asura.Editor/Configure/BuildConfigure.h8
-rw-r--r--source/Asura.Editor/Controls/GUILabel.cpp2
-rw-r--r--source/Asura.Editor/Core/GUIState.h4
-rw-r--r--source/Asura.Editor/Editor.cpp52
-rw-r--r--source/Asura.Editor/Editor.h33
-rw-r--r--source/Asura.Editor/Main.cpp51
-rw-r--r--source/Asura.Editor/System/Input.cpp61
-rw-r--r--source/Asura.Editor/config.h0
-rw-r--r--source/Asura.Editor/editor.cpp52
-rw-r--r--source/Asura.Editor/editor.h33
-rw-r--r--source/Asura.Editor/main.cpp51
-rw-r--r--source/modules/asura-base/BuildConfigure.h8
-rw-r--r--source/modules/asura-base/Configure.h (renamed from source/modules/asura-base/Config.h)17
-rw-r--r--source/modules/asura-base/config.h69
-rw-r--r--source/modules/asura-core/Input/InputEvent.h34
-rw-r--r--source/modules/asura-openal/Audio/Audio.h18
-rw-r--r--source/modules/asura-openal/audio/audio.h18
-rw-r--r--source/modules/asura-utils/Type.h2
-rw-r--r--source/modules/asura-utils/UtilsConfig.h2
-rw-r--r--source/modules/asura-utils/type.h2
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
{