oldRT->Release();
}
+ // MSDN says: Setting a new render target will cause the viewport
+ // to be set to the full size of the new render target.
+ // So we need restore our viewport
+ g_Windowing.RestoreViewPort();
return true;
}
currentRT->Release();
intermediateRT->Release();
+ // MSDN says: Setting a new render target will cause the viewport
+ // to be set to the full size of the new render target.
+ // So we need restore our viewport
+ g_Windowing.RestoreViewPort();
return true;
}
// Restore the render target
pD3DDevice->SetRenderTarget(0, oldRT);
+ // MSDN says: Setting a new render target will cause the viewport
+ // to be set to the full size of the new render target.
+ // So we need restore our viewport
+ g_Windowing.RestoreViewPort();
+
oldRT->Release();
newRT->Release();
}
virtual void SetViewPort(CRect& viewPort) = 0;
virtual void GetViewPort(CRect& viewPort) = 0;
+ virtual void RestoreViewPort() {};
virtual void SetScissors(const CRect &rect) = 0;
virtual void ResetScissors() = 0;
m_pD3DDevice->SetViewport(&m_viewPort);
}
+void CRenderSystemDX::RestoreViewPort()
+{
+ if (!m_bRenderCreated)
+ return;
+
+ m_pD3DDevice->SetViewport(&m_viewPort);
+}
+
void CRenderSystemDX::SetScissors(const CRect& rect)
{
if (!m_bRenderCreated)
virtual void SetViewPort(CRect& viewPort);
virtual void GetViewPort(CRect& viewPort);
+ virtual void RestoreViewPort();
virtual void SetScissors(const CRect &rect);
virtual void ResetScissors();