summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/video.c
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2017-07-20 11:26:01 +0200
committerNiklas Haas <git@haasn.xyz>2017-07-24 17:19:34 +0200
commit0c84ee01d5387e7c59d97de71046d173e4c3461a (patch)
tree6919885f0481f5927a8e69fe482a5fdce9e805d1 /video/out/opengl/video.c
parentf338ec45912846a75dbb4217cad000ceb9b33d40 (diff)
downloadmpv-0c84ee01d5387e7c59d97de71046d173e4c3461a.tar.bz2
mpv-0c84ee01d5387e7c59d97de71046d173e4c3461a.tar.xz
vo_opengl: support user compute shaders
These are identical to regular fragment shader hooks, but with extra metadata indicating the preferred block size.
Diffstat (limited to 'video/out/opengl/video.c')
-rw-r--r--video/out/opengl/video.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c
index 5a4d17e454..d4f746e3a2 100644
--- a/video/out/opengl/video.c
+++ b/video/out/opengl/video.c
@@ -1339,6 +1339,7 @@ static void hook_prelude(struct gl_video *p, const char *name, int id,
GLSLHF("#define %s_size texture_size%d\n", name, id);
GLSLHF("#define %s_rot texture_rot%d\n", name, id);
GLSLHF("#define %s_pt pixel_size%d\n", name, id);
+ GLSLHF("#define %s_map texmap%d\n", name, id);
GLSLHF("#define %s_mul %f\n", name, tex.multiplier);
// Set up the sampling functions
@@ -1903,6 +1904,7 @@ static void user_hook(struct gl_video *p, struct img_tex tex,
pass_describe(p, "user shader: %.*s (%s)", BSTR_P(shader->desc),
plane_names[tex.type]);
+ compute_size_minimum(p, shader->compute_w, shader->compute_h);
load_shader(p, shader->pass_body);
GLSLF("color = hook();\n");