summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author ImJezze <jezze@gmx.net>2016-06-06 19:40:10 +0200
committer ImJezze <jezze@gmx.net>2016-06-06 19:40:36 +0200
commit758aaa496aa546a372fd3f21612395a2dd65826e (patch)
tree55ebc7870667b32e3a53059e2f23a4833fcaded3 /src/osd
parent6e35713b486905bd5b744e17e34592e52fc68ac3 (diff)
Fixed scanlines if the screen output is less than twice the size of the host source
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc b/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc
index ee2fd0fd148..9d5b99d0546 100644
--- a/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc
+++ b/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc
@@ -148,7 +148,13 @@ void main()
float ColorBrightness = 0.299 * BaseColor.r + 0.587 * BaseColor.g + 0.114 * BaseColor.b;
- float ScanCoord = BaseCoord.y * u_source_dims.y * u_scanline_scale.x * 3.1415927; // PI
+ float ScanCoord = BaseCoord.y;
+ ScanCoord += u_quad_dims.y <= u_source_dims.y * 2.0f
+ ? 0.5f / u_quad_dims.y // uncenter scanlines if the quad is less than twice the size of the source
+ : 0.0f;
+
+ ScanCoord *= u_source_dims.y * u_scanline_scale.x * 3.1415927; // PI
+
float ScanCoordJitter = u_scanline_jitter.x * u_jitter_amount.x * 1.618034; // PHI
float ScanSine = sin(ScanCoord + ScanCoordJitter);
float ScanlineWide = u_scanline_height.x + u_scanline_variation.x * max(1.0, u_scanline_height.x) * (1.0 - ColorBrightness);