mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-04-10 15:45:37 +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:
parent
351fd842fd
commit
31ead3a9f4
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user