set volumetric fog to use the standard window-resized trigger for it's update

This commit is contained in:
AzaezelX 2019-10-17 09:54:38 -05:00
parent ec63be32e3
commit dbb7ef3976
3 changed files with 10 additions and 17 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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;