更新XCBWindow支持新的结构
This commit is contained in:
parent
b4ce1b6b50
commit
ef52f5e7b8
@ -1,4 +1,4 @@
|
|||||||
#include"RenderSurface.h"
|
#include"RenderSurface.h"
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
RenderSurface::RenderSurface(Window *w,VkInstance inst,VkPhysicalDevice pd)
|
RenderSurface::RenderSurface(Window *w,VkInstance inst,VkPhysicalDevice pd)
|
||||||
@ -179,8 +179,9 @@ bool RenderSurface::CreateDevice()
|
|||||||
create_info.pEnabledFeatures=nullptr;
|
create_info.pEnabledFeatures=nullptr;
|
||||||
|
|
||||||
VkResult res=vkCreateDevice(physical_device,&create_info,nullptr,&device);
|
VkResult res=vkCreateDevice(physical_device,&create_info,nullptr,&device);
|
||||||
|
|
||||||
if(res!=VK_SUCCESS)
|
if(res!=VK_SUCCESS)
|
||||||
return(nullptr);
|
return(false);
|
||||||
|
|
||||||
CreateCommandPool();
|
CreateCommandPool();
|
||||||
return(true);
|
return(true);
|
||||||
|
@ -71,7 +71,7 @@ RenderSurface *Instance::CreateRenderSurface(int pd_index)
|
|||||||
VkPhysicalDevice pd;
|
VkPhysicalDevice pd;
|
||||||
|
|
||||||
if(!physical_devices.Get(pd_index,pd))
|
if(!physical_devices.Get(pd_index,pd))
|
||||||
return(false);
|
return(nullptr);
|
||||||
|
|
||||||
return(new RenderSurface(win,inst,pd));
|
return(new RenderSurface(win,inst,pd));
|
||||||
}
|
}
|
||||||
|
@ -111,23 +111,23 @@ namespace hgl
|
|||||||
void Show()override{}
|
void Show()override{}
|
||||||
void Hide()override{}
|
void Hide()override{}
|
||||||
|
|
||||||
vulkan::Surface* CreateVulkanSurface(VkInstance vk_inst)const override
|
VkSurfaceKHR CreateSurface(VkInstance vk_inst)const override
|
||||||
{
|
{
|
||||||
VkXcbSurfaceCreateInfoKHR createInfo = {};
|
VkXcbSurfaceCreateInfoKHR createInfo = {};
|
||||||
createInfo.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
|
createInfo.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
|
||||||
createInfo.pNext = nullptr;
|
createInfo.pNext = nullptr;
|
||||||
createInfo.connection = connection;
|
createInfo.connection = connection;
|
||||||
createInfo.window = window;
|
createInfo.window = window;
|
||||||
|
|
||||||
VkSurfaceKHR surface;
|
VkSurfaceKHR surface;
|
||||||
|
|
||||||
VkResult res = vkCreateXcbSurfaceKHR(info.inst, &createInfo, nullptr, &info.surface);
|
VkResult res = vkCreateXcbSurfaceKHR(vk_inst, &createInfo, nullptr, &surface);
|
||||||
|
|
||||||
if (res != VK_SUCCESS)
|
if (res != VK_SUCCESS)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
return(new vulkan::Surface(vk_inst,surface));
|
return(surface);
|
||||||
}
|
}
|
||||||
};//class XCBWindow:public Window
|
};//class XCBWindow:public Window
|
||||||
|
|
||||||
Window *CreateRenderWindow(const UTF8String &win_name)
|
Window *CreateRenderWindow(const UTF8String &win_name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user