将platform改为使用独立的CMPlatform
This commit is contained in:
parent
01e30e0a21
commit
5972a58648
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -16,3 +16,6 @@
|
|||||||
[submodule "CMCore"]
|
[submodule "CMCore"]
|
||||||
path = CMCore
|
path = CMCore
|
||||||
url = https://github.com/hyzboy/CMCore
|
url = https://github.com/hyzboy/CMCore
|
||||||
|
[submodule "CMPlatform"]
|
||||||
|
path = CMPlatform
|
||||||
|
url = https://github.com/hyzboy/CMPlatform
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit f88928d976216b21f3318fb9b1a3256ca4365b41
|
Subproject commit 93bacd082e14bdfb1f28f77dd281ead8d8383f2b
|
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit 5f7d37a9668746ecb063e9972e98257f6c9de3e0
|
Subproject commit 6c4883202b3d53c3278df953c3149acee7da0e2a
|
1
CMPlatform
Submodule
1
CMPlatform
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit f768bbec4b0f0158c70508f93348b2d39fda15d4
|
@ -6,36 +6,26 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMCMakeModule)
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMCMakeModule)
|
||||||
|
|
||||||
|
include(vulkan)
|
||||||
|
|
||||||
include(math)
|
include(math)
|
||||||
use_mgl(${CMAKE_CURRENT_SOURCE_DIR}/3rdpty/MathGeoLib)
|
use_mgl(${CMAKE_CURRENT_SOURCE_DIR}/3rdpty/MathGeoLib)
|
||||||
|
|
||||||
include(use_cm_module)
|
include(use_cm_module)
|
||||||
use_cm_module(Core)
|
use_cm_module(Core)
|
||||||
|
use_cm_module(Platform)
|
||||||
include(FindVulkan)
|
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
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)
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdpty/jsoncpp/include)
|
||||||
add_subdirectory(3rdpty/jsoncpp)
|
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()
|
ENDIF()
|
||||||
|
|
||||||
SET(ULRE CMCore
|
SET(ULRE CMCore
|
||||||
|
CMPlatform
|
||||||
ULRE.Util
|
ULRE.Util
|
||||||
ULRE.Shader
|
ULRE.Shader
|
||||||
ULRE.RenderDevice.Vulkan
|
ULRE.RenderDevice.Vulkan
|
||||||
ULRE.SceneGraph
|
ULRE.SceneGraph
|
||||||
ULRE.Platform
|
|
||||||
MathGeoLib
|
MathGeoLib
|
||||||
spirv-cross-core
|
spirv-cross-core
|
||||||
SPIRV
|
SPIRV
|
||||||
|
@ -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, ///<Shift键处于按下状态
|
|
||||||
mbCtrl =0x20000000, ///<Ctrl键处于按下状态
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 按键枚举定义
|
|
||||||
*/
|
|
||||||
enum KeyboardButton
|
|
||||||
{
|
|
||||||
kbBeginRange=0,
|
|
||||||
|
|
||||||
//主键盘区
|
|
||||||
kbEsc, ///<ESC
|
|
||||||
|
|
||||||
//F功能键
|
|
||||||
kbF1, ///<F1
|
|
||||||
kbF2, ///<F2
|
|
||||||
kbF3, ///<F3
|
|
||||||
kbF4, ///<F4
|
|
||||||
kbF5, ///<F5
|
|
||||||
kbF6, ///<F6
|
|
||||||
kbF7, ///<F7
|
|
||||||
kbF8, ///<F8
|
|
||||||
kbF9, ///<F9
|
|
||||||
kbF10, ///<F10
|
|
||||||
kbF11, ///<F11
|
|
||||||
kbF12, ///<F12
|
|
||||||
|
|
||||||
kbGrave, //<`号(主键盘数字键1左边的按钮)
|
|
||||||
|
|
||||||
//10个数字
|
|
||||||
kb0, ///<数字键0
|
|
||||||
kb1, ///<数字键1
|
|
||||||
kb2, ///<数字键2
|
|
||||||
kb3, ///<数字键3
|
|
||||||
kb4, ///<数字键4
|
|
||||||
kb5, ///<数字键5
|
|
||||||
kb6, ///<数字键6
|
|
||||||
kb7, ///<数字键7
|
|
||||||
kb8, ///<数字键8
|
|
||||||
kb9, ///<数字键9
|
|
||||||
|
|
||||||
kbMinus, ///< - (减号)
|
|
||||||
kbEquals, ///< = (等号)
|
|
||||||
kbBackSlash, ///< \ (反斜杠)
|
|
||||||
kbBackSpace, ///< 退格键
|
|
||||||
|
|
||||||
kbTab, ///<Tab键
|
|
||||||
|
|
||||||
kbA, ///<A
|
|
||||||
kbB, ///<B
|
|
||||||
kbC, ///<C
|
|
||||||
kbD, ///<D
|
|
||||||
kbE, ///<E
|
|
||||||
kbF, ///<F
|
|
||||||
kbG, ///<G
|
|
||||||
kbH, ///<H
|
|
||||||
kbI, ///<I
|
|
||||||
kbJ, ///<J
|
|
||||||
kbK, ///<K
|
|
||||||
kbL, ///<L
|
|
||||||
kbM, ///<M
|
|
||||||
kbN, ///<N
|
|
||||||
kbO, ///<O
|
|
||||||
kbP, ///<P
|
|
||||||
kbQ, ///<Q
|
|
||||||
kbR, ///<R
|
|
||||||
kbS, ///<S
|
|
||||||
kbT, ///<T
|
|
||||||
kbU, ///<U
|
|
||||||
kbV, ///<V
|
|
||||||
kbW, ///<W
|
|
||||||
kbX, ///<X
|
|
||||||
kbY, ///<Y
|
|
||||||
kbZ, ///<Z
|
|
||||||
|
|
||||||
kbLeftBracket, ///<[
|
|
||||||
kbRightBracket, ///<]
|
|
||||||
|
|
||||||
kbCapsLock, ///<大写锁定键
|
|
||||||
|
|
||||||
kbSemicolon, ///<; (分号)
|
|
||||||
kbApostrophe, ///<' (单引号)
|
|
||||||
kbEnter, ///<回车键
|
|
||||||
|
|
||||||
kbLeftShift, ///<左边的Shift键
|
|
||||||
|
|
||||||
kbComma, ///<, (逗号)
|
|
||||||
kbPeriod, ///<. (句号)
|
|
||||||
kbSlash, ///</ (除号)
|
|
||||||
kbRightShift, ///<右边的Shift键
|
|
||||||
|
|
||||||
kbLeftCtrl, ///<左边的Ctrl键
|
|
||||||
kbLeftOS, ///<左边的OS键(Win/Apple键)
|
|
||||||
kbLeftAlt, ///<左边的Alt键
|
|
||||||
kbSpace, ///<空格键
|
|
||||||
kbRightAlt, ///<右边的Alt键
|
|
||||||
kbRightOS, ///<右边的OS键(Win/Apple键)
|
|
||||||
kbRightMenu, ///<右边的Menu键
|
|
||||||
kbRightCtrl, ///<右边的Ctrl键
|
|
||||||
|
|
||||||
//中键盘区
|
|
||||||
kbPrintScreen, ///<打印屏幕键
|
|
||||||
kbScrollLock, ///<滚动锁定键
|
|
||||||
kbPause, ///<暂停键
|
|
||||||
|
|
||||||
kbInsert, ///<插入键
|
|
||||||
kbDelete, ///<删除键
|
|
||||||
kbHome, ///<行首键
|
|
||||||
kbEnd, ///<行尾键
|
|
||||||
kbPageUp, ///<向前翻页键
|
|
||||||
kbPageDown, ///<向后翻页键
|
|
||||||
|
|
||||||
kbUp, ///<↑光标键
|
|
||||||
kbDown, ///<↓光标键
|
|
||||||
kbLeft, ///<←光标键
|
|
||||||
kbRight, ///<→光标键
|
|
||||||
|
|
||||||
//小键盘区
|
|
||||||
kbNumLock, ///<小键盘 数字锁定键
|
|
||||||
|
|
||||||
kbNumAdd, ///<小键盘 +
|
|
||||||
kbNumSubtract, ///<小键盘 -
|
|
||||||
kbNumMultiply, ///<小键盘 *
|
|
||||||
kbNumDivide, ///<小键盘 /
|
|
||||||
|
|
||||||
kbNum0, ///<小键盘 0
|
|
||||||
kbNum1, ///<小键盘 1
|
|
||||||
kbNum2, ///<小键盘 2
|
|
||||||
kbNum3, ///<小键盘 3
|
|
||||||
kbNum4, ///<小键盘 4
|
|
||||||
kbNum5, ///<小键盘 5
|
|
||||||
kbNum6, ///<小键盘 6
|
|
||||||
kbNum7, ///<小键盘 7
|
|
||||||
kbNum8, ///<小键盘 8
|
|
||||||
kbNum9, ///<小键盘 9
|
|
||||||
|
|
||||||
kbNumDecimal, ///<小键盘 . (小数点/删除键)
|
|
||||||
kbNumEnter, ///<小键盘 回车键
|
|
||||||
|
|
||||||
kbEndRange,
|
|
||||||
kbRangeSize=kbEndRange-kbBeginRange+1
|
|
||||||
};//enum KeyboardButton
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 手柄按键枚举
|
|
||||||
*/
|
|
||||||
enum JoystickButton
|
|
||||||
{
|
|
||||||
jbBeginRange=0,
|
|
||||||
|
|
||||||
jbUp,
|
|
||||||
jbDown,
|
|
||||||
jbLeft,
|
|
||||||
jbRight,
|
|
||||||
|
|
||||||
jb0, jb1, jb2, jb3, jb4, jb5, jb6, jb7,
|
|
||||||
jb8, jb9, jb10, jb11, jb12, jb13, jb14, jb15,
|
|
||||||
jb16, jb17, jb18, jb19, jb20, jb21, jb22, jb23,
|
|
||||||
jb24, jb25, jb26, jb27, jb28, jb29, jb30, jb31,
|
|
||||||
|
|
||||||
jbEnd,
|
|
||||||
|
|
||||||
//DreamCast/XBOX
|
|
||||||
/* jbX=jb2,
|
|
||||||
jbY=jb3,
|
|
||||||
jbA=jb0,
|
|
||||||
jbB=jb1,
|
|
||||||
jbL=jb4,
|
|
||||||
jbR=jb5,*/
|
|
||||||
|
|
||||||
//PlayStation
|
|
||||||
jbTriangle =jb0, // 三角
|
|
||||||
jbCircle =jb1, // 圆
|
|
||||||
jbFork =jb2, // 叉
|
|
||||||
jbRectangle =jb3, // 方
|
|
||||||
jbL1 =jb6, jbL2 =jb4,
|
|
||||||
jbR1 =jb7, jbR2 =jb5,
|
|
||||||
jbSelect =jb8, jbStart =jb9,
|
|
||||||
|
|
||||||
//XBOX/XBOX360
|
|
||||||
jbXBOX, //西瓜键
|
|
||||||
|
|
||||||
jbEndRange,
|
|
||||||
jbRangeSize=jbEndRange-jbBeginRange+1
|
|
||||||
};
|
|
||||||
}//namespace hgl
|
|
||||||
#endif//HGL_INPUT_DEVICE_INCLUDE
|
|
@ -1,129 +0,0 @@
|
|||||||
#ifndef HGL_GRAPH_WINDOW_INCLUDE
|
|
||||||
#define HGL_GRAPH_WINDOW_INCLUDE
|
|
||||||
|
|
||||||
#include<hgl/type/BaseString.h>
|
|
||||||
#include<hgl/platform/InputDevice.h>
|
|
||||||
#include<hgl/graph/vulkan/VK.h>
|
|
||||||
|
|
||||||
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
|
|
Loading…
x
Reference in New Issue
Block a user