generate mipmaps after we draw, not before

This commit is contained in:
Cody Glassman 2025-07-08 15:53:18 -07:00
parent e9a9659abc
commit 759739ecca

View File

@ -280,15 +280,6 @@ namespace MWRender
{
pass.mRenderTarget->apply(state, osg::FrameBufferObject::DRAW_FRAMEBUFFER);
if (pass.mRenderTexture->getNumMipmapLevels() > 0)
{
state.setActiveTextureUnit(0);
state.applyTextureAttribute(0,
pass.mRenderTarget->getAttachment(osg::FrameBufferObject::BufferComponent::COLOR_BUFFER0)
.getTexture());
ext->glGenerateMipmap(GL_TEXTURE_2D);
}
lastApplied = pass.mRenderTarget->getHandle(state.getContextID());
}
else if (pass.mResolve && index == filtered.back())
@ -325,6 +316,15 @@ namespace MWRender
drawGeometry(renderInfo);
if (pass.mRenderTexture && pass.mRenderTexture->getNumMipmapLevels() > 0)
{
state.setActiveTextureUnit(0);
state.applyTextureAttribute(0,
pass.mRenderTarget->getAttachment(osg::FrameBufferObject::BufferComponent::COLOR_BUFFER0)
.getTexture());
ext->glGenerateMipmap(GL_TEXTURE_2D);
}
state.popStateSet();
state.apply();
}