From 5972a5864890fe92f7645dec1424d31b2a5da03c Mon Sep 17 00:00:00 2001 From: hyzboy Date: Fri, 23 Aug 2019 11:17:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86platform=E6=94=B9=E4=B8=BA=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=8B=AC=E7=AB=8B=E7=9A=84CMPlatform?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 + CMCMakeModule | 2 +- CMCore | 2 +- CMPlatform | 1 + CMakeLists.txt | 18 +-- inc/hgl/platform/InputDevice.h | 207 --------------------------------- inc/hgl/platform/Window.h | 129 -------------------- 7 files changed, 10 insertions(+), 352 deletions(-) create mode 160000 CMPlatform delete mode 100644 inc/hgl/platform/InputDevice.h delete mode 100644 inc/hgl/platform/Window.h diff --git a/.gitmodules b/.gitmodules index 9296a04e..677ae9a5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "CMCore"] path = CMCore url = https://github.com/hyzboy/CMCore +[submodule "CMPlatform"] + path = CMPlatform + url = https://github.com/hyzboy/CMPlatform diff --git a/CMCMakeModule b/CMCMakeModule index f88928d9..93bacd08 160000 --- a/CMCMakeModule +++ b/CMCMakeModule @@ -1 +1 @@ -Subproject commit f88928d976216b21f3318fb9b1a3256ca4365b41 +Subproject commit 93bacd082e14bdfb1f28f77dd281ead8d8383f2b diff --git a/CMCore b/CMCore index 5f7d37a9..6c488320 160000 --- a/CMCore +++ b/CMCore @@ -1 +1 @@ -Subproject commit 5f7d37a9668746ecb063e9972e98257f6c9de3e0 +Subproject commit 6c4883202b3d53c3278df953c3149acee7da0e2a diff --git a/CMPlatform b/CMPlatform new file mode 160000 index 00000000..f768bbec --- /dev/null +++ b/CMPlatform @@ -0,0 +1 @@ +Subproject commit f768bbec4b0f0158c70508f93348b2d39fda15d4 diff --git a/CMakeLists.txt b/CMakeLists.txt index 44b68e3c..3821027c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,36 +6,26 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMCMakeModule) +include(vulkan) + include(math) use_mgl(${CMAKE_CURRENT_SOURCE_DIR}/3rdpty/MathGeoLib) include(use_cm_module) use_cm_module(Core) - -include(FindVulkan) +use_cm_module(Platform) if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DWIN32_LEAN_AND_MEAN) - - include_directories(${Vulkan_INCLUDE_DIRS}) - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdpty/jsoncpp/include) add_subdirectory(3rdpty/jsoncpp) -elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") - add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR) -elseif(UNIX) - add_definitions(-DVK_USE_PLATFORM_XCB_KHR) - SET(RENDER_LIBRARY xcb) -else() - message(FATAL_ERROR "Unsupported Platform!") ENDIF() SET(ULRE CMCore + CMPlatform ULRE.Util ULRE.Shader ULRE.RenderDevice.Vulkan ULRE.SceneGraph - ULRE.Platform MathGeoLib spirv-cross-core SPIRV diff --git a/inc/hgl/platform/InputDevice.h b/inc/hgl/platform/InputDevice.h deleted file mode 100644 index 382d256f..00000000 --- a/inc/hgl/platform/InputDevice.h +++ /dev/null @@ -1,207 +0,0 @@ -#ifndef HGL_INPUT_DEVICE_INCLUDE -#define HGL_INPUT_DEVICE_INCLUDE - -namespace hgl -{ - /** - * 鼠标状态枚举定义 - */ - enum MouseButton - { - mbMove =0x00000001, ///<鼠标移动了 - - mbLeft =0x00000002, ///<鼠标左键处于按下状态 - mbMid =0x00000004, ///<鼠标中键处于按下状态 - mbRight =0x00000008, ///<鼠标右键处于按下状态 - - mbX1 =0x00000010, - mbX2 =0x00000020, - - mbShift =0x10000000, /// -#include -#include - -namespace hgl -{ - class Window - { - VK_NAMESPACE::Device *device; - virtual VkSurfaceKHR CreateSurface(VkInstance)=0; - - protected: - - uint width,height; - bool full_screen; - - OSString win_name; - - bool active; - bool is_close; - bool is_min; - - bool key_push[kbRangeSize]; - - protected: - - virtual bool MessageProc()=0; - virtual bool WaitMessage()=0; - - public: - - virtual void ProcMouseMove (int x,int y) {SafeCallEvent(OnMouseMove, (x,y));} - virtual void ProcMouseWheel (int v,int h,uint mb) {SafeCallEvent(OnMouseWheel, (v,h,mb));} - virtual void ProcMouseDown (int x,int y,uint mb) {SafeCallEvent(OnMouseDown, (x,y,mb));} - virtual void ProcMouseUp (int x,int y,uint mb) {SafeCallEvent(OnMouseUp, (x,y,mb));} - virtual void ProcMouseDblClick (int x,int y,uint mb) {SafeCallEvent(OnMouseDblClick, (x,y,mb));} - - //virtual void ProcJoystickDown (uint); - //virtual void ProcJoystickPress (uint); - //virtual void ProcJoystickUp (uint); - - virtual void ProcKeyDown (KeyboardButton); - virtual void ProcKeyPress (KeyboardButton kb){SafeCallEvent(OnKeyPress,(kb));} - virtual void ProcKeyUp (KeyboardButton); - - virtual void ProcChar (os_char ch){SafeCallEvent(OnChar,(ch));} - - virtual void ProcResize (uint,uint); - - virtual void ProcActive (bool); - virtual void ProcClose (); - - public: - - uint GetWidth()const{return width;} - uint GetHeight()const{return height;} - - public: - - DefEvent(void,OnMouseMove ,(int,int)); - DefEvent(void,OnMouseWheel ,(int,int,uint)); - DefEvent(void,OnMouseDown ,(int,int,uint)); - DefEvent(void,OnMouseUp ,(int,int,uint)); - DefEvent(void,OnMouseDblClick ,(int,int,uint)); - - //DefEvent(void,OnJoystickDown ,(uint)); - //DefEvent(void,OnJoystickPress ,(uint)); - //DefEvent(void,OnJoystickUp ,(uint)); - - DefEvent(void,OnKeyDown ,(KeyboardButton)); - DefEvent(void,OnKeyPress,(KeyboardButton)); - DefEvent(void,OnKeyUp ,(KeyboardButton)); - - DefEvent(void,OnChar ,(os_char)); - - DefEvent(void,OnResize ,(uint,uint)); - - DefEvent(void,OnActive ,(bool)); - DefEvent(void,OnClose ,()); - - public: - - Window(const OSString &wn) - { - device=nullptr; - width=height=0; - full_screen=false; - win_name=wn; - active=false; - is_close=true; - is_min=false; - hgl_zero(key_push); - } - virtual ~Window(); - - virtual bool Create(uint,uint)=0; - virtual bool Create(uint,uint,uint)=0; - virtual void Close()=0; - - bool IsMin()const{return is_min;} - bool IsClose()const{return is_close;} - bool IsVisible()const{return (!is_close)&&width&&height;} - - virtual void SetCaption(const OSString &)=0; - - virtual void Show()=0; - virtual void Hide()=0; - - virtual void ToMinWindow()=0; - virtual void ToMaxWindow()=0; - - virtual void SetSystemCursor(bool){} - - virtual bool Update(); - - public: - - VK_NAMESPACE::Device * CreateRenderDevice(VK_NAMESPACE::Instance *,const VK_NAMESPACE::PhysicalDevice *pd=nullptr); - void CloseRenderDevice(); - };//class Window - - Window *CreateRenderWindow(const OSString &win_name); - - void InitNativeWindowSystem(); -}//namespace hgl -#endif//HGL_GRAPH_WINDOW_INCLUDE