MCPcopy Create free account
hub / github.com/PacktPublishing/3D-Graphics-Rendering-Cookbook / createInstance

Function createInstance

shared/UtilsVulkan.cpp:251–303  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

249}
250
251void createInstance(VkInstance* instance)
252{
253 // https://vulkan.lunarg.com/doc/view/1.1.108.0/windows/validation_layers.html
254 const std::vector<const char*> ValidationLayers =
255 {
256 "VK_LAYER_KHRONOS_validation"
257 };
258
259 const std::vector<const char*> exts =
260 {
261 "VK_KHR_surface",
262#if defined (_WIN32)
263 "VK_KHR_win32_surface"
264#endif
265#if defined (__APPLE__)
266 "VK_MVK_macos_surface"
267#endif
268#if defined (__linux__)
269 "VK_KHR_xcb_surface"
270#endif
271 , VK_EXT_DEBUG_UTILS_EXTENSION_NAME
272 , VK_EXT_DEBUG_REPORT_EXTENSION_NAME
273 /* for indexed textures */
274 , VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
275 };
276
277 const VkApplicationInfo appinfo =
278 {
279 .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO,
280 .pNext = nullptr,
281 .pApplicationName = "Vulkan",
282 .applicationVersion = VK_MAKE_VERSION(1, 0, 0),
283 .pEngineName = "No Engine",
284 .engineVersion = VK_MAKE_VERSION(1, 0, 0),
285 .apiVersion = VK_API_VERSION_1_1
286 };
287
288 const VkInstanceCreateInfo createInfo =
289 {
290 .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
291 .pNext = nullptr,
292 .flags = 0,
293 .pApplicationInfo = &appinfo,
294 .enabledLayerCount = static_cast<uint32_t>(ValidationLayers.size()),
295 .ppEnabledLayerNames = ValidationLayers.data(),
296 .enabledExtensionCount = static_cast<uint32_t>(exts.size()),
297 .ppEnabledExtensionNames = exts.data()
298 };
299
300 VK_CHECK(vkCreateInstance(&createInfo, nullptr, instance));
301
302 volkLoadInstance(*instance);
303}
304
305VkResult createDevice(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures deviceFeatures, uint32_t graphicsFamily, VkDevice* device)
306{

Callers 9

mainFunction · 0.85
initVulkanFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
initVulkanFunction · 0.85
VulkanContextCreatorMethod · 0.85
initVulkanFunction · 0.85
initVulkanFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected