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

Correct fragment_shader_mipmap:

use vec2 uScreenScale instead of float uLodXScale uLodYScale
This commit is contained in:
Sergey Lipskiy 2015-02-16 18:52:22 +06:00
parent d9eab35441
commit 7d51a7eb75
3 changed files with 10 additions and 19 deletions

View File

@ -562,8 +562,6 @@ void ShaderCombiner::_locateUniforms() {
LocateUniform(uNoiseTime);
LocateUniform(uScreenWidth);
LocateUniform(uScreenHeight);
LocateUniform(uLodXScale);
LocateUniform(uLodYScale);
LocateUniform(uMinLod);
LocateUniform(uDeltaZ);
LocateUniform(uAlphaTestValue);
@ -578,6 +576,7 @@ void ShaderCombiner::_locateUniforms() {
LocateUniform(uRenderState);
LocateUniform(uTexScale);
LocateUniform(uScreenScale);
LocateUniform(uTexOffset[0]);
LocateUniform(uTexOffset[1]);
LocateUniform(uTexMask[0]);
@ -717,8 +716,7 @@ void ShaderCombiner::updateColors(bool _bForce)
int uCalcLOD = (config.generalEmulation.enableLOD && gDP.otherMode.textureLOD == G_TL_LOD) ? 1 : 0;
_setIUniform(m_uniforms.uEnableLod, uCalcLOD, _bForce);
if (uCalcLOD) {
_setFUniform(m_uniforms.uLodXScale, video().getScaleX(), _bForce);
_setFUniform(m_uniforms.uLodYScale, video().getScaleY(), _bForce);
_setFV2Uniform(m_uniforms.uScreenScale, video().getScaleX(), video().getScaleY(), _bForce);
_setFUniform(m_uniforms.uMinLod, gDP.primColor.m, _bForce);
_setIUniform(m_uniforms.uMaxTile, gSP.texture.level, _bForce);
_setIUniform(m_uniforms.uTextureDetail, gDP.otherMode.textureDetail, _bForce);

View File

@ -43,11 +43,11 @@ private:
uAlphaCompareMode, uAlphaDitherMode, uColorDitherMode, uGammaCorrectionEnabled;
fUniform uFogMultiplier, uFogOffset, uK4, uK5, uPrimLod, uNoiseTime, uScreenWidth, uScreenHeight,
uLodXScale, uLodYScale, uMinLod, uDeltaZ, uAlphaTestValue;
uMinLod, uDeltaZ, uAlphaTestValue;
fv4Uniform uEnvColor, uPrimColor, uFogColor, uCenterColor, uScaleColor, uBlendColor;
fv2Uniform uTexScale, uTexOffset[2], uTexMask[2],
fv2Uniform uTexScale, uScreenScale, uTexOffset[2], uTexMask[2],
uCacheShiftScale[2], uCacheScale[2], uCacheOffset[2];
fv3Uniform uLightDirection[8], uLightColor[8];

View File

@ -406,8 +406,7 @@ static const char* fragment_shader_mipmap =
"uniform sampler2D uTex1; \n"
"uniform lowp float uPrimLod; \n"
"uniform lowp int uEnableLod; \n"
"uniform mediump float uLodXScale; \n"
"uniform mediump float uLodYScale; \n"
"uniform mediump vec2 uScreenScale; \n"
"uniform mediump float uMinLod; \n"
"uniform lowp int uMaxTile; \n"
"uniform lowp int uTextureDetail; \n"
@ -419,13 +418,10 @@ static const char* fragment_shader_mipmap =
" return uPrimLod; \n"
" } \n"
" mediump vec2 dx = dFdx(vLodTexCoord); \n"
" dx.x *= uLodXScale; \n"
" dx.y *= uLodYScale; \n"
" dx *= uScreenScale; \n"
" mediump vec2 dy = dFdy(vLodTexCoord); \n"
" dy.x *= uLodXScale; \n"
" dy.y *= uLodYScale; \n"
" dy *= uScreenScale; \n"
" mediump float lod = max(length(dx), length(dy)); \n"
//" float lod = max(length(dx), length(dy)) * max(uLodXScale, uLodYScale);\n"
" mediump float lod_tile, lod_frac; \n"
" bool magnifying = false; \n"
" if (lod < 1.0) { \n"
@ -476,8 +472,7 @@ static const char* fragment_shader_mipmap =
"uniform sampler2D uTex1; \n"
"uniform float uPrimLod; \n"
"uniform int uEnableLod; \n"
"uniform float uLodXScale; \n"
"uniform float uLodYScale; \n"
"uniform vec2 uScreenScale; \n"
"uniform float uMinLod; \n"
"uniform int uMaxTile; \n"
"uniform int uTextureDetail; \n"
@ -489,11 +484,9 @@ static const char* fragment_shader_mipmap =
" return uPrimLod; \n"
" } \n"
" vec2 dx = dFdx(vLodTexCoord); \n"
" dx.x *= uLodXScale; \n"
" dx.y *= uLodYScale; \n"
" dx *= uScreenScale; \n"
" vec2 dy = dFdy(vLodTexCoord); \n"
" dy.x *= uLodXScale; \n"
" dy.y *= uLodYScale; \n"
" dy *= uScreenScale; \n"
" float lod = max(length(dx), length(dy)); \n"
//" float lod = max(length(dx), length(dy)) * max(uLodXScale, uLodYScale);\n"
" float lod_tile, lod_frac; \n"