Fix #118260: VSE scene strip wireframe display

The issue is that a draw call in the sequencer does not have any
knowledge of the viewport's wireframe opacity and threshold settings,
defaulting both to 0.

A similar issue #86956 implemented a quick hack to fix grease pencil
shading in VSE, so I opted to do the same here. In the future, a better
solution could be implemented to preserve the entire v3d.overlay.

I should note that I made `wireframe_threshold = 0.5f` to match the
default value given in `versioning_280.cc` but if this works better
as `1.0f` instead let me know.

Pull Request: https://projects.blender.org/blender/blender/pulls/119811
This commit is contained in:
John Swenson
2024-03-24 08:52:47 +01:00
committed by Aras Pranckevicius
parent 3805974b6f
commit af0c42e266

View File

@@ -2092,9 +2092,14 @@ ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Depsgraph *depsgraph,
v3d.flag2 = V3D_HIDE_OVERLAYS;
/* HACK: When rendering gpencil objects this opacity is used to mix vertex colors in when not in
* render mode. */
* render mode (e.g. in VSE). */
v3d.overlay.gpencil_vertex_paint_opacity = 1.0f;
/* Also initialize wireframe properties to the default so it renders properly in VSE. Should
* find some way to use the viewport's current opacity and threshold, but this is a start. */
v3d.overlay.wireframe_opacity = 1.0f;
v3d.overlay.wireframe_threshold = 0.5f;
if (draw_flags & V3D_OFSDRAW_SHOW_ANNOTATION) {
v3d.flag2 |= V3D_SHOW_ANNOTATION;
}