From a1df9afc9a6909a934fcaf4a02bf438499723490 Mon Sep 17 00:00:00 2001 From: Mads Buvik Sandvei Date: Sun, 26 Jan 2025 17:05:42 +0100 Subject: [PATCH] Formatting changes --- apps/openmw/mwrender/characterpreview.cpp | 4 +-- apps/openmw/mwrender/localmap.cpp | 38 +++++++++++++--------- components/sceneutil/mwshadowtechnique.cpp | 1 - 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/apps/openmw/mwrender/characterpreview.cpp b/apps/openmw/mwrender/characterpreview.cpp index b9ebfd0c52..3c43227013 100644 --- a/apps/openmw/mwrender/characterpreview.cpp +++ b/apps/openmw/mwrender/characterpreview.cpp @@ -266,8 +266,7 @@ namespace MWRender stateset->addUniform(new osg::Uniform("screenRes", osg::Vec2f{ 1, 1 })); if (Stereo::getMultiview()) { - // The above set the sky texture unit to 0. Normally this is fine since texture unit 0 is the sampler2d diffuseMap, which will be set. - // However, in multiview the sky texture is a sampler2darray, and so needs to be set separately with a dummy texture + // Multiview needs a texture2DArray dummy texture applied here osg::Texture2DArray* textureArray = new osg::Texture2DArray; textureArray->setTextureSize(1, 1, 2); textureArray->setName("fakeSkyTexture"); @@ -280,7 +279,6 @@ namespace MWRender } stateset->addUniform(new osg::Uniform("emissiveMult", 1.f)); - // Opaque stuff must have 1 as its fragment alpha as the FBO is translucent, so having blending off isn't enough osg::ref_ptr noBlendAlphaEnv = new osg::TexEnvCombine(); diff --git a/apps/openmw/mwrender/localmap.cpp b/apps/openmw/mwrender/localmap.cpp index dcc2e3d887..afa29b3f93 100644 --- a/apps/openmw/mwrender/localmap.cpp +++ b/apps/openmw/mwrender/localmap.cpp @@ -5,10 +5,10 @@ #include #include #include -#include #include #include #include +#include #include @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include #include #include @@ -735,25 +737,29 @@ namespace MWRender stateset->setAttributeAndModes(fog, osg::StateAttribute::OFF | osg::StateAttribute::OVERRIDE); // turn of sky blending - int skyTextureSlot = MWBase::Environment::get().getResourceSystem()->getSceneManager()->getShaderManager().reserveGlobalTextureUnits(Shader::ShaderManager::Slot::SkyTexture); + int skyTextureSlot = MWBase::Environment::get() + .getResourceSystem() + ->getSceneManager() + ->getShaderManager() + .reserveGlobalTextureUnits(Shader::ShaderManager::Slot::SkyTexture); stateset->addUniform(new osg::Uniform("far", 10000000.0f)); stateset->addUniform(new osg::Uniform("skyBlendingStart", 8000000.0f)); stateset->addUniform(new osg::Uniform("sky", skyTextureSlot)); stateset->addUniform(new osg::Uniform("screenRes", osg::Vec2f{ 1, 1 })); - if (Stereo::getMultiview()) - { - // The above set the sky texture unit to 0. Normally this is fine since texture unit 0 is the sampler2d diffuseMap, which will be set. - // However, in multiview the sky texture is a sampler2darray, and so needs to be set separately with a dummy texture - osg::Texture2DArray* textureArray = new osg::Texture2DArray; - textureArray->setTextureSize(1, 1, 2); - textureArray->setName("fakeSkyTexture"); - textureArray->setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR); - textureArray->setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR); - textureArray->setWrap(osg::Texture::WRAP_S, osg::Texture::CLAMP_TO_EDGE); - textureArray->setWrap(osg::Texture::WRAP_T, osg::Texture::CLAMP_TO_EDGE); - textureArray->setWrap(osg::Texture::WRAP_R, osg::Texture::CLAMP_TO_EDGE); - stateset->setTextureAttributeAndModes(skyTextureSlot, textureArray, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE | osg::StateAttribute::PROTECTED); - } + if (Stereo::getMultiview()) + { + // Multiview needs a texture2DArray dummy texture applied here + osg::Texture2DArray* textureArray = new osg::Texture2DArray; + textureArray->setTextureSize(1, 1, 2); + textureArray->setName("fakeSkyTexture"); + textureArray->setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR); + textureArray->setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR); + textureArray->setWrap(osg::Texture::WRAP_S, osg::Texture::CLAMP_TO_EDGE); + textureArray->setWrap(osg::Texture::WRAP_T, osg::Texture::CLAMP_TO_EDGE); + textureArray->setWrap(osg::Texture::WRAP_R, osg::Texture::CLAMP_TO_EDGE); + stateset->setTextureAttributeAndModes(skyTextureSlot, textureArray, + osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE | osg::StateAttribute::PROTECTED); + } osg::ref_ptr lightmodel = new osg::LightModel; lightmodel->setAmbientIntensity(osg::Vec4(0.3f, 0.3f, 0.3f, 1.f)); diff --git a/components/sceneutil/mwshadowtechnique.cpp b/components/sceneutil/mwshadowtechnique.cpp index 929ffadcbf..4cd4fdd84a 100644 --- a/components/sceneutil/mwshadowtechnique.cpp +++ b/components/sceneutil/mwshadowtechnique.cpp @@ -1007,7 +1007,6 @@ void SceneUtil::MWShadowTechnique::copyShadowStateSettings(osgUtil::CullVisitor& { for (const auto& sd : vdd->getShadowDataList()) { - //assignTexGenSettings(&cv, sd->_camera, sd->_textureUnit, sd->_texgen); assignValidRegionSettings(cv, sd->_camera, sd->_sm_i, vdd->_uniforms[cv.getTraversalNumber()%2]); assignShadowStateSettings(cv, sd->_camera, sd->_sm_i, vdd->_uniforms[cv.getTraversalNumber()%2]); }