1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-21 21:39:40 +00:00

Increase loading screen FPS

Now that it's rendered in a background thread, we can have a smooth loading bar at virtually no performance cost.
This commit is contained in:
scrawl 2015-05-03 17:04:21 +02:00
parent 351fd842fd
commit 31ead3a9f4
2 changed files with 7 additions and 7 deletions

View file

@ -30,8 +30,8 @@ namespace MWGui
: WindowBase("openmw_loading_screen.layout") : WindowBase("openmw_loading_screen.layout")
, mVFS(vfs) , mVFS(vfs)
, mViewer(viewer) , mViewer(viewer)
, mLastRenderTime(0) , mLastRenderTime(0.0)
, mLastWallpaperChangeTime(0) , mLastWallpaperChangeTime(0.0)
, mProgress(0) , mProgress(0)
, mVSyncWasEnabled(false) , mVSyncWasEnabled(false)
{ {
@ -202,12 +202,10 @@ namespace MWGui
void LoadingScreen::draw() void LoadingScreen::draw()
{ {
const float loadingScreenFps = 20.f; const float loadingScreenFps = 120.f;
if (mTimer.time_m() > mLastRenderTime + (1.f/loadingScreenFps) * 1000.f) if (mTimer.time_m() > mLastRenderTime + (1.f/loadingScreenFps) * 1000.f)
{ {
mLastRenderTime = mTimer.time_m();
bool showWallpaper = (MWBase::Environment::get().getStateManager()->getState() bool showWallpaper = (MWBase::Environment::get().getStateManager()->getState()
== MWBase::StateManager::State_NoGame); == MWBase::StateManager::State_NoGame);
@ -230,6 +228,8 @@ namespace MWGui
// resume 3d rendering // resume 3d rendering
mViewer->getUpdateVisitor()->setTraversalMask(oldUpdateMask); mViewer->getUpdateVisitor()->setTraversalMask(oldUpdateMask);
mViewer->getCamera()->setCullMask(oldCullMask); mViewer->getCamera()->setCullMask(oldCullMask);
mLastRenderTime = mTimer.time_m();
} }
} }
} }

View file

@ -50,8 +50,8 @@ namespace MWGui
const VFS::Manager* mVFS; const VFS::Manager* mVFS;
osg::ref_ptr<osgViewer::Viewer> mViewer; osg::ref_ptr<osgViewer::Viewer> mViewer;
unsigned long mLastWallpaperChangeTime; double mLastWallpaperChangeTime;
unsigned long mLastRenderTime; double mLastRenderTime;
osg::Timer mTimer; osg::Timer mTimer;
size_t mProgress; size_t mProgress;