Re-submission of the Volumetric Fog PR, with cleanup.

This commit is contained in:
Areloch 2015-12-01 00:10:13 -06:00
parent 272e3138a0
commit a90eb9762b
62 changed files with 2541 additions and 6 deletions

View file

@ -22,7 +22,7 @@
#include "windowManager/platformWindow.h"
ScreenResChangeSignal PlatformWindow::smScreenResChangeSignal;
//-----------------------------------------------------------------------------
void PlatformWindow::setFullscreen( const bool fullscreen )
@ -48,3 +48,8 @@ bool PlatformWindow::shouldNotTranslate( U32 modifiers, U32 keyCode ) const
else
return false;
}
void PlatformWindow::setVideoMode(const GFXVideoMode &mode)
{
_setVideoMode(mode);
getScreenResChangeSignal().trigger(this, true);
}

View file

@ -28,6 +28,9 @@
#include "core/util/safeDelete.h"
#include "windowManager/platformCursorController.h"
#include "windowManager/windowInputGenerator.h"
#ifndef _SIGNAL_H_ //Volumetric Fog
#include "core/util/tSignal.h"
#endif
//forward decl's
class PlatformWindowManager;
@ -35,7 +38,7 @@ class GFXDevice;
struct GFXVideoMode;
class GFXWindowTarget;
class IProcessInput;
typedef Signal<void(PlatformWindow *PlatformWindow, bool resize)> ScreenResChangeSignal;
/// Abstract representation of a native OS window.
///
/// Every windowing system has its own representations and conventions as
@ -110,7 +113,7 @@ protected:
// This controller maps window input (Mouse/Keyboard) to a generic input consumer
mWindowInputGenerator = new WindowInputGenerator( this );
}
static ScreenResChangeSignal smScreenResChangeSignal;
public:
/// To get rid of a window, just delete it. Make sure the GFXDevice is
@ -158,7 +161,7 @@ public:
virtual GFXWindowTarget *getGFXTarget()=0;
/// Set the video mode for this window.
virtual void setVideoMode(const GFXVideoMode &mode)=0;
virtual void setVideoMode(const GFXVideoMode &mode);
/// Get our current video mode - if the window has been resized, it will
/// reflect this.
@ -497,6 +500,7 @@ public:
IdleEvent idleEvent;
/// @}
static ScreenResChangeSignal& getScreenResChangeSignal() { return smScreenResChangeSignal; }
/// Get the platform specific object needed to create or attach an accelerated
/// graohics drawing context on or to the window
@ -507,6 +511,7 @@ public:
virtual void* getPlatformDrawable() const = 0;
protected:
virtual void _setFullscreen(const bool fullScreen) {};
virtual void _setVideoMode(const GFXVideoMode &mode) {};
};
#endif

View file

@ -287,6 +287,8 @@ void Win32Window::setVideoMode( const GFXVideoMode &mode )
mOwningManager->raiseCurtain();
SetForegroundWindow(getHWND());
getScreenResChangeSignal().trigger(this, true);
}
bool Win32Window::clearFullscreen()