Fix T53156: VSE not working since Workspace > engine change
authorDalai Felinto <dfelinto@gmail.com>
Wed, 25 Oct 2017 13:02:52 +0000 (11:02 -0200)
committerDalai Felinto <dfelinto@gmail.com>
Wed, 25 Oct 2017 13:16:08 +0000 (11:16 -0200)
This would break if using preview in VSE. We now use the scene engine
not the workspace engine.

That said we could have the preview engine defined as part of the sequence strip
as we had for draw modes in the past. But this is a separated topic for a
separated patch.

This issue in particular was introduced in e4f2b2be26ad.

Note: VSE preview is still broken in two cases:
* If you have Eevee as the engine in the Scene of the Scene strip.
* If you use Clay, save the file, and re-open.

source/blender/blenkernel/intern/sequencer.c

index c6b6f97b0bc205eeaed9a642e33610d7a81946f3..53b32bd7df8f94c04563424a792cf005e6938c57 100644 (file)
@@ -90,6 +90,8 @@
 #include "BKE_context.h"
 #include "BKE_sound.h"
 
+#include "RE_engine.h"
+
 #ifdef WITH_AUDASPACE
 #  include <AUD_Special.h>
 #endif
@@ -3308,6 +3310,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
                        context->scene->r.seq_prev_type = 3 /* == OB_SOLID */;
 
                /* opengl offscreen render */
+               context->eval_ctx->engine = RE_engines_find(scene->view_render.engine_id);
                BKE_scene_update_for_newframe(context->eval_ctx, context->bmain, scene);
                ibuf = sequencer_view3d_cb(
                        /* set for OpenGL render (NULL when scrubbing) */