12-26-2014 05:53 AM
if ( System::DirectDisplayEnabled())
{
Ptr<IUnknown> ovrSwapChain;
if (config->D3D_NS.pSwapChain->QueryInterface(IID_OVRDXGISwapchain, (void**)&ovrSwapChain.GetRawRef()) == E_NOINTERFACE)
{
OVR_DEBUG_LOG_TEXT(("ovr_Initialize() or ovr_InitializeRenderingShim() wasn't called before DXGISwapChain was created."));
}
}
if (config->D3D_NS.pSwapChain && System::DirectDisplayEnabled())
{
Ptr<IUnknown> ovrSwapChain;
if (config->D3D_NS.pSwapChain->QueryInterface(IID_OVRDXGISwapchain, (void**)&ovrSwapChain.GetRawRef()) == E_NOINTERFACE)
{
OVR_DEBUG_LOG_TEXT(("ovr_Initialize() or ovr_InitializeRenderingShim() wasn't called before DXGISwapChain was created."));
}
}
ovrD3D11Config d3d11cfg;
d3d11cfg.D3D11.pSwapChain = nullptr;
12-26-2014 11:31 AM
03-28-2015 07:28 AM
void DistortionRenderer::EndFrame(uint32_t frameIndex, bool swapBuffers)
OVR_PUBLIC_FUNCTION(void) ovrHmd_EndFrame(ovrHmd hmd,
const ovrPosef renderPose[2],
const ovrTexture eyeTexture[2],
bool const swapBuffers = true);
d3d11cfg.D3D11.pDeviceContext = cMaxVRSingleton::getDirectX()->getD3DContextForOculus(); // Deferred Context
d3d11cfg.D3D11.pSwapChain = nullptr; // Moved Present into cDirectX EndFrame with Request for Bug Fix from Oculus, Minimize Critical Section Hold Time
void cDirectX::EndFrame()
{
ID3D11DeviceContext1* const __restrict d3dContext(m_pcDC->getDC());
ID3D11CommandList* __restrict pd3dCommandList(nullptr);
cMaxVRSingleton::getOculus()->EndFrame(d3dContext);
d3dContext->FinishCommandList(FALSE, &pd3dCommandList);
AcquireSRWLockShared(&m_SRWLockForIC);
m_d3dContextIC->ExecuteCommandList(pd3dCommandList, FALSE);
m_swapChain->Present(m_uiSyncInterval, 0);
ReleaseSRWLockShared(&m_SRWLockForIC);
pd3dCommandList->Release();
// State Reset for Next Frame Begins //
m_pcDC->Invalidate();
}