forked from teamnwah/openmw-tes3coop
Merge remote-tracking branch 'scrawl/gamma' into next
This commit is contained in:
commit
87a9373a56
14 changed files with 101 additions and 19 deletions
|
@ -633,7 +633,7 @@ if (APPLE)
|
||||||
include(CPack)
|
include(CPack)
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
if (NOT WIN32 AND NOT DPKG_PROGRAM)
|
if (NOT WIN32 AND NOT DPKG_PROGRAM AND NOT APPLE)
|
||||||
## Non Debian based Linux building
|
## Non Debian based Linux building
|
||||||
# paths
|
# paths
|
||||||
set(BINDIR "${CMAKE_INSTALL_PREFIX}/usr/bin" CACHE PATH "Where to install binaries")
|
set(BINDIR "${CMAKE_INSTALL_PREFIX}/usr/bin" CACHE PATH "Where to install binaries")
|
||||||
|
@ -664,4 +664,4 @@ if (NOT WIN32 AND NOT DPKG_PROGRAM)
|
||||||
# Install resources
|
# Install resources
|
||||||
INSTALL(DIRECTORY "${OpenMW_BINARY_DIR}/resources" DESTINATION "${DATADIR}" )
|
INSTALL(DIRECTORY "${OpenMW_BINARY_DIR}/resources" DESTINATION "${DATADIR}" )
|
||||||
INSTALL(FILES "${OpenMW_BINARY_DIR}/launcher.qss" DESTINATION "${DATADIR}/resources" )
|
INSTALL(FILES "${OpenMW_BINARY_DIR}/launcher.qss" DESTINATION "${DATADIR}/resources" )
|
||||||
endif(NOT WIN32 AND NOT DPKG_PROGRAM)
|
endif(NOT WIN32 AND NOT DPKG_PROGRAM AND NOT APPLE)
|
||||||
|
|
|
@ -299,6 +299,7 @@ void OMW::Engine::go()
|
||||||
mOgre->configure(
|
mOgre->configure(
|
||||||
mCfgMgr.getLogPath().string(),
|
mCfgMgr.getLogPath().string(),
|
||||||
renderSystem,
|
renderSystem,
|
||||||
|
Settings::Manager::getString("opengl rtt mode", "Video"),
|
||||||
false);
|
false);
|
||||||
|
|
||||||
// This has to be added BEFORE MyGUI is initialized, as it needs
|
// This has to be added BEFORE MyGUI is initialized, as it needs
|
||||||
|
|
|
@ -122,6 +122,7 @@ namespace MWGui
|
||||||
getWidget(mInvertYButton, "InvertYButton");
|
getWidget(mInvertYButton, "InvertYButton");
|
||||||
getWidget(mUISensitivitySlider, "UISensitivitySlider");
|
getWidget(mUISensitivitySlider, "UISensitivitySlider");
|
||||||
getWidget(mCameraSensitivitySlider, "CameraSensitivitySlider");
|
getWidget(mCameraSensitivitySlider, "CameraSensitivitySlider");
|
||||||
|
getWidget(mGammaSlider, "GammaSlider");
|
||||||
|
|
||||||
mSubtitlesButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
mSubtitlesButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
||||||
mCrosshairButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
mCrosshairButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
||||||
|
@ -143,6 +144,7 @@ namespace MWGui
|
||||||
mViewDistanceSlider->eventScrollChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onSliderChangePosition);
|
mViewDistanceSlider->eventScrollChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onSliderChangePosition);
|
||||||
mResolutionList->eventListChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onResolutionSelected);
|
mResolutionList->eventListChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onResolutionSelected);
|
||||||
mAnisotropySlider->eventScrollChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onSliderChangePosition);
|
mAnisotropySlider->eventScrollChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onSliderChangePosition);
|
||||||
|
mGammaSlider->eventScrollChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onSliderChangePosition);
|
||||||
|
|
||||||
mShadowsEnabledButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
mShadowsEnabledButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
||||||
mShadowsLargeDistance->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
mShadowsLargeDistance->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onButtonToggled);
|
||||||
|
@ -200,6 +202,14 @@ namespace MWGui
|
||||||
getWidget(fovText, "FovText");
|
getWidget(fovText, "FovText");
|
||||||
fovText->setCaption("Field of View (" + boost::lexical_cast<std::string>(int(Settings::Manager::getFloat("field of view", "General"))) + ")");
|
fovText->setCaption("Field of View (" + boost::lexical_cast<std::string>(int(Settings::Manager::getFloat("field of view", "General"))) + ")");
|
||||||
|
|
||||||
|
float gammaVal = (Settings::Manager::getFloat("gamma", "Video")-0.1f)/(3.f-0.1f);
|
||||||
|
mGammaSlider->setScrollPosition(gammaVal * (mGammaSlider->getScrollRange()-1));
|
||||||
|
MyGUI::TextBox* gammaText;
|
||||||
|
getWidget(gammaText, "GammaText");
|
||||||
|
std::stringstream gamma;
|
||||||
|
gamma << std::setprecision (2) << Settings::Manager::getFloat("gamma", "Video");
|
||||||
|
gammaText->setCaption("Gamma (" + gamma.str() + ")");
|
||||||
|
|
||||||
float anisotropyVal = Settings::Manager::getInt("anisotropy", "General") / 16.0;
|
float anisotropyVal = Settings::Manager::getInt("anisotropy", "General") / 16.0;
|
||||||
mAnisotropySlider->setScrollPosition(anisotropyVal * (mAnisotropySlider->getScrollRange()-1));
|
mAnisotropySlider->setScrollPosition(anisotropyVal * (mAnisotropySlider->getScrollRange()-1));
|
||||||
std::string tf = Settings::Manager::getString("texture filtering", "General");
|
std::string tf = Settings::Manager::getString("texture filtering", "General");
|
||||||
|
@ -511,6 +521,15 @@ namespace MWGui
|
||||||
fovText->setCaption("Field of View (" + boost::lexical_cast<std::string>(int((1-val) * sFovMin + val * sFovMax)) + ")");
|
fovText->setCaption("Field of View (" + boost::lexical_cast<std::string>(int((1-val) * sFovMin + val * sFovMax)) + ")");
|
||||||
Settings::Manager::setFloat("field of view", "General", (1-val) * sFovMin + val * sFovMax);
|
Settings::Manager::setFloat("field of view", "General", (1-val) * sFovMin + val * sFovMax);
|
||||||
}
|
}
|
||||||
|
else if (scroller == mGammaSlider)
|
||||||
|
{
|
||||||
|
Settings::Manager::setFloat("gamma", "Video", (1-val) * 0.1f + val * 3.f);
|
||||||
|
MyGUI::TextBox* gammaText;
|
||||||
|
getWidget(gammaText, "GammaText");
|
||||||
|
std::stringstream gamma;
|
||||||
|
gamma << std::setprecision (2) << Settings::Manager::getFloat("gamma", "Video");
|
||||||
|
gammaText->setCaption("Gamma (" + gamma.str() + ")");
|
||||||
|
}
|
||||||
else if (scroller == mAnisotropySlider)
|
else if (scroller == mAnisotropySlider)
|
||||||
{
|
{
|
||||||
mAnisotropyLabel->setCaption("Anisotropy (" + boost::lexical_cast<std::string>(int(val*16)) + ")");
|
mAnisotropyLabel->setCaption("Anisotropy (" + boost::lexical_cast<std::string>(int(val*16)) + ")");
|
||||||
|
|
|
@ -40,6 +40,7 @@ namespace MWGui
|
||||||
MyGUI::Button* mFPSButton;
|
MyGUI::Button* mFPSButton;
|
||||||
MyGUI::ScrollBar* mViewDistanceSlider;
|
MyGUI::ScrollBar* mViewDistanceSlider;
|
||||||
MyGUI::ScrollBar* mFOVSlider;
|
MyGUI::ScrollBar* mFOVSlider;
|
||||||
|
MyGUI::ScrollBar* mGammaSlider;
|
||||||
MyGUI::ScrollBar* mAnisotropySlider;
|
MyGUI::ScrollBar* mAnisotropySlider;
|
||||||
MyGUI::Button* mTextureFilteringButton;
|
MyGUI::Button* mTextureFilteringButton;
|
||||||
MyGUI::TextBox* mAnisotropyLabel;
|
MyGUI::TextBox* mAnisotropyLabel;
|
||||||
|
|
|
@ -47,10 +47,22 @@ void TextInputDialog::open()
|
||||||
|
|
||||||
void TextInputDialog::onOkClicked(MyGUI::Widget* _sender)
|
void TextInputDialog::onOkClicked(MyGUI::Widget* _sender)
|
||||||
{
|
{
|
||||||
|
if (mTextEdit->getCaption() == "")
|
||||||
|
{
|
||||||
|
mWindowManager.messageBox ("#{sNotifyMessage37}", std::vector<std::string>());
|
||||||
|
MyGUI::InputManager::getInstance ().setKeyFocusWidget (mTextEdit);
|
||||||
|
}
|
||||||
|
else
|
||||||
eventDone(this);
|
eventDone(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextInputDialog::onTextAccepted(MyGUI::Edit* _sender)
|
void TextInputDialog::onTextAccepted(MyGUI::Edit* _sender)
|
||||||
{
|
{
|
||||||
|
if (mTextEdit->getCaption() == "")
|
||||||
|
{
|
||||||
|
mWindowManager.messageBox ("#{sNotifyMessage37}", std::vector<std::string>());
|
||||||
|
MyGUI::InputManager::getInstance ().setKeyFocusWidget (mTextEdit);
|
||||||
|
}
|
||||||
|
else
|
||||||
eventDone(this);
|
eventDone(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,8 @@ namespace MWRender
|
||||||
CharacterPreview::~CharacterPreview ()
|
CharacterPreview::~CharacterPreview ()
|
||||||
{
|
{
|
||||||
Ogre::TextureManager::getSingleton().remove(mName);
|
Ogre::TextureManager::getSingleton().remove(mName);
|
||||||
|
mSceneMgr->destroyCamera (mName);
|
||||||
|
delete mAnimation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -129,6 +129,8 @@ RenderingManager::RenderingManager (OEngine::Render::OgreRenderer& _rend, const
|
||||||
sh::Factory::getInstance ().setSharedParameter ("waterTimer", sh::makeProperty<sh::FloatValue>(new sh::FloatValue(0)));
|
sh::Factory::getInstance ().setSharedParameter ("waterTimer", sh::makeProperty<sh::FloatValue>(new sh::FloatValue(0)));
|
||||||
sh::Factory::getInstance ().setSharedParameter ("windDir_windSpeed", sh::makeProperty<sh::Vector3>(new sh::Vector3(0.5, -0.8, 0.2)));
|
sh::Factory::getInstance ().setSharedParameter ("windDir_windSpeed", sh::makeProperty<sh::Vector3>(new sh::Vector3(0.5, -0.8, 0.2)));
|
||||||
sh::Factory::getInstance ().setSharedParameter ("waterSunFade_sunHeight", sh::makeProperty<sh::Vector2>(new sh::Vector2(1, 0.6)));
|
sh::Factory::getInstance ().setSharedParameter ("waterSunFade_sunHeight", sh::makeProperty<sh::Vector2>(new sh::Vector2(1, 0.6)));
|
||||||
|
sh::Factory::getInstance ().setSharedParameter ("gammaCorrection", sh::makeProperty<sh::FloatValue>(new sh::FloatValue(
|
||||||
|
Settings::Manager::getFloat ("gamma", "Video"))));
|
||||||
|
|
||||||
applyCompositors();
|
applyCompositors();
|
||||||
|
|
||||||
|
@ -749,6 +751,11 @@ void RenderingManager::processChangedSettings(const Settings::CategorySettingVec
|
||||||
sh::Factory::getInstance ().setShadersEnabled (Settings::Manager::getBool("shaders", "Objects"));
|
sh::Factory::getInstance ().setShadersEnabled (Settings::Manager::getBool("shaders", "Objects"));
|
||||||
mObjects.rebuildStaticGeometry ();
|
mObjects.rebuildStaticGeometry ();
|
||||||
}
|
}
|
||||||
|
else if (it->second == "gamma" && it->first == "Video")
|
||||||
|
{
|
||||||
|
sh::Factory::getInstance ().setSharedParameter ("gammaCorrection", sh::makeProperty<sh::FloatValue>(new sh::FloatValue(
|
||||||
|
Settings::Manager::getFloat ("gamma", "Video"))));
|
||||||
|
}
|
||||||
else if (it->second == "shader mode" && it->first == "General")
|
else if (it->second == "shader mode" && it->first == "General")
|
||||||
{
|
{
|
||||||
sh::Language lang;
|
sh::Language lang;
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
#define gammaCorrectRead(v) pow(v, float3(gammaCorrection,gammaCorrection,gammaCorrection))
|
||||||
|
#define gammaCorrectOutput(v) pow(v, float3(1.f/gammaCorrection,1.f/gammaCorrection,1.f/gammaCorrection))
|
||||||
|
|
||||||
|
|
||||||
#if SH_HLSL == 1 || SH_CG == 1
|
#if SH_HLSL == 1 || SH_CG == 1
|
||||||
|
|
||||||
#define shTexture2D sampler2D
|
#define shTexture2D sampler2D
|
||||||
|
|
|
@ -112,6 +112,8 @@
|
||||||
shUniform(float, far) @shAutoConstant(far, far_clip_distance)
|
shUniform(float, far) @shAutoConstant(far, far_clip_distance)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
shUniform(float, gammaCorrection) @shSharedParameter(gammaCorrection, gammaCorrection)
|
||||||
|
|
||||||
#if LIGHTING
|
#if LIGHTING
|
||||||
shInput(float3, normalPassthrough)
|
shInput(float3, normalPassthrough)
|
||||||
shInput(float3, objSpacePositionPassthrough)
|
shInput(float3, objSpacePositionPassthrough)
|
||||||
|
@ -173,6 +175,7 @@
|
||||||
SH_START_PROGRAM
|
SH_START_PROGRAM
|
||||||
{
|
{
|
||||||
shOutputColour(0) = shSample(diffuseMap, UV);
|
shOutputColour(0) = shSample(diffuseMap, UV);
|
||||||
|
shOutputColour(0).xyz = gammaCorrectRead(shOutputColour(0).xyz);
|
||||||
|
|
||||||
#if LIGHTING
|
#if LIGHTING
|
||||||
float3 normal = normalize(normalPassthrough);
|
float3 normal = normalize(normalPassthrough);
|
||||||
|
@ -259,7 +262,7 @@
|
||||||
// regular fog only if fragment is above water
|
// regular fog only if fragment is above water
|
||||||
if (worldPos.y > waterLevel)
|
if (worldPos.y > waterLevel)
|
||||||
#endif
|
#endif
|
||||||
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, fogColour, fogValue);
|
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, gammaCorrectRead(fogColour), fogValue);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// prevent negative colour output (for example with negative lights)
|
// prevent negative colour output (for example with negative lights)
|
||||||
|
@ -274,12 +277,11 @@
|
||||||
|
|
||||||
float waterSunGradient = dot(eyeVec, -normalize(lightDirectionWS0.xyz));
|
float waterSunGradient = dot(eyeVec, -normalize(lightDirectionWS0.xyz));
|
||||||
waterSunGradient = shSaturate(pow(waterSunGradient*0.7+0.3,2.0));
|
waterSunGradient = shSaturate(pow(waterSunGradient*0.7+0.3,2.0));
|
||||||
float3 waterSunColour = float3(0.0,1.0,0.85)*waterSunGradient * 0.5;
|
float3 waterSunColour = gammaCorrectRead(float3(0.0,1.0,0.85)) *waterSunGradient * 0.5;
|
||||||
|
|
||||||
float waterGradient = dot(eyeVec, float3(0.0,-1.0,0.0));
|
float waterGradient = dot(eyeVec, float3(0.0,-1.0,0.0));
|
||||||
waterGradient = clamp((waterGradient*0.5+0.5),0.2,1.0);
|
waterGradient = clamp((waterGradient*0.5+0.5),0.2,1.0);
|
||||||
float3 watercolour = (float3(0.0078, 0.5176, 0.700)+waterSunColour)*waterGradient*2.0;
|
float3 watercolour = ( gammaCorrectRead(float3(0.0078, 0.5176, 0.700))+waterSunColour)*waterGradient*2.0;
|
||||||
float3 waterext = float3(0.6, 0.9, 1.0);//water extinction
|
|
||||||
watercolour = shLerp(watercolour*0.3*waterSunFade_sunHeight.x, watercolour, shSaturate(1.0-exp(-waterSunFade_sunHeight.y*SUN_EXT)));
|
watercolour = shLerp(watercolour*0.3*waterSunFade_sunHeight.x, watercolour, shSaturate(1.0-exp(-waterSunFade_sunHeight.y*SUN_EXT)));
|
||||||
watercolour = (cameraPos.y <= waterLevel) ? watercolour : watercolour*0.3;
|
watercolour = (cameraPos.y <= waterLevel) ? watercolour : watercolour*0.3;
|
||||||
|
|
||||||
|
@ -292,6 +294,8 @@
|
||||||
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, watercolour, fogAmount * isUnderwater * waterEnabled);
|
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, watercolour, fogAmount * isUnderwater * waterEnabled);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
shOutputColour(0).xyz = gammaCorrectOutput(shOutputColour(0).xyz);
|
||||||
|
|
||||||
#if MRT
|
#if MRT
|
||||||
shOutputColour(1) = float4(depthPassthrough / far,1,1,1);
|
shOutputColour(1) = float4(depthPassthrough / far,1,1,1);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -137,6 +137,8 @@
|
||||||
|
|
||||||
shSampler2D(normalMap) // global normal map
|
shSampler2D(normalMap) // global normal map
|
||||||
|
|
||||||
|
shUniform(float, gammaCorrection) @shSharedParameter(gammaCorrection, gammaCorrection)
|
||||||
|
|
||||||
|
|
||||||
@shForeach(@shPropertyString(num_blendmaps))
|
@shForeach(@shPropertyString(num_blendmaps))
|
||||||
shSampler2D(blendMap@shIterator)
|
shSampler2D(blendMap@shIterator)
|
||||||
|
@ -247,9 +249,9 @@
|
||||||
|
|
||||||
#if IS_FIRST_PASS == 1 && @shIterator == 0
|
#if IS_FIRST_PASS == 1 && @shIterator == 0
|
||||||
// first layer of first pass doesn't need a blend map
|
// first layer of first pass doesn't need a blend map
|
||||||
albedo = shSample(diffuseMap0, UV * 10).rgb;
|
albedo = gammaCorrectRead(shSample(diffuseMap0, UV * 10).rgb);
|
||||||
#else
|
#else
|
||||||
albedo = shLerp(albedo, shSample(diffuseMap@shIterator, UV * 10).rgb, blendValues@shPropertyString(blendmap_component_@shIterator));
|
albedo = shLerp(albedo, gammaCorrectRead(shSample(diffuseMap@shIterator, UV * 10).rgb), blendValues@shPropertyString(blendmap_component_@shIterator));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@shEndForeach
|
@shEndForeach
|
||||||
|
@ -336,7 +338,7 @@
|
||||||
// regular fog only if fragment is above water
|
// regular fog only if fragment is above water
|
||||||
if (worldPos.y > waterLevel)
|
if (worldPos.y > waterLevel)
|
||||||
#endif
|
#endif
|
||||||
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, fogColour, fogValue);
|
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, gammaCorrectRead(fogColour), fogValue);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// prevent negative colour output (for example with negative lights)
|
// prevent negative colour output (for example with negative lights)
|
||||||
|
@ -351,12 +353,12 @@
|
||||||
|
|
||||||
float waterSunGradient = dot(eyeVec, -normalize(lightDirectionWS0.xyz));
|
float waterSunGradient = dot(eyeVec, -normalize(lightDirectionWS0.xyz));
|
||||||
waterSunGradient = shSaturate(pow(waterSunGradient*0.7+0.3,2.0));
|
waterSunGradient = shSaturate(pow(waterSunGradient*0.7+0.3,2.0));
|
||||||
float3 waterSunColour = float3(0.0,1.0,0.85)*waterSunGradient * 0.5;
|
float3 waterSunColour = gammaCorrectRead(float3(0.0,1.0,0.85))*waterSunGradient * 0.5;
|
||||||
|
|
||||||
float waterGradient = dot(eyeVec, float3(0.0,-1.0,0.0));
|
float waterGradient = dot(eyeVec, float3(0.0,-1.0,0.0));
|
||||||
waterGradient = clamp((waterGradient*0.5+0.5),0.2,1.0);
|
waterGradient = clamp((waterGradient*0.5+0.5),0.2,1.0);
|
||||||
float3 watercolour = (float3(0.0078, 0.5176, 0.700)+waterSunColour)*waterGradient*2.0;
|
float3 watercolour = (gammaCorrectRead(float3(0.0078, 0.5176, 0.700))+waterSunColour)*waterGradient*2.0;
|
||||||
float3 waterext = float3(0.6, 0.9, 1.0);//water extinction
|
float3 waterext = gammaCorrectRead(float3(0.6, 0.9, 1.0));//water extinction
|
||||||
watercolour = shLerp(watercolour*0.3*waterSunFade_sunHeight.x, watercolour, shSaturate(1.0-exp(-waterSunFade_sunHeight.y*SUN_EXT)));
|
watercolour = shLerp(watercolour*0.3*waterSunFade_sunHeight.x, watercolour, shSaturate(1.0-exp(-waterSunFade_sunHeight.y*SUN_EXT)));
|
||||||
watercolour = (cameraPos.y <= waterLevel) ? watercolour : watercolour*0.3;
|
watercolour = (cameraPos.y <= waterLevel) ? watercolour : watercolour*0.3;
|
||||||
|
|
||||||
|
@ -369,6 +371,8 @@
|
||||||
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, watercolour, fogAmount * isUnderwater);
|
shOutputColour(0).xyz = shLerp (shOutputColour(0).xyz, watercolour, fogAmount * isUnderwater);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
shOutputColour(0).xyz = gammaCorrectOutput(shOutputColour(0).xyz);
|
||||||
|
|
||||||
|
|
||||||
#if MRT
|
#if MRT
|
||||||
shOutputColour(1) = float4(depth / far,1,1,1);
|
shOutputColour(1) = float4(depth / far,1,1,1);
|
||||||
|
|
|
@ -157,7 +157,7 @@
|
||||||
<Widget type="TabItem" skin="" position="4 28 344 272">
|
<Widget type="TabItem" skin="" position="4 28 344 272">
|
||||||
<Property key="Caption" value=" Video "/>
|
<Property key="Caption" value=" Video "/>
|
||||||
|
|
||||||
<Widget type="ListBox" skin="MW_List" position="4 4 200 150" align="Left Top" name="ResolutionList"/>
|
<Widget type="ListBox" skin="MW_List" position="4 4 200 120" align="Left Top" name="ResolutionList"/>
|
||||||
|
|
||||||
|
|
||||||
<Widget type="HBox" position="212 4 300 24">
|
<Widget type="HBox" position="212 4 300 24">
|
||||||
|
@ -174,20 +174,37 @@
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="HBox" position="212 104 300 24">
|
<Widget type="HBox" position="212 64 300 24">
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" align="Left Top" name="ShadersButton"/>
|
<Widget type="AutoSizedButton" skin="MW_Button" align="Left Top" name="ShadersButton"/>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText" align="Left Top">
|
<Widget type="AutoSizedTextBox" skin="SandText" align="Left Top">
|
||||||
<Property key="Caption" value="Shaders"/>
|
<Property key="Caption" value="Shaders"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="HBox" position="4 163 300 24">
|
<Widget type="HBox" position="212 94 300 24">
|
||||||
<Widget type="AutoSizedButton" skin="MW_Button" align="Left Top" name="FPSButton"/>
|
<Widget type="AutoSizedButton" skin="MW_Button" align="Left Top" name="FPSButton"/>
|
||||||
<Widget type="AutoSizedTextBox" skin="SandText" align="Left Top">
|
<Widget type="AutoSizedTextBox" skin="SandText" align="Left Top">
|
||||||
<Property key="Caption" value="Show frames per second"/>
|
<Property key="Caption" value="FPS"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
|
|
||||||
|
<Widget type="TextBox" skin="NormalText" position="4 128 329 18" align="Left Top" name="GammaText">
|
||||||
|
<Property key="Caption" value="Gamma"/>
|
||||||
|
</Widget>
|
||||||
|
<Widget type="ScrollBar" skin="MW_HSlider" position="4 152 329 18" align="Left Top" name="GammaSlider">
|
||||||
|
<Property key="Range" value="1000000"/>
|
||||||
|
</Widget>
|
||||||
|
<Widget type="TextBox" skin="SandText" position="4 176 329 18" align="Left Top">
|
||||||
|
<Property key="Caption" value="#{sDark_Gamma}"/>
|
||||||
|
<Property key="TextAlign" value="Left"/>
|
||||||
|
</Widget>
|
||||||
|
<Widget type="TextBox" skin="SandText" position="4 176 329 18" align="Left Top">
|
||||||
|
<Property key="Caption" value="#{sLight_Gamma}"/>
|
||||||
|
<Property key="TextAlign" value="Right"/>
|
||||||
|
</Widget>
|
||||||
|
|
||||||
|
|
||||||
<Widget type="TextBox" skin="NormalText" position="4 198 329 18" align="Left Top" name="FovText">
|
<Widget type="TextBox" skin="NormalText" position="4 198 329 18" align="Left Top" name="FovText">
|
||||||
<Property key="Caption" value="Field of View"/>
|
<Property key="Caption" value="Field of View"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
|
@ -24,6 +24,12 @@ antialiasing = none
|
||||||
|
|
||||||
vsync = false
|
vsync = false
|
||||||
|
|
||||||
|
# opengl render to texture mode, valid options:
|
||||||
|
# PBuffer, FBO, Copy
|
||||||
|
opengl rtt mode = FBO
|
||||||
|
|
||||||
|
gamma = 2.2
|
||||||
|
|
||||||
[GUI]
|
[GUI]
|
||||||
# 1 is fully opaque
|
# 1 is fully opaque
|
||||||
menu transparency = 0.84
|
menu transparency = 0.84
|
||||||
|
|
|
@ -145,6 +145,7 @@ float OgreRenderer::getFPS()
|
||||||
|
|
||||||
void OgreRenderer::configure(const std::string &logPath,
|
void OgreRenderer::configure(const std::string &logPath,
|
||||||
const std::string& renderSystem,
|
const std::string& renderSystem,
|
||||||
|
const std::string& rttMode,
|
||||||
bool _logging)
|
bool _logging)
|
||||||
{
|
{
|
||||||
// Set up logging first
|
// Set up logging first
|
||||||
|
@ -198,6 +199,9 @@ void OgreRenderer::configure(const std::string &logPath,
|
||||||
if (rs == 0)
|
if (rs == 0)
|
||||||
throw std::runtime_error ("RenderSystem with name " + renderSystem + " not found, make sure the plugins are loaded");
|
throw std::runtime_error ("RenderSystem with name " + renderSystem + " not found, make sure the plugins are loaded");
|
||||||
mRoot->setRenderSystem(rs);
|
mRoot->setRenderSystem(rs);
|
||||||
|
|
||||||
|
if (rs->getName().find("OpenGL") != std::string::npos)
|
||||||
|
rs->setConfigOption ("RTT Preferred Mode", rttMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OgreRenderer::createWindow(const std::string &title, const WindowSettings& settings)
|
void OgreRenderer::createWindow(const std::string &title, const WindowSettings& settings)
|
||||||
|
|
|
@ -132,6 +132,7 @@ namespace OEngine
|
||||||
void configure(
|
void configure(
|
||||||
const std::string &logPath, // Path to directory where to store log files
|
const std::string &logPath, // Path to directory where to store log files
|
||||||
const std::string &renderSystem,
|
const std::string &renderSystem,
|
||||||
|
const std::string &rttMode,
|
||||||
bool _logging); // Enable or disable logging
|
bool _logging); // Enable or disable logging
|
||||||
|
|
||||||
/// Create a window with the given title
|
/// Create a window with the given title
|
||||||
|
|
Loading…
Reference in a new issue