将platform改为使用独立的CMPlatform
This commit is contained in:
parent
01e30e0a21
commit
5972a58648
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -16,3 +16,6 @@
|
||||
[submodule "CMCore"]
|
||||
path = 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)
|
||||
|
||||
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
|
||||
|
@ -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