diff --git a/src/renderer.c b/src/renderer.c index 2035c7349195c24a7532b8465fbcf3753877c964..8ec09569bccac7fab8fcb71dd68c2ea09967ff3f 100644 --- a/src/renderer.c +++ b/src/renderer.c @@ -1079,6 +1079,8 @@ static bool pass_read_image(struct pl_renderer *rr, struct pass_state *pass, *st = (struct plane_state) { .plane = image->planes[i], .img = { + .w = image->planes[i].texture->params.w, + .h = image->planes[i].texture->params.h, .tex = image->planes[i].texture, .repr = image->repr, .color = image->color, @@ -1139,9 +1141,6 @@ static bool pass_read_image(struct pl_renderer *rr, struct pass_state *pass, .y1 = image->src_rect.y1 / rry - sy / ry, }; - st->img.w = roundf(pl_rect_w(st->img.rect)); - st->img.h = roundf(pl_rect_h(st->img.rect)); - if (st == ref) { // Make sure st->rc == src_rect pl_assert(rrx == 1 && rry == 1 && sx == 0 && sy == 0); @@ -1164,6 +1163,10 @@ static bool pass_read_image(struct pl_renderer *rr, struct pass_state *pass, PL_TRACE(rr, "After user hooks:"); log_plane_info(rr, st); } + + // Update the conceptual width/height after applying plane shaders + st->img.w = roundf(pl_rect_w(st->img.rect)); + st->img.h = roundf(pl_rect_h(st->img.rect)); } struct pl_shader *sh = pl_dispatch_begin_ex(rr->dp, true);