From 6ec1eca6cb21efc5fc1ed977f67ef3b67292dfc7 Mon Sep 17 00:00:00 2001 From: HuYingzhuo Date: Wed, 10 Apr 2019 10:26:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=81=97=E6=BC=8F=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E7=9A=84WinWindow.cpp=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/CMakeLists.txt | 10 +++----- example/Vulkan/WinWindow.cpp | 46 +++++++++++++++++++++++++++++++++++ example/Vulkan/Window.h | 6 ++--- example/Vulkan/XCBWindow.cpp | 6 ++--- example/Vulkan/main.cpp | 2 +- 5 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 example/Vulkan/WinWindow.cpp diff --git a/example/Vulkan/CMakeLists.txt b/example/Vulkan/CMakeLists.txt index ff047118..7d7c419d 100644 --- a/example/Vulkan/CMakeLists.txt +++ b/example/Vulkan/CMakeLists.txt @@ -1,13 +1,9 @@ IF(UNIX) SET(RENDER_WINDOW_SOURCE XCBWindow.cpp) - SET(RENDER_WINDOW_LIBRARY xcb) + SET(RENDER_WINDOW_LIBRARY xcb) +ELSEIF(WIN32) + SET(RENDER_WINDOW_SOURCE WinWindow.cpp) ENDIF() -if(WIN32) - SET(RENDER_WINDOW_SOURCE Win32Window.cpp) -ENDIF() -if(APPLE) -ENDIF() - add_executable(VulkanTest main.cpp ${RENDER_WINDOW_SOURCE} diff --git a/example/Vulkan/WinWindow.cpp b/example/Vulkan/WinWindow.cpp new file mode 100644 index 00000000..4777e703 --- /dev/null +++ b/example/Vulkan/WinWindow.cpp @@ -0,0 +1,46 @@ +#include"Window.h" +#include +#include +#include + +namespace hgl +{ + namespace graph + { + /** + * Windows平台窗口实现 + */ + class WinWindow :public Window + { + public: + + using Window::Window; + ~WinWindow() + { + + } + + const char* GetVulkanSurfaceExtname()const + { + return VK_KHR_WIN32_SURFACE_EXTENSION_NAME; + } + + bool Create(uint w, uint h) override + { + } + + bool Create(uint, uint, uint)override {} + void Close()override + { + } + + void Show()override {} + void Hide()override {} + };//class WinWindow :public Window + + Window* CreateRenderWindow(const WideString& win_name) + { + return(new WinWindow(win_name)); + } + }//namespace graph +}//namespace hgl diff --git a/example/Vulkan/Window.h b/example/Vulkan/Window.h index 89dc30f2..b3f10438 100644 --- a/example/Vulkan/Window.h +++ b/example/Vulkan/Window.h @@ -30,9 +30,9 @@ namespace hgl virtual const char *GetVulkanSurfaceExtname()const=0; - virtual bool CreateWindow(uint,uint)=0; - virtual bool CreateFullscreen(uint,uint,uint)=0; - virtual void CloseWindow()=0; + virtual bool Create(uint,uint)=0; + virtual bool Create(uint,uint,uint)=0; + virtual void Close()=0; virtual void Show()=0; virtual void Hide()=0; diff --git a/example/Vulkan/XCBWindow.cpp b/example/Vulkan/XCBWindow.cpp index df9b90e7..4c292f0a 100644 --- a/example/Vulkan/XCBWindow.cpp +++ b/example/Vulkan/XCBWindow.cpp @@ -53,7 +53,7 @@ namespace hgl return VK_KHR_XCB_SURFACE_EXTENSION_NAME; } - bool CreateWindow(uint w,uint h) override + bool Create(uint w,uint h) override { if(w<=0||h<=0)return(false); if(!InitConnection())return(false); @@ -101,8 +101,8 @@ namespace hgl } } - bool CreateFullscreen(uint,uint,uint)override{} - void CloseWindow()override + bool Create(uint,uint,uint)override{} + void Close()override { xcb_destroy_window(connection, window); xcb_disconnect(connection); diff --git a/example/Vulkan/main.cpp b/example/Vulkan/main.cpp index fddba8bc..3b751d6e 100644 --- a/example/Vulkan/main.cpp +++ b/example/Vulkan/main.cpp @@ -11,7 +11,7 @@ int main(int,char **) { Window *win=CreateRenderWindow(OS_TEXT("VulkanTest")); - win->CreateWindow(1280,720); + win->Create(1280,720); vulkan::Instance inst(U8_TEXT("VulkanTest"),win);