From 4d7e9bae73c29e4c1e594c50da94995de1ac69f2 Mon Sep 17 00:00:00 2001 From: Cody Glassman Date: Thu, 4 Jul 2024 21:07:40 -0700 Subject: [PATCH] ensure distortion is only rendered once --- apps/openmw/mwrender/distortion.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/openmw/mwrender/distortion.cpp b/apps/openmw/mwrender/distortion.cpp index 2ca2ace65b..ed90944245 100644 --- a/apps/openmw/mwrender/distortion.cpp +++ b/apps/openmw/mwrender/distortion.cpp @@ -2,6 +2,8 @@ #include +#include "postprocessor.hpp" + namespace MWRender { void DistortionCallback::drawImplementation( @@ -10,6 +12,11 @@ namespace MWRender osg::State* state = renderInfo.getState(); size_t frameId = state->getFrameStamp()->getFrameNumber() % 2; + PostProcessor* postProcessor = dynamic_cast(renderInfo.getCurrentCamera()->getUserData()); + + if (!postProcessor || bin->getStage()->getFrameBufferObject() != postProcessor->getPrimaryFbo(frameId)) + return; + mFBO[frameId]->apply(*state); const osg::Texture* tex