mirror of
https://github.com/OpenMW/openmw.git
synced 2025-04-21 16:36:45 +00:00
Post processing shaders now use the same lua commands, no more launcher option to enable live reload
This commit is contained in:
parent
3ab0a99154
commit
df69fc7659
5 changed files with 23 additions and 20 deletions
|
@ -152,7 +152,6 @@ bool Launcher::AdvancedPage::loadSettings()
|
||||||
|
|
||||||
connect(postprocessEnabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(slotPostProcessToggled(bool)));
|
connect(postprocessEnabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(slotPostProcessToggled(bool)));
|
||||||
loadSettingBool(postprocessEnabledCheckBox, "enabled", "Post Processing");
|
loadSettingBool(postprocessEnabledCheckBox, "enabled", "Post Processing");
|
||||||
loadSettingBool(postprocessLiveReloadCheckBox, "live reload", "Post Processing");
|
|
||||||
loadSettingBool(postprocessTransparentPostpassCheckBox, "transparent postpass", "Post Processing");
|
loadSettingBool(postprocessTransparentPostpassCheckBox, "transparent postpass", "Post Processing");
|
||||||
postprocessHDRTimeComboBox->setValue(Settings::Manager::getDouble("auto exposure speed", "Post Processing"));
|
postprocessHDRTimeComboBox->setValue(Settings::Manager::getDouble("auto exposure speed", "Post Processing"));
|
||||||
|
|
||||||
|
@ -309,7 +308,6 @@ void Launcher::AdvancedPage::saveSettings()
|
||||||
saveSettingBool(nightDaySwitchesCheckBox, "day night switches", "Game");
|
saveSettingBool(nightDaySwitchesCheckBox, "day night switches", "Game");
|
||||||
|
|
||||||
saveSettingBool(postprocessEnabledCheckBox, "enabled", "Post Processing");
|
saveSettingBool(postprocessEnabledCheckBox, "enabled", "Post Processing");
|
||||||
saveSettingBool(postprocessLiveReloadCheckBox, "live reload", "Post Processing");
|
|
||||||
saveSettingBool(postprocessTransparentPostpassCheckBox, "transparent postpass", "Post Processing");
|
saveSettingBool(postprocessTransparentPostpassCheckBox, "transparent postpass", "Post Processing");
|
||||||
double hdrExposureTime = postprocessHDRTimeComboBox->value();
|
double hdrExposureTime = postprocessHDRTimeComboBox->value();
|
||||||
if (hdrExposureTime != Settings::Manager::getDouble("auto exposure speed", "Post Processing"))
|
if (hdrExposureTime != Settings::Manager::getDouble("auto exposure speed", "Post Processing"))
|
||||||
|
@ -466,7 +464,6 @@ void Launcher::AdvancedPage::slotAnimSourcesToggled(bool checked)
|
||||||
|
|
||||||
void Launcher::AdvancedPage::slotPostProcessToggled(bool checked)
|
void Launcher::AdvancedPage::slotPostProcessToggled(bool checked)
|
||||||
{
|
{
|
||||||
postprocessLiveReloadCheckBox->setEnabled(checked);
|
|
||||||
postprocessTransparentPostpassCheckBox->setEnabled(checked);
|
postprocessTransparentPostpassCheckBox->setEnabled(checked);
|
||||||
postprocessHDRTimeComboBox->setEnabled(checked);
|
postprocessHDRTimeComboBox->setEnabled(checked);
|
||||||
postprocessHDRTimeLabel->setEnabled(checked);
|
postprocessHDRTimeLabel->setEnabled(checked);
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "../mwbase/environment.hpp"
|
#include "../mwbase/environment.hpp"
|
||||||
#include "../mwbase/world.hpp"
|
#include "../mwbase/world.hpp"
|
||||||
#include "../mwrender/renderingmanager.hpp"
|
#include "../mwrender/renderingmanager.hpp"
|
||||||
|
#include "../mwrender/postprocessor.hpp"
|
||||||
|
|
||||||
#include <components/resource/resourcesystem.hpp>
|
#include <components/resource/resourcesystem.hpp>
|
||||||
#include <components/resource/scenemanager.hpp>
|
#include <components/resource/scenemanager.hpp>
|
||||||
|
@ -54,7 +55,10 @@ namespace MWLua
|
||||||
{
|
{
|
||||||
context.mLuaManager->addAction([]
|
context.mLuaManager->addAction([]
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWorld()->getRenderingManager()->getResourceSystem()->getSceneManager()->getShaderManager().triggerShaderReload();
|
auto world = MWBase::Environment::get().getWorld();
|
||||||
|
|
||||||
|
world->getRenderingManager()->getResourceSystem()->getSceneManager()->getShaderManager().triggerShaderReload();
|
||||||
|
world->getPostProcessor()->triggerShaderReload();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,7 +66,9 @@ namespace MWLua
|
||||||
{
|
{
|
||||||
context.mLuaManager->addAction([value]
|
context.mLuaManager->addAction([value]
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWorld()->getRenderingManager()->getResourceSystem()->getSceneManager()->getShaderManager().setHotReloadEnabled(value);
|
auto world = MWBase::Environment::get().getWorld();
|
||||||
|
world->getRenderingManager()->getResourceSystem()->getSceneManager()->getShaderManager().setHotReloadEnabled(value);
|
||||||
|
world->getPostProcessor()->mEnableLiveReload = value;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,7 @@ namespace MWRender
|
||||||
{
|
{
|
||||||
PostProcessor::PostProcessor(RenderingManager& rendering, osgViewer::Viewer* viewer, osg::Group* rootNode, const VFS::Manager* vfs)
|
PostProcessor::PostProcessor(RenderingManager& rendering, osgViewer::Viewer* viewer, osg::Group* rootNode, const VFS::Manager* vfs)
|
||||||
: osg::Group()
|
: osg::Group()
|
||||||
|
, mEnableLiveReload(false)
|
||||||
, mRootNode(rootNode)
|
, mRootNode(rootNode)
|
||||||
, mSamples(Settings::Manager::getInt("antialiasing", "Video"))
|
, mSamples(Settings::Manager::getInt("antialiasing", "Video"))
|
||||||
, mDirty(false)
|
, mDirty(false)
|
||||||
|
@ -109,6 +110,7 @@ namespace MWRender
|
||||||
, mRendering(rendering)
|
, mRendering(rendering)
|
||||||
, mViewer(viewer)
|
, mViewer(viewer)
|
||||||
, mVFS(vfs)
|
, mVFS(vfs)
|
||||||
|
, mTriggerShaderReload(false)
|
||||||
, mReload(false)
|
, mReload(false)
|
||||||
, mEnabled(false)
|
, mEnabled(false)
|
||||||
, mUsePostProcessing(false)
|
, mUsePostProcessing(false)
|
||||||
|
@ -370,10 +372,11 @@ namespace MWRender
|
||||||
|
|
||||||
void PostProcessor::updateLiveReload()
|
void PostProcessor::updateLiveReload()
|
||||||
{
|
{
|
||||||
static const bool liveReload = Settings::Manager::getBool("live reload", "Post Processing");
|
if (!mEnableLiveReload && !mTriggerShaderReload)
|
||||||
if (!liveReload)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
mTriggerShaderReload = false;//Done only once
|
||||||
|
|
||||||
for (auto& technique : mTechniques)
|
for (auto& technique : mTechniques)
|
||||||
{
|
{
|
||||||
if (technique->getStatus() == fx::Technique::Status::File_Not_exists)
|
if (technique->getStatus() == fx::Technique::Status::File_Not_exists)
|
||||||
|
@ -890,5 +893,10 @@ namespace MWRender
|
||||||
return Stereo::Manager::instance().eyeResolution().y();
|
return Stereo::Manager::instance().eyeResolution().y();
|
||||||
return mHeight;
|
return mHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PostProcessor::triggerShaderReload()
|
||||||
|
{
|
||||||
|
mTriggerShaderReload = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -180,6 +180,10 @@ namespace MWRender
|
||||||
int renderWidth() const;
|
int renderWidth() const;
|
||||||
int renderHeight() const;
|
int renderHeight() const;
|
||||||
|
|
||||||
|
void triggerShaderReload();
|
||||||
|
|
||||||
|
bool mEnableLiveReload;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void populateTechniqueFiles();
|
void populateTechniqueFiles();
|
||||||
|
@ -225,6 +229,7 @@ namespace MWRender
|
||||||
osgViewer::Viewer* mViewer;
|
osgViewer::Viewer* mViewer;
|
||||||
const VFS::Manager* mVFS;
|
const VFS::Manager* mVFS;
|
||||||
|
|
||||||
|
bool mTriggerShaderReload;
|
||||||
bool mReload;
|
bool mReload;
|
||||||
bool mEnabled;
|
bool mEnabled;
|
||||||
bool mUsePostProcessing;
|
bool mUsePostProcessing;
|
||||||
|
|
|
@ -670,19 +670,6 @@
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>20</number>
|
<number>20</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="postprocessLiveReloadCheckBox">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Debug Mode. Automatically reload active shaders when they are modified on filesystem.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Live reload</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="postprocessTransparentPostpassCheckBox">
|
<widget class="QCheckBox" name="postprocessTransparentPostpassCheckBox">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
|
|
Loading…
Reference in a new issue