MCPcopy Create free account
hub / github.com/LibreVR/Revive / ovr_GetInstanceExtensionsVk

Function ovr_GetInstanceExtensionsVk

Revive/REV_CAPI_Vk.cpp:41–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39
40OVR_PUBLIC_FUNCTION(ovrResult)
41ovr_GetInstanceExtensionsVk(
42 ovrGraphicsLuid luid,
43 char* extensionNames,
44 uint32_t* inoutExtensionNamesSize)
45{
46 if (!inoutExtensionNamesSize)
47 ovrError_InvalidParameter;
48
49 std::stringstream extensions;
50 uint32_t required = vr::VRCompositor()->GetVulkanInstanceExtensionsRequired(nullptr, 0);
51 if (required > 0)
52 {
53 std::vector<char> openvrExtensions(required);
54 vr::VRCompositor()->GetVulkanInstanceExtensionsRequired(openvrExtensions.data(), required);
55 extensions << openvrExtensions.data() << ' ';
56 }
57
58#ifdef DEBUG
59 extensions << VK_EXT_DEBUG_UTILS_EXTENSION_NAME << ' ';
60#endif
61 extensions << VK_KHR_SURFACE_EXTENSION_NAME << ' ';
62 extensions << VK_KHR_WIN32_SURFACE_EXTENSION_NAME << ' ';
63
64 // SteamVR forgets to specify the semaphore capabilities extensions
65 extensions << VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME;
66
67 std::string result = extensions.str();
68 uint32_t size = *inoutExtensionNamesSize;
69 *inoutExtensionNamesSize = (uint32_t)result.size();
70 strncpy(extensionNames, result.c_str(), size);
71 return (result.size() < size) ? ovrSuccess : ovrError_InsufficientArraySize;
72}
73
74OVR_PUBLIC_FUNCTION(ovrResult)
75ovr_GetDeviceExtensionsVk(

Callers

nothing calls this directly

Calls 2

sizeMethod · 0.80
c_strMethod · 0.80

Tested by

no test coverage detected