MCPcopy Create free account
hub / github.com/comaps/comaps / SetSurface

Method SetSurface

dev_sandbox/main_linux.cpp:41–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39 LinuxVulkanContextFactory() : dp::vulkan::VulkanContextFactory(1, 33, false) {}
40
41 void SetSurface(Display * display, Window window)
42 {
43 VkXlibSurfaceCreateInfoKHR const createInfo = {
44 .sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
45 .pNext = nullptr,
46 .flags = 0,
47 .dpy = display,
48 .window = window,
49 };
50
51 VkResult statusCode;
52 CHECK(vkCreateXlibSurfaceKHR, ());
53 statusCode = vkCreateXlibSurfaceKHR(m_vulkanInstance, &createInfo, nullptr, &m_surface);
54 if (statusCode != VK_SUCCESS)
55 {
56 LOG_ERROR_VK_CALL(vkCreateXlibSurfaceKHR, statusCode);
57 return;
58 }
59
60 uint32_t const renderingQueueIndex = m_drawContext->GetRenderingQueueFamilyIndex();
61 VkBool32 supportsPresent;
62 statusCode = vkGetPhysicalDeviceSurfaceSupportKHR(m_gpu, renderingQueueIndex, m_surface, &supportsPresent);
63 if (statusCode != VK_SUCCESS)
64 {
65 LOG_ERROR_VK_CALL(vkGetPhysicalDeviceSurfaceSupportKHR, statusCode);
66 return;
67 }
68 CHECK_EQUAL(supportsPresent, VK_TRUE, ());
69
70 CHECK(QuerySurfaceSize(), ());
71
72 if (m_drawContext)
73 m_drawContext->SetSurface(m_surface, m_surfaceFormat, m_surfaceCapabilities);
74 }
75
76 void ResetSurface()
77 {

Callers 1

CreateContextFactoryFunction · 0.45

Calls 1

Tested by

no test coverage detected