1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00

Fix downscaling aliasing caused by 2f5280c

This commit is contained in:
oddMLan 2020-07-28 00:24:01 -07:00 committed by Sergey Lipskiy
parent d7d68c4667
commit 38fd50414f
2 changed files with 14 additions and 18 deletions

View File

@ -650,12 +650,12 @@ void Debugger::_drawFrameBuffer(FrameBuffer * _pBuffer)
blitParams.dstY1 = dstCoord[3];
blitParams.dstWidth = wnd.getScreenWidth();
blitParams.dstHeight = wnd.getScreenHeight() + wnd.getHeightOffset();
blitParams.filter = config.generalEmulation.enableHybridFilter > 0 ?
const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight;
blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ?
textureParameters::FILTER_LINEAR :
textureParameters::FILTER_NEAREST;
textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled
blitParams.mask = blitMask::COLOR_BUFFER;
blitParams.tex[0] = pBufferTexture;
const bool downscale = blitParams.srcWidth >= blitParams.dstWidth && blitParams.srcHeight >= blitParams.dstHeight;
blitParams.combiner = downscale ? CombinerInfo::get().getTexrectDownscaleCopyProgram() :
CombinerInfo::get().getTexrectUpscaleCopyProgram();
blitParams.readBuffer = readBuffer;

View File

@ -1026,12 +1026,12 @@ void FrameBufferList::_renderScreenSizeBuffer()
blitParams.dstY1 = dstCoord[3];
blitParams.dstWidth = screenWidth;
blitParams.dstHeight = screenHeight + wndHeightOffset;
blitParams.filter = config.generalEmulation.enableHybridFilter > 0 ?
const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight;
blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ?
textureParameters::FILTER_LINEAR :
textureParameters::FILTER_NEAREST;
textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled
blitParams.mask = blitMask::COLOR_BUFFER;
blitParams.tex[0] = pBufferTexture;
const bool downscale = blitParams.srcWidth >= blitParams.dstWidth && blitParams.srcHeight >= blitParams.dstHeight;
blitParams.combiner = downscale ? CombinerInfo::get().getTexrectDownscaleCopyProgram() :
CombinerInfo::get().getTexrectUpscaleCopyProgram();
blitParams.readBuffer = pFilteredBuffer->m_FBO;
@ -1354,12 +1354,10 @@ void FrameBufferList::OverscanBuffer::draw(u32 _fullHeight, bool _PAL)
blitParams.dstHeight = wnd.getScreenHeight() + wnd.getHeightOffset();
blitParams.mask = blitMask::COLOR_BUFFER;
blitParams.tex[0] = m_pTexture;
const bool downscale = config.frameBufferEmulation.nativeResFactor != 1 &&
blitParams.srcWidth >= blitParams.dstWidth &&
blitParams.srcHeight >= blitParams.dstHeight;
blitParams.filter = downscale || config.generalEmulation.enableHybridFilter == 0 ?
textureParameters::FILTER_NEAREST :
textureParameters::FILTER_LINEAR;
const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight;
blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ?
textureParameters::FILTER_LINEAR :
textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled
if (config.frameBufferEmulation.copyDepthToMainDepthBuffer != 0) {
blitParams.tex[1] = m_pDepthTexture;
blitParams.combiner = downscale ? CombinerInfo::get().getTexrectColorAndDepthDownscaleCopyProgram() :
@ -1531,12 +1529,10 @@ void FrameBufferList::renderBuffer()
blitParams.dstHeight = m_overscan.getBufferHeight();
blitParams.mask = blitMask::COLOR_BUFFER;
blitParams.tex[0] = pBufferTexture;
const bool downscale = config.frameBufferEmulation.nativeResFactor != 1 &&
blitParams.srcWidth >= blitParams.dstWidth &&
blitParams.srcHeight >= blitParams.dstHeight;
blitParams.filter = downscale || config.generalEmulation.enableHybridFilter == 0 ?
textureParameters::FILTER_NEAREST :
textureParameters::FILTER_LINEAR;
const bool downscale = blitParams.srcWidth >= blitParams.dstWidth || blitParams.srcHeight >= blitParams.dstHeight;
blitParams.filter = downscale || config.generalEmulation.enableHybridFilter > 0 ?
textureParameters::FILTER_LINEAR :
textureParameters::FILTER_NEAREST; //upscale; hybridFilter disabled
if (config.frameBufferEmulation.copyDepthToMainDepthBuffer != 0) {
blitParams.tex[1] = pBuffer->m_pDepthTexture;
blitParams.combiner = downscale ? CombinerInfo::get().getTexrectColorAndDepthDownscaleCopyProgram() :