Fix #132646: VSE proxy strip incorrectly occludes strips below it
Depending on proxy size and scaling factor, the "does proxy cover whole screen" code was producing wrong results, due to mismatched resolutions it was working on: SeqRenderData at that point contains proxy resolution (reduced), but SEQ_image_transform_final_quad_get works at full resolution. The produced quad needs to be scaled down to what the render context is operating at.
This commit is contained in:
committed by
Aras Pranckevicius
parent
a79d95099f
commit
ab1fc88f2e
@@ -299,7 +299,11 @@ StripScreenQuad get_strip_screen_quad(const SeqRenderData *context, const Strip
|
||||
|
||||
float quad[4][2];
|
||||
SEQ_image_transform_final_quad_get(scene, seq, quad);
|
||||
return StripScreenQuad{quad[0] + offset, quad[1] + offset, quad[2] + offset, quad[3] + offset};
|
||||
const float scale = SEQ_rendersize_to_scale_factor(context->preview_render_size);
|
||||
return StripScreenQuad{float2(quad[0]) * scale + offset,
|
||||
float2(quad[1]) * scale + offset,
|
||||
float2(quad[2]) * scale + offset,
|
||||
float2(quad[3]) * scale + offset};
|
||||
}
|
||||
|
||||
/* Is quad `a` fully contained (i.e. covered by) quad `b`? For that to happen,
|
||||
|
||||
Reference in New Issue
Block a user