mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-06 18:40:36 +00:00
glsl: use fragCoord to decide interlacing
This commit is contained in:
parent
4e8130bd99
commit
ac9afbfede
@ -158,7 +158,7 @@ namespace glsl
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
void insert_rop(std::ostream& OS, const shader_properties& props)
|
void insert_rop(std::ostream& OS, const shader_properties& /*props*/)
|
||||||
{
|
{
|
||||||
OS <<
|
OS <<
|
||||||
#include "GLSLSnippets//RSXProg/RSXROPEpilogue.glsl"
|
#include "GLSLSnippets//RSXProg/RSXROPEpilogue.glsl"
|
||||||
|
@ -99,7 +99,7 @@ vec4 read_source()
|
|||||||
? texture(fs0, tc0 * ou_single_matrix)
|
? texture(fs0, tc0 * ou_single_matrix)
|
||||||
: texture(fs0, (tc0 * ou_single_matrix) + vec2(0.f, 0.020408f));
|
: texture(fs0, (tc0 * ou_single_matrix) + vec2(0.f, 0.020408f));
|
||||||
case STEREO_MODE_INTERLACED:
|
case STEREO_MODE_INTERLACED:
|
||||||
return (mod(textureSize(fs0, 0).y * tc0.y, 2.f) < 1.f)
|
return ((int(gl_FragCoord.y) & 1) > 0)
|
||||||
? texture(fs0, tc0 * left_single_matrix)
|
? texture(fs0, tc0 * left_single_matrix)
|
||||||
: texture(fs0, (tc0 * left_single_matrix) + right_single_matrix);
|
: texture(fs0, (tc0 * left_single_matrix) + right_single_matrix);
|
||||||
default: // undefined behavior
|
default: // undefined behavior
|
||||||
@ -122,11 +122,11 @@ vec4 read_source()
|
|||||||
? texture(fs0, (tc0 * sbs_multi_matrix))
|
? texture(fs0, (tc0 * sbs_multi_matrix))
|
||||||
: texture(fs1, (tc0 * sbs_multi_matrix) + vec2(-1.f, 0.f));
|
: texture(fs1, (tc0 * sbs_multi_matrix) + vec2(-1.f, 0.f));
|
||||||
case STEREO_MODE_OVER_UNDER:
|
case STEREO_MODE_OVER_UNDER:
|
||||||
return (tc0.y < 0.5)
|
return (tc0.y < 0.5)
|
||||||
? texture(fs0, (tc0 * ou_multi_matrix))
|
? texture(fs0, (tc0 * ou_multi_matrix))
|
||||||
: texture(fs1, (tc0 * ou_multi_matrix) + vec2(0.f, -1.f));
|
: texture(fs1, (tc0 * ou_multi_matrix) + vec2(0.f, -1.f));
|
||||||
case STEREO_MODE_INTERLACED:
|
case STEREO_MODE_INTERLACED:
|
||||||
return (mod(textureSize(fs0, 0).y * tc0.y, 2.f) < 1.f)
|
return ((int(gl_FragCoord.y) & 1) > 0)
|
||||||
? texture(fs0, tc0)
|
? texture(fs0, tc0)
|
||||||
: texture(fs1, tc0);
|
: texture(fs1, tc0);
|
||||||
default: // undefined behavior
|
default: // undefined behavior
|
||||||
|
Loading…
x
Reference in New Issue
Block a user