From dbb7ef3976203b36264007f6c7d8a9326aaf7f7f Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Thu, 17 Oct 2019 09:54:38 -0500 Subject: [PATCH] set volumetric fog to use the standard window-resized trigger for it's update --- .../environment/VolumetricFogRTManager.cpp | 20 +++++++------------ .../environment/VolumetricFogRTManager.h | 3 +-- .../windowManager/win32/win32Window.cpp | 4 ++-- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/Engine/source/environment/VolumetricFogRTManager.cpp b/Engine/source/environment/VolumetricFogRTManager.cpp index dfe05cefe..c9caf29e4 100644 --- a/Engine/source/environment/VolumetricFogRTManager.cpp +++ b/Engine/source/environment/VolumetricFogRTManager.cpp @@ -109,7 +109,7 @@ VolumetricFogRTManager::~VolumetricFogRTManager() void VolumetricFogRTManager::onSceneRemove() { if (mIsInitialized) - mPlatformWindow->getScreenResChangeSignal().remove(this, &VolumetricFogRTManager::ResizeRT); + mPlatformWindow->resizeEvent.remove(this, &VolumetricFogRTManager::ResizeRT); } void VolumetricFogRTManager::onRemove() @@ -148,7 +148,7 @@ bool VolumetricFogRTManager::Init() } mPlatformWindow = cv->getPlatformWindow(); - mPlatformWindow->getScreenResChangeSignal().notify(this,&VolumetricFogRTManager::ResizeRT); + mPlatformWindow->resizeEvent.notify(this,&VolumetricFogRTManager::ResizeRT); if (mTargetScale < 1 || GFX->getAdapterType() == Direct3D11) mTargetScale = 1; @@ -205,22 +205,17 @@ U32 VolumetricFogRTManager::DecFogObjects() return mNumFogObjects; } -void VolumetricFogRTManager::ResizeRT(PlatformWindow* win,bool resize) +void VolumetricFogRTManager::ResizeRT( WindowId did, S32 width, S32 height ) { - mFogHasAnswered = 0; smVolumetricFogRTMResizeSignal.trigger(this, true); } void VolumetricFogRTManager::FogAnswered() { - mFogHasAnswered++; - if (mFogHasAnswered == mNumFogObjects) - { - if (Resize()) - smVolumetricFogRTMResizeSignal.trigger(this, false); - else - Con::errorf("VolumetricFogRTManager::FogAnswered - Error resizing rendertargets!"); - } + if (Resize()) + smVolumetricFogRTMResizeSignal.trigger(this, false); + else + Con::errorf("VolumetricFogRTManager::FogAnswered - Error resizing rendertargets!"); } bool VolumetricFogRTManager::Resize() @@ -279,7 +274,6 @@ S32 VolumetricFogRTManager::setQuality(U32 Quality) mTargetScale = Quality; - mFogHasAnswered = 0; smVolumetricFogRTMResizeSignal.trigger(this, true); return mTargetScale; diff --git a/Engine/source/environment/VolumetricFogRTManager.h b/Engine/source/environment/VolumetricFogRTManager.h index 8000a4447..725f3b5db 100644 --- a/Engine/source/environment/VolumetricFogRTManager.h +++ b/Engine/source/environment/VolumetricFogRTManager.h @@ -59,13 +59,12 @@ class VolumetricFogRTManager : public SceneObject static S32 mTargetScale; bool mIsInitialized; U32 mNumFogObjects; - U32 mFogHasAnswered; U32 mWidth; U32 mHeight; void onRemove(); void onSceneRemove(); - void ResizeRT(PlatformWindow *win, bool resize); + void ResizeRT(WindowId did, S32 width, S32 height); static VolumetricFogRTMResizeSignal smVolumetricFogRTMResizeSignal; diff --git a/Engine/source/windowManager/win32/win32Window.cpp b/Engine/source/windowManager/win32/win32Window.cpp index 7d287cebd..21a0597d9 100644 --- a/Engine/source/windowManager/win32/win32Window.cpp +++ b/Engine/source/windowManager/win32/win32Window.cpp @@ -277,7 +277,7 @@ void Win32Window::setVideoMode( const GFXVideoMode &mode ) mOwningManager->raiseCurtain(); SetForegroundWindow( getHWND() ); - getScreenResChangeSignal().trigger( this, true ); + resizeEvent.trigger( this, true ); } bool Win32Window::clearFullscreen() @@ -806,7 +806,7 @@ LRESULT PASCAL Win32Window::WindowProc( HWND hWnd, UINT message, WPARAM wParam, window->getGFXTarget()->resetMode(); } - window->getScreenResChangeSignal().trigger(window, true); + window->resizeEvent.trigger(window, true); } return 0;