vo_opengl: add tex_offset uniform variable to user shaders

This commit is contained in:
igv 2016-07-15 09:26:35 +03:00 committed by wm4
parent 2aae5ce0ba
commit 6b8dadd7c1
2 changed files with 7 additions and 0 deletions

View File

@ -4204,6 +4204,8 @@ The following video options are currently all specific to ``--vo=opengl`` and
vec2 target_size
The size in pixels of the visible part of the scaled (and possibly
cropped) image.
vec2 tex_offset
Texture offset introduced by user shaders or options like panscan, video-align-x/y, video-pan-x/y.
Internally, vo_opengl may generate any number of the following textures.
Whenever a texture is rendered and saved by vo_opengl, all of the passes

View File

@ -1229,6 +1229,11 @@ static void load_shader(struct gl_video *p, struct bstr body)
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});
gl_sc_uniform_vec2(p->sc, "tex_offset",
(GLfloat[]){p->src_rect.x0 * p->texture_offset.m[0][0] +
p->texture_offset.t[0],
p->src_rect.y0 * p->texture_offset.m[1][1] +
p->texture_offset.t[1]});
}
// Semantic equality