ovrResult | ovr_CreateTextureSwapChainDX ( ovrSession session, IUnknown * d3dPtr, const ovrTextureSwapChainDesc * desc, ovrTextureSwapChain * out_TextureSwapChain ) Create Texture Swap Chain suitable for use with Direct3D 11 and 12. |
ovrResult | ovr_GetTextureSwapChainBufferDX ( ovrSession session, ovrTextureSwapChain chain, int index, IID iid, void ** out_Buffer ) Get a specific buffer within the chain as any compatible COM interface (similar to QueryInterface) |
ovrResult | ovr_CreateMirrorTextureWithOptionsDX ( ovrSession session, IUnknown * d3dPtr, const ovrMirrorTextureDesc * desc, ovrMirrorTexture * out_MirrorTexture ) Create Mirror Texture which is auto-refreshed to mirror Rift contents produced by this application. |
ovrResult | ovr_CreateMirrorTextureDX ( ovrSession session, IUnknown * d3dPtr, const ovrMirrorTextureDesc * desc, ovrMirrorTexture * out_MirrorTexture ) Deprecated. |
ovrResult | ovr_GetMirrorTextureBufferDX ( ovrSession session, ovrMirrorTexture mirrorTexture, IID iid, void ** out_Buffer ) Get a the underlying buffer as any compatible COM interface (similar to QueryInterface) |
ovr_GetTextureSwapChainBufferDX(s, d3d11Chain, 0, IID_ID3D11Texture2D, &d3d11Texture); ovr_GetTextureSwapChainBufferDX(s, d3d11Chain, 1, IID_PPV_ARGS(&dxgiResource)); ovr_GetTextureSwapChainBufferDX(s, d3d12Chain, 0, IID_ID3D12Resource, &d3d12Texture);
ovrMirrorTexture mirrorTexture = nullptr; ovrMirrorTextureDesc mirrorDesc = {}; mirrorDesc.Format = OVR_FORMAT_R8G8B8A8_UNORM_SRGB; mirrorDesc.Width = mirrorWindowWidth; mirrorDesc.Height = mirrorWindowHeight; ovrResult result = ovr_CreateMirrorTextureWithOptionsDX(session, d3d11Device, &mirrorDesc, &mirrorTexture); [...] // Destroy the texture when done with it. ovr_DestroyMirrorTexture(session, mirrorTexture); mirrorTexture = nullptr;
ID3D11Texture2D* d3d11Texture = nullptr; ovr_GetMirrorTextureBufferDX(session, mirrorTexture, IID_PPV_ARGS(&d3d11Texture)); d3d11DeviceContext->CopyResource(d3d11TextureBackBuffer, d3d11Texture); d3d11Texture->Release(); dxgiSwapChain->Present(0, 0);
/********************************************************************************/ #ifndef OVR_CAPI_D3D_h #define OVR_CAPI_D3D_h #include "OVR_CAPI.h" #include "OVR_Version.h" #if defined(_WIN32) #include <Unknwn.h> #include <guiddef.h> #if !defined(OVR_EXPORTING_CAPI) //----------------------------------------------------------------------------------- // ***** Direct3D Specific // swapchain formats that are in sRGB-space (e.g. OVR_FORMAT_R8G8B8A8_UNORM_SRGB) OVR_PUBLIC_FUNCTION(ovrResult) ovr_CreateTextureSwapChainDX( ovrSession session, IUnknown* d3dPtr, const ovrTextureSwapChainDesc* desc, ovrTextureSwapChain* out_TextureSwapChain); OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetTextureSwapChainBufferDX( ovrSession session, ovrTextureSwapChain chain, int index, IID iid, void** out_Buffer); OVR_PUBLIC_FUNCTION(ovrResult) ovr_CreateMirrorTextureWithOptionsDX( ovrSession session, IUnknown* d3dPtr, const ovrMirrorTextureDesc* desc, ovrMirrorTexture* out_MirrorTexture); OVR_PUBLIC_FUNCTION(ovrResult) ovr_CreateMirrorTextureDX( ovrSession session, IUnknown* d3dPtr, const ovrMirrorTextureDesc* desc, ovrMirrorTexture* out_MirrorTexture); OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetMirrorTextureBufferDX( ovrSession session, ovrMirrorTexture mirrorTexture, IID iid, void** out_Buffer); #endif // !defined(OVR_EXPORTING_CAPI) #endif // _WIN32 #endif // OVR_CAPI_D3D_h