From ef52f5e7b885aa41f9f8a4bfab5a3727201df47a Mon Sep 17 00:00:00 2001 From: hyzboy Date: Wed, 10 Apr 2019 23:31:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0XCBWindow=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/RenderSurface.cpp | 11 ++++++----- example/Vulkan/VKInstance.cpp | 2 +- example/Vulkan/XCBWindow.cpp | 18 +++++++++--------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/example/Vulkan/RenderSurface.cpp b/example/Vulkan/RenderSurface.cpp index 1e30e085..102e704b 100644 --- a/example/Vulkan/RenderSurface.cpp +++ b/example/Vulkan/RenderSurface.cpp @@ -1,4 +1,4 @@ -#include"RenderSurface.h" +#include"RenderSurface.h" VK_NAMESPACE_BEGIN RenderSurface::RenderSurface(Window *w,VkInstance inst,VkPhysicalDevice pd) @@ -18,7 +18,7 @@ RenderSurface::RenderSurface(Window *w,VkInstance inst,VkPhysicalDevice pd) { uint32_t family_count; - vkGetPhysicalDeviceQueueFamilyProperties(physical_device,&family_count,nullptr); + vkGetPhysicalDeviceQueueFamilyProperties(physical_device,&family_count,nullptr); family_properties.SetCount(family_count); vkGetPhysicalDeviceQueueFamilyProperties(physical_device,&family_count,family_properties.GetData()); @@ -66,7 +66,7 @@ RenderSurface::RenderSurface(Window *w,VkInstance inst,VkPhysicalDevice pd) if(swapchain_extent.widthsurface_caps.maxImageExtent.width)swapchain_extent.width=surface_caps.maxImageExtent.width; - if(swapchain_extent.heightsurface_caps.maxImageExtent.height)swapchain_extent.height=surface_caps.maxImageExtent.height; } else @@ -150,7 +150,7 @@ CommandBuffer *RenderSurface::CreateCommandBuffer() return(new CommandBuffer(device,cmd_pool,cmd_buf)); } -bool RenderSurface::CreateDevice() +bool RenderSurface::CreateDevice() { family_index=QueueFamilyProperties(VK_QUEUE_GRAPHICS_BIT); @@ -179,8 +179,9 @@ bool RenderSurface::CreateDevice() create_info.pEnabledFeatures=nullptr; VkResult res=vkCreateDevice(physical_device,&create_info,nullptr,&device); + if(res!=VK_SUCCESS) - return(nullptr); + return(false); CreateCommandPool(); return(true); diff --git a/example/Vulkan/VKInstance.cpp b/example/Vulkan/VKInstance.cpp index df26208c..7bccf1ec 100644 --- a/example/Vulkan/VKInstance.cpp +++ b/example/Vulkan/VKInstance.cpp @@ -71,7 +71,7 @@ RenderSurface *Instance::CreateRenderSurface(int pd_index) VkPhysicalDevice pd; if(!physical_devices.Get(pd_index,pd)) - return(false); + return(nullptr); return(new RenderSurface(win,inst,pd)); } diff --git a/example/Vulkan/XCBWindow.cpp b/example/Vulkan/XCBWindow.cpp index dc25dc38..bb218514 100644 --- a/example/Vulkan/XCBWindow.cpp +++ b/example/Vulkan/XCBWindow.cpp @@ -111,23 +111,23 @@ namespace hgl void Show()override{} void Hide()override{} - vulkan::Surface* CreateVulkanSurface(VkInstance vk_inst)const override - { + VkSurfaceKHR CreateSurface(VkInstance vk_inst)const override + { VkXcbSurfaceCreateInfoKHR createInfo = {}; createInfo.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR; createInfo.pNext = nullptr; createInfo.connection = connection; createInfo.window = window; - - VkSurfaceKHR surface; - VkResult res = vkCreateXcbSurfaceKHR(info.inst, &createInfo, nullptr, &info.surface); + VkSurfaceKHR surface; - if (res != VK_SUCCESS) - return(nullptr); + VkResult res = vkCreateXcbSurfaceKHR(vk_inst, &createInfo, nullptr, &surface); - return(new vulkan::Surface(vk_inst,surface)); - } + if (res != VK_SUCCESS) + return(nullptr); + + return(surface); + } };//class XCBWindow:public Window Window *CreateRenderWindow(const UTF8String &win_name)