@@ -451,7 +451,7 @@ HRESULT m_IDirect3DDevice9Ex::GetBackBuffer(THIS_ UINT iSwapChain, UINT iBackBuf
451451{
452452 Logging::LogDebug () << __FUNCTION__ << " (" << this << " )" ;
453453
454- if (iSwapChain == 0 && ppBackBuffer && ShadowBackbuffer. Count ())
454+ if (iSwapChain == 0 && ppBackBuffer && ShadowBackbuffer-> Count ())
455455 {
456456 *ppBackBuffer = nullptr ;
457457
@@ -466,7 +466,7 @@ HRESULT m_IDirect3DDevice9Ex::GetBackBuffer(THIS_ UINT iSwapChain, UINT iBackBuf
466466 }
467467
468468 // For stereo buffers, we just return the mono shadow for simplicity
469- IDirect3DSurface9* pSurface = ShadowBackbuffer. GetSurface (iBackBuffer);
469+ IDirect3DSurface9* pSurface = ShadowBackbuffer-> GetSurface (iBackBuffer);
470470 if (!pSurface)
471471 {
472472 return D3DERR_INVALIDCALL;
@@ -907,7 +907,7 @@ HRESULT m_IDirect3DDevice9Ex::GetFrontBufferData(THIS_ UINT iSwapChain, IDirect3
907907 }
908908 else
909909 {
910- if (iSwapChain == 0 && ShadowBackbuffer. Count ())
910+ if (iSwapChain == 0 && ShadowBackbuffer-> Count ())
911911 {
912912 return GetFrontBufferShadowData (iSwapChain, pDestSurface);
913913 }
@@ -1012,7 +1012,7 @@ HRESULT m_IDirect3DDevice9Ex::SetRenderTarget(THIS_ DWORD RenderTargetIndex, IDi
10121012 pRenderTarget = static_cast <m_IDirect3DSurface9*>(pRenderTarget)->GetProxyInterface ();
10131013 }
10141014
1015- if (ShadowBackbuffer. Count () && pRenderTarget)
1015+ if (ShadowBackbuffer-> Count () && pRenderTarget)
10161016 {
10171017 if (std::find (BackBufferList.begin (), BackBufferList.end (), pRenderTarget) != BackBufferList.end ())
10181018 {
@@ -1031,7 +1031,7 @@ HRESULT m_IDirect3DDevice9Ex::GetRenderTarget(THIS_ DWORD RenderTargetIndex, IDi
10311031
10321032 HRESULT hr = ProxyInterface->GetRenderTarget (RenderTargetIndex, ppRenderTarget);
10331033
1034- if (ShadowBackbuffer. Count () && ppRenderTarget)
1034+ if (ShadowBackbuffer-> Count () && ppRenderTarget)
10351035 {
10361036 auto it = std::find (BackBufferList.begin (), BackBufferList.end (), *ppRenderTarget);
10371037 if (it != BackBufferList.end ())
@@ -1040,7 +1040,7 @@ HRESULT m_IDirect3DDevice9Ex::GetRenderTarget(THIS_ DWORD RenderTargetIndex, IDi
10401040
10411041 (*ppRenderTarget)->Release ();
10421042
1043- *ppRenderTarget = ShadowBackbuffer. GetCurrentBackBuffer ();
1043+ *ppRenderTarget = ShadowBackbuffer-> GetCurrentBackBuffer ();
10441044
10451045 if (!*ppRenderTarget)
10461046 {
@@ -2475,7 +2475,7 @@ void m_IDirect3DDevice9Ex::ApplyPrePresentFixes()
24752475 }
24762476
24772477 // Apply brightness level
2478- if (ShadowBackbuffer. Count () || IsGammaSet)
2478+ if (ShadowBackbuffer-> Count () || IsGammaSet)
24792479 {
24802480 ApplyBrightnessLevel ();
24812481 }
@@ -2523,26 +2523,26 @@ void m_IDirect3DDevice9Ex::ApplyPrePresentFixes()
25232523
25242524void m_IDirect3DDevice9Ex::ApplyPostPresentFixes ()
25252525{
2526- if (ShadowBackbuffer. Count ())
2526+ if (ShadowBackbuffer-> Count ())
25272527 {
25282528 if (SHARED.BackBufferCount == 1 )
25292529 {
2530- if (FAILED (ProxyInterface->StretchRect (ShadowBackbuffer. GetCurrentBackBuffer ()->GetProxyInterface (), nullptr , ShadowBackbuffer. GetCurrentFrontBuffer ()->GetProxyInterface (), nullptr , D3DTEXF_NONE)))
2530+ if (FAILED (ProxyInterface->StretchRect (ShadowBackbuffer-> GetCurrentBackBuffer ()->GetProxyInterface (), nullptr , ShadowBackbuffer-> GetCurrentFrontBuffer ()->GetProxyInterface (), nullptr , D3DTEXF_NONE)))
25312531 {
25322532 LOG_LIMIT (100 , __FUNCTION__ << " Warning: Failed to copy shadow backbuffer into shadow front buffer!" );
25332533 }
25342534 }
25352535 else
25362536 {
2537- ShadowBackbuffer. Rotate ();
2537+ ShadowBackbuffer-> Rotate ();
25382538
25392539 ComPtr<IDirect3DSurface9> pSurface;
25402540 if (SUCCEEDED (ProxyInterface->GetRenderTarget (0 , pSurface.GetAddressOf ())))
25412541 {
2542- if (pSurface.Get () == ShadowBackbuffer. GetCurrentFrontBuffer ()->GetProxyInterface () ||
2542+ if (pSurface.Get () == ShadowBackbuffer-> GetCurrentFrontBuffer ()->GetProxyInterface () ||
25432543 std::find (BackBufferList.begin (), BackBufferList.end (), pSurface.Get ()) != BackBufferList.end ())
25442544 {
2545- ProxyInterface->SetRenderTarget (0 , ShadowBackbuffer. GetCurrentBackBuffer ()->GetProxyInterface ());
2545+ ProxyInterface->SetRenderTarget (0 , ShadowBackbuffer-> GetCurrentBackBuffer ()->GetProxyInterface ());
25462546 }
25472547 }
25482548 }
@@ -2601,6 +2601,11 @@ void m_IDirect3DDevice9Ex::BeforeEndScene()
26012601#endif
26022602}
26032603
2604+ bool m_IDirect3DDevice9Ex::RequirePresentHandling () const
2605+ {
2606+ return ((Config.WindowModeGammaShader && IsGammaSet) || Config.ShowFPSCounter || ShadowBackbuffer->Count ());
2607+ }
2608+
26042609void m_IDirect3DDevice9Ex::LimitFrameRate () const
26052610{
26062611 // Count the number of frames
@@ -3059,7 +3064,7 @@ DWORD m_IDirect3DDevice9Ex::GetResourceRefCount()
30593064 (pFont ? 1 + FontRefCount : 0 ) +
30603065 (pSprite ? 2 + SprintRefCount : 0 ) +
30613066 (pStateBlock ? 1 : 0 ) +
3062- ShadowBackbuffer. Count ();
3067+ ShadowBackbuffer-> GetRefCount ();
30633068}
30643069
30653070void m_IDirect3DDevice9Ex::ReleaseResources (bool isReset)
@@ -3314,7 +3319,7 @@ void m_IDirect3DDevice9Ex::ReInitInterface()
33143319 DefaultRampData.blue [i] = value;
33153320 }
33163321
3317- ShadowBackbuffer. ReleaseAll ();
3322+ ShadowBackbuffer-> ReleaseAll ();
33183323
33193324 if (!SHARED.IsDirectDrawDevice && Config.UseShadowBackbuffer )
33203325 {
@@ -3354,18 +3359,18 @@ void m_IDirect3DDevice9Ex::CreateShadowBackbuffer()
33543359 }
33553360 }
33563361
3357- ShadowBackbuffer. Initialize (BackBufferCount);
3362+ ShadowBackbuffer-> Initialize (BackBufferCount);
33583363
33593364 for (size_t i = 0 ; i < BackBufferCount; ++i)
33603365 {
33613366 m_IDirect3DSurface9* surf = nullptr ;
33623367 if (FAILED (CreateRenderTarget (Desc.Width , Desc.Height , Desc.Format , Desc.MultiSampleType , Desc.MultiSampleQuality , FALSE , reinterpret_cast <IDirect3DSurface9**>(&surf), nullptr )))
33633368 {
33643369 Logging::Log () << __FUNCTION__ << " Error: failed to create render target!" ;
3365- ShadowBackbuffer. ReleaseAll ();
3370+ ShadowBackbuffer-> ReleaseAll ();
33663371 return ;
33673372 }
3368- ShadowBackbuffer. SetSurface (i, surf);
3373+ ShadowBackbuffer-> SetSurface (i, surf);
33693374
33703375 ComPtr<IDirect3DSurface9> pBackbuffer;
33713376 if (SUCCEEDED (ProxyInterface->GetBackBuffer (0 , i, D3DBACKBUFFER_TYPE_MONO, pBackbuffer.GetAddressOf ())))
@@ -3374,20 +3379,20 @@ void m_IDirect3DDevice9Ex::CreateShadowBackbuffer()
33743379 }
33753380 }
33763381
3377- ProxyInterface->SetRenderTarget (0 , ShadowBackbuffer. GetCurrentBackBuffer ()->GetProxyInterface ());
3382+ ProxyInterface->SetRenderTarget (0 , ShadowBackbuffer-> GetCurrentBackBuffer ()->GetProxyInterface ());
33783383}
33793384
33803385void m_IDirect3DDevice9Ex::ReleaseShadowBackbuffer ()
33813386{
3382- if (ShadowBackbuffer. Count ())
3387+ if (ShadowBackbuffer-> Count ())
33833388 {
33843389 ComPtr<IDirect3DSurface9> pBackbuffer;
33853390 if (SUCCEEDED (ProxyInterface->GetBackBuffer (0 , 0 , D3DBACKBUFFER_TYPE_MONO, pBackbuffer.GetAddressOf ())))
33863391 {
33873392 ProxyInterface->SetRenderTarget (0 , pBackbuffer.Get ());
33883393 }
33893394
3390- ShadowBackbuffer. ReleaseAll ();
3395+ ShadowBackbuffer-> ReleaseAll ();
33913396 }
33923397}
33933398
@@ -3723,7 +3728,7 @@ HRESULT m_IDirect3DDevice9Ex::FakeGetFrontBufferData(THIS_ UINT iSwapChain, IDir
37233728 }
37243729
37253730 // Get FrontBuffer data to new surface
3726- HRESULT hr = ShadowBackbuffer. Count () ?
3731+ HRESULT hr = ShadowBackbuffer-> Count () ?
37273732 GetFrontBufferShadowData (iSwapChain, pSourceSurface.Get ()) :
37283733 ProxyInterface->GetFrontBufferData (iSwapChain, pSourceSurface.Get ());
37293734 if (FAILED (hr))
@@ -3808,7 +3813,7 @@ HRESULT m_IDirect3DDevice9Ex::GetFrontBufferShadowData(THIS_ UINT iSwapChain, ID
38083813 return D3DERR_INVALIDCALL;
38093814 }
38103815
3811- IDirect3DSurface9* pShadowSurface = ShadowBackbuffer. GetCurrentFrontBuffer ()->GetProxyInterface ();
3816+ IDirect3DSurface9* pShadowSurface = ShadowBackbuffer-> GetCurrentFrontBuffer ()->GetProxyInterface ();
38123817
38133818 // Copy shadow buffer into destination
38143819 return ProxyInterface->StretchRect (pShadowSurface, nullptr , pDestSurface, nullptr , D3DTEXF_NONE);
0 commit comments