comparison src/engine.nim @ 8:1134f41a49e9

add: a few missing changes
author Sam <sam@basx.dev>
date Thu, 22 Dec 2022 19:35:54 +0700
parents 4ed9cb098315
children 227e53d1a853 0660ba9d1930
comparison
equal deleted inserted replaced
7:a48af6ac67d6 8:1134f41a49e9
135 return VkExtent2D( 135 return VkExtent2D(
136 width: min(max(uint32(width), capabilities.minImageExtent.width), capabilities.maxImageExtent.width), 136 width: min(max(uint32(width), capabilities.minImageExtent.width), capabilities.maxImageExtent.width),
137 height: min(max(uint32(height), capabilities.minImageExtent.height), capabilities.maxImageExtent.height), 137 height: min(max(uint32(height), capabilities.minImageExtent.height), capabilities.maxImageExtent.height),
138 ) 138 )
139 139
140 proc setupDebugLog(instance: VkInstance): VkDebugUtilsMessengerEXT = 140 when not defined(release):
141 var createInfo = VkDebugUtilsMessengerCreateInfoEXT( 141 proc setupDebugLog(instance: VkInstance): VkDebugUtilsMessengerEXT =
142 sType: VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, 142 var createInfo = VkDebugUtilsMessengerCreateInfoEXT(
143 messageSeverity: VkDebugUtilsMessageSeverityFlagsEXT( 143 sType: VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
144 ord(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) or 144 messageSeverity: VkDebugUtilsMessageSeverityFlagsEXT(
145 ord(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) or 145 ord(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) or
146 ord(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) 146 ord(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) or
147 ), 147 ord(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT)
148 messageType: VkDebugUtilsMessageTypeFlagsEXT( 148 ),
149 ord(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT) or 149 messageType: VkDebugUtilsMessageTypeFlagsEXT(
150 ord(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT) or 150 ord(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT) or
151 ord(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT) 151 ord(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT) or
152 ), 152 ord(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT)
153 pfnUserCallback: debugCallback, 153 ),
154 pUserData: nil, 154 pfnUserCallback: debugCallback,
155 ) 155 pUserData: nil,
156 checkVkResult instance.vkCreateDebugUtilsMessengerEXT(addr(createInfo), nil, addr(result)) 156 )
157 checkVkResult instance.vkCreateDebugUtilsMessengerEXT(addr(createInfo), nil, addr(result))
157 158
158 proc setupVulkanDeviceAndQueues(instance: VkInstance, surface: VkSurfaceKHR): Device = 159 proc setupVulkanDeviceAndQueues(instance: VkInstance, surface: VkSurfaceKHR): Device =
159 let usableDevices = instance.getAllPhysicalDevices(surface).filterForDevice() 160 let usableDevices = instance.getAllPhysicalDevices(surface).filterForDevice()
160 if len(usableDevices) == 0: 161 if len(usableDevices) == 0:
161 raise newException(Exception, "No suitable graphics device found") 162 raise newException(Exception, "No suitable graphics device found")
466 vkLoad1_2() 467 vkLoad1_2()
467 checkGlslangResult glslang_initialize_process() 468 checkGlslangResult glslang_initialize_process()
468 469
469 # create vulkan instance 470 # create vulkan instance
470 result.vulkan.instance = createVulkanInstance(VULKAN_VERSION) 471 result.vulkan.instance = createVulkanInstance(VULKAN_VERSION)
471 when ENABLEVULKANVALIDATIONLAYERS: 472 when not defined(release):
472 result.vulkan.debugMessenger = result.vulkan.instance.setupDebugLog() 473 result.vulkan.debugMessenger = result.vulkan.instance.setupDebugLog()
473 result.vulkan.surface = result.vulkan.instance.createVulkanSurface(result.window) 474 result.vulkan.surface = result.vulkan.instance.createVulkanSurface(result.window)
474 result.vulkan.device = result.vulkan.instance.setupVulkanDeviceAndQueues(result.vulkan.surface) 475 result.vulkan.device = result.vulkan.instance.setupVulkanDeviceAndQueues(result.vulkan.surface)
475 476
476 # get basic frame information 477 # get basic frame information