This website uses cookies to improve our services and deliver relevant ads.
By interacting with this site, you agree to this use. For more information, see our Cookies Policy
| #define | ovr_SetSynchonizationQueueVk |
| ovrResult | ovr_GetInstanceExtensionsVk ( ovrGraphicsLuid luid, char * extensionNames, uint32_t * inoutExtensionNamesSize ) Get a list of Vulkan vkInstance extensions required for VR. |
| ovrResult | ovr_GetDeviceExtensionsVk ( ovrGraphicsLuid luid, char * extensionNames, uint32_t * inoutExtensionNamesSize ) Get a list of Vulkan vkDevice extensions required for VR. |
| ovrResult | ovr_GetSessionPhysicalDeviceVk ( ovrSession session, ovrGraphicsLuid luid, VkInstance instance, VkPhysicalDevice * out_physicalDevice ) Find VkPhysicalDevice matching ovrGraphicsLuid. |
| ovrResult | Select VkQueue to block on till rendering is complete. |
| ovrResult | ovr_CreateTextureSwapChainVk ( ovrSession session, VkDevice device, const ovrTextureSwapChainDesc * desc, ovrTextureSwapChain * out_TextureSwapChain ) Create Texture Swap Chain suitable for use with Vulkan. |
| ovrResult | ovr_GetTextureSwapChainBufferVk ( ovrSession session, ovrTextureSwapChain chain, int index, VkImage * out_Image ) Get a specific VkImage within the chain. |
| ovrResult | ovr_CreateMirrorTextureWithOptionsVk ( ovrSession session, VkDevice device, const ovrMirrorTextureDesc * desc, ovrMirrorTexture * out_MirrorTexture ) Create Mirror Texture which is auto-refreshed to mirror Rift contents produced by this application. |
| ovrResult | ovr_GetMirrorTextureBufferVk ( ovrSession session, ovrMirrorTexture mirrorTexture, VkImage * out_Image ) Get a the underlying mirror VkImage. |
char extensionNames[4096];
uint32_t extensionNamesSize = sizeof(extensionNames);
ovr_GetInstanceExtensionsVk(luid, extensionsnames, &extensionNamesSize);
uint32_t extensionCount = 0;
constchar* extensionNamePtrs[256];
for(constchar* p = extensionNames; *p; ++p) {
if((p == extensionNames) || (p[-1] == ' ')) {
extensionNamePtrs[extensionCount++] = p;
if (p[-1] == ' ')
p[-1] = '\0';
}
}
VkInstanceCreateInfo info = { ... };
info.enabledExtensionCount = extensionCount;
info.ppEnabledExtensionNames = extensionNamePtrs;
[...]
ovrMirrorTexture mirrorTexture = nullptr;
ovrMirrorTextureDesc mirrorDesc = {};
mirrorDesc.Format = OVR_FORMAT_R8G8B8A8_UNORM_SRGB;
mirrorDesc.Width = mirrorWindowWidth;
mirrorDesc.Height = mirrorWindowHeight;
ovrResult result = ovr_CreateMirrorTextureWithOptionsVk(session, vkDevice, &mirrorDesc,
&mirrorTexture);
[...]
// Destroy the texture when done with it.
ovr_DestroyMirrorTexture(session, mirrorTexture);
mirrorTexture = nullptr;
VkImage mirrorImage = VK_NULL_HANDLE; ovr_GetMirrorTextureBufferVk(session, mirrorTexture, &mirrorImage); ... vkCmdBlitImage(commandBuffer, mirrorImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, presentImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion, VK_FILTER_LINEAR); ... vkQueuePresentKHR(queue, &presentInfo);
/********************************************************************************/
#ifndef OVR_CAPI_Vk_h
#define OVR_CAPI_Vk_h
#include "OVR_CAPI.h"
#include "OVR_Version.h"
#if !defined(OVR_EXPORTING_CAPI)
//-----------------------------------------------------------------------------------
// ***** Vulkan Specific
OVR_PUBLIC_FUNCTION(ovrResult)
ovr_GetInstanceExtensionsVk(
ovrGraphicsLuid luid,
char* extensionNames,
uint32_t* inoutExtensionNamesSize);
OVR_PUBLIC_FUNCTION(ovrResult)
ovr_GetDeviceExtensionsVk(
ovrGraphicsLuid luid,
char* extensionNames,
uint32_t* inoutExtensionNamesSize);
OVR_PUBLIC_FUNCTION(ovrResult)
ovr_GetSessionPhysicalDeviceVk(
ovrSession session,
ovrGraphicsLuid luid,
VkInstance instance,
VkPhysicalDevice* out_physicalDevice);
OVR_PUBLIC_FUNCTION(ovrResult) ovr_SetSynchronizationQueueVk(ovrSession session, VkQueue queue);
// Backwards compatibility for the original typoed version
#define ovr_SetSynchonizationQueueVk ovr_SetSynchronizationQueueVk
// Define OVR_PREVIEW_DEPRECATION to generate warnings for upcoming API deprecations
#if defined(OVR_PREVIEW_DEPRECATION)
#pragma deprecated("ovr_SetSynchonizationQueueVk")
#endif
OVR_PUBLIC_FUNCTION(ovrResult)
ovr_CreateTextureSwapChainVk(
ovrSession session,
VkDevice device,
const ovrTextureSwapChainDesc* desc,
ovrTextureSwapChain* out_TextureSwapChain);
OVR_PUBLIC_FUNCTION(ovrResult)
ovr_GetTextureSwapChainBufferVk(
ovrSession session,
ovrTextureSwapChain chain,
int index,
VkImage* out_Image);
OVR_PUBLIC_FUNCTION(ovrResult)
ovr_CreateMirrorTextureWithOptionsVk(
ovrSession session,
VkDevice device,
const ovrMirrorTextureDesc* desc,
ovrMirrorTexture* out_MirrorTexture);
OVR_PUBLIC_FUNCTION(ovrResult)
ovr_GetMirrorTextureBufferVk(
ovrSession session,
ovrMirrorTexture mirrorTexture,
VkImage* out_Image);
#endif // !defined(OVR_EXPORTING_CAPI)
#endif // OVR_CAPI_Vk_h