MCPcopy Create free account
hub / github.com/android/ndk-samples / createInstance

Method createInstance

hello-vulkan/app/src/main/cpp/hellovk.h:685–728  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

683}
684
685void HelloVK::createInstance() {
686 assert(!enableValidationLayers ||
687 checkValidationLayerSupport()); // validation layers requested, but
688 // not available!
689 auto requiredExtensions = getRequiredExtensions(enableValidationLayers);
690
691 VkApplicationInfo appInfo{};
692 appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
693 appInfo.pApplicationName = "Hello Triangle";
694 appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
695 appInfo.pEngineName = "No Engine";
696 appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
697 appInfo.apiVersion = VK_API_VERSION_1_0;
698
699 VkInstanceCreateInfo createInfo{};
700 createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
701 createInfo.pApplicationInfo = &appInfo;
702 createInfo.enabledExtensionCount = (uint32_t)requiredExtensions.size();
703 createInfo.ppEnabledExtensionNames = requiredExtensions.data();
704 createInfo.pApplicationInfo = &appInfo;
705
706 if (enableValidationLayers) {
707 VkDebugUtilsMessengerCreateInfoEXT debugCreateInfo{};
708 createInfo.enabledLayerCount =
709 static_cast<uint32_t>(validationLayers.size());
710 createInfo.ppEnabledLayerNames = validationLayers.data();
711 populateDebugMessengerCreateInfo(debugCreateInfo);
712 createInfo.pNext = (VkDebugUtilsMessengerCreateInfoEXT*)&debugCreateInfo;
713 } else {
714 createInfo.enabledLayerCount = 0;
715 createInfo.pNext = nullptr;
716 }
717 VK_CHECK(vkCreateInstance(&createInfo, nullptr, &instance));
718
719 uint32_t extensionCount = 0;
720 vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
721 std::vector<VkExtensionProperties> extensions(extensionCount);
722 vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount,
723 extensions.data());
724 LOGI("available extensions");
725 for (const auto& extension : extensions) {
726 LOGI("\t %s", extension.extensionName);
727 }
728}
729
730/*
731 * createSurface can only be called after the android ecosystem has had the

Callers

nothing calls this directly

Calls 2

dataMethod · 0.80

Tested by

no test coverage detected