From 16f5bfa423fb248c1066acfe4c500bc008ac8942 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Thu, 17 Mar 2016 16:05:26 +0600 Subject: [PATCH] Use correct screen scale when native resolution used. --- src/GLES2/GLSLCombiner_gles2.cpp | 5 ++++- src/OGL3X/GLSLCombiner_ogl3x.cpp | 5 ++++- src/OpenGL.cpp | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/GLES2/GLSLCombiner_gles2.cpp b/src/GLES2/GLSLCombiner_gles2.cpp index 242ca3cd..5227de85 100644 --- a/src/GLES2/GLSLCombiner_gles2.cpp +++ b/src/GLES2/GLSLCombiner_gles2.cpp @@ -408,7 +408,10 @@ void ShaderCombiner::updateDitherMode(bool _bForce) const int nDither = (gDP.otherMode.cycleType < G_CYC_COPY) && (gDP.otherMode.alphaCompare == G_AC_DITHER) ? 1 : 0; if ((m_nInputs & (1 << NOISE)) + nDither != 0) { - m_uniforms.uScreenScale.set(video().getScaleX(), video().getScaleY(), _bForce); + if (config.frameBufferEmulation.nativeResFactor == 0) + m_uniforms.uScreenScale.set(video().getScaleX(), video().getScaleY(), _bForce); + else + m_uniforms.uScreenScale.set(float(config.frameBufferEmulation.nativeResFactor), float(config.frameBufferEmulation.nativeResFactor), _bForce); noiseTex.update(); } } diff --git a/src/OGL3X/GLSLCombiner_ogl3x.cpp b/src/OGL3X/GLSLCombiner_ogl3x.cpp index 393b757d..1df54bf6 100644 --- a/src/OGL3X/GLSLCombiner_ogl3x.cpp +++ b/src/OGL3X/GLSLCombiner_ogl3x.cpp @@ -664,7 +664,10 @@ void ShaderCombiner::updateDitherMode(bool _bForce) const int nDither = (gDP.otherMode.cycleType < G_CYC_COPY) && (gDP.otherMode.colorDither == G_CD_NOISE || gDP.otherMode.alphaDither == G_AD_NOISE || gDP.otherMode.alphaCompare == G_AC_DITHER) ? 1 : 0; if ((m_nInputs & (1 << NOISE)) + nDither != 0) { - m_uniforms.uScreenScale.set(video().getScaleX(), video().getScaleY(), _bForce); + if (config.frameBufferEmulation.nativeResFactor == 0) + m_uniforms.uScreenScale.set(video().getScaleX(), video().getScaleY(), _bForce); + else + m_uniforms.uScreenScale.set(float(config.frameBufferEmulation.nativeResFactor), float(config.frameBufferEmulation.nativeResFactor), _bForce); noiseTex.update(); } } diff --git a/src/OpenGL.cpp b/src/OpenGL.cpp index 6b4b01cf..c853836b 100644 --- a/src/OpenGL.cpp +++ b/src/OpenGL.cpp @@ -846,7 +846,10 @@ void OGLRender::drawLine(int _v0, int _v1, float _width) unsigned short elem[2]; elem[0] = _v0; elem[1] = _v1; - glLineWidth(_width * video().getScaleX()); + if (config.frameBufferEmulation.nativeResFactor == 0) + glLineWidth(_width * video().getScaleX()); + else + glLineWidth(_width * config.frameBufferEmulation.nativeResFactor); glDrawElements(GL_LINES, 2, GL_UNSIGNED_SHORT, elem); }