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:
parent
d9eab35441
commit
7d51a7eb75
|
@ -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);
|
||||
|
|
|
@ -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];
|
||||
|
|
19
Shaders.h
19
Shaders.h
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue
Block a user