summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/vo.rst3
-rw-r--r--video/out/opengl/video.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst
index d9d4bb4d91..b8b7244c00 100644
--- a/DOCS/man/vo.rst
+++ b/DOCS/man/vo.rst
@@ -629,6 +629,9 @@ Available video output drivers are:
never resets (regardless of seeks).
vec2 image_size
The size in pixels of the input image.
+ vec2 target_size
+ The size in pixels of the visible part of the scaled (and possibly
+ cropped) image.
For example, a shader that inverts the colors could look like this::
diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c
index a704a261df..592dfa6e56 100644
--- a/video/out/opengl/video.c
+++ b/video/out/opengl/video.c
@@ -1239,6 +1239,9 @@ static void load_shader(struct gl_video *p, struct bstr body)
gl_sc_uniform_f(p->sc, "frame", p->frames_uploaded);
gl_sc_uniform_vec2(p->sc, "image_size", (GLfloat[]){p->image_params.w,
p->image_params.h});
+ gl_sc_uniform_vec2(p->sc, "target_size",
+ (GLfloat[]){p->dst_rect.x1 - p->dst_rect.x0,
+ p->dst_rect.y1 - p->dst_rect.y0});
}
static const char *get_custom_shader_fn(struct gl_video *p, const char *body)