summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/video.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-11-19 14:41:49 +0100
committerwm4 <wm4@nowhere>2015-11-19 14:41:49 +0100
commitf9a2fc592f1133174e7417121c6ae8212a696fb0 (patch)
tree526e7bff79ec27738240faf7df6fa8ab69975539 /video/out/opengl/video.c
parent76e4374d0644edbde087896497aca4e1cf0906a0 (diff)
downloadmpv-f9a2fc592f1133174e7417121c6ae8212a696fb0.tar.bz2
mpv-f9a2fc592f1133174e7417121c6ae8212a696fb0.tar.xz
vo_opengl: don't mix floats and integers in dither shader
Some GLSL dialects (GLSL ES 3.00) do not have such implicit conversions. They have to be made floats for the sake of the shader compiler.
Diffstat (limited to 'video/out/opengl/video.c')
-rw-r--r--video/out/opengl/video.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c
index 31596b4561..6e9b7627d5 100644
--- a/video/out/opengl/video.c
+++ b/video/out/opengl/video.c
@@ -1771,7 +1771,7 @@ static void pass_dither(struct gl_video *p)
gl_sc_uniform_sampler(p->sc, "dither", GL_TEXTURE_2D, TEXUNIT_DITHER);
- GLSLF("vec2 dither_pos = gl_FragCoord.xy / %d;\n", p->dither_size);
+ GLSLF("vec2 dither_pos = gl_FragCoord.xy / %d.0;\n", p->dither_size);
if (p->opts.temporal_dither) {
int phase = (p->frames_rendered / p->opts.temporal_dither_period) % 8u;
@@ -1786,8 +1786,8 @@ static void pass_dither(struct gl_video *p)
}
GLSL(float dither_value = texture(dither, dither_pos).r;)
- GLSLF("color = floor(color * %d + dither_value + 0.5 / (%d * %d)) / %d;\n",
- dither_quantization, p->dither_size, p->dither_size,
+ GLSLF("color = floor(color * %d.0 + dither_value + 0.5 / %d.0) / %d.0;\n",
+ dither_quantization, p->dither_size * p->dither_size,
dither_quantization);
}