diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-04-06 11:55:11 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-04-13 15:17:32 +0300 |
commit | eec5d3a8a8a26256fbae39d4f1fb01de6a648eea (patch) | |
tree | 892d48df436e59d2895251df1699a5f8b5fe8b58 /source/blender/blenkernel | |
parent | 340bfdef2e424c59e85785c1660db805b3255882 (diff) |
Depsgraph: remove engine type from evaluation context.
This was only used for viewport rendering, where we can just pass the engine
type directly. There is no technical reason why we can't draw the same depsgrpah
with different render engines.
It also led to some weird things like requiring a render engine for snapping
and raycast API functions.
Differential Revision: https://developer.blender.org/D3145
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_sequencer.h | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/context.c | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 5 |
3 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h index 140f3dd513d..21f3f344e64 100644 --- a/source/blender/blenkernel/BKE_sequencer.h +++ b/source/blender/blenkernel/BKE_sequencer.h @@ -40,6 +40,7 @@ struct GPUFX; struct ImBuf; struct Main; struct Mask; +struct RenderEngineType; struct Scene; struct Sequence; struct SequenceModifierData; @@ -435,7 +436,8 @@ enum { typedef struct ImBuf *(*SequencerDrawView)( const struct EvaluationContext *eval_ctx, struct Scene *scene, - struct ViewLayer *view_layer, struct Object *camera, int width, int height, + struct ViewLayer *view_layer, struct RenderEngineType *engine_type, + struct Object *camera, int width, int height, unsigned int flag, unsigned int draw_flags, int drawtype, int alpha_mode, int samples, const char *viewname, struct GPUOffScreen *ofs, char err_out[256]); diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index 98e5bb8ce6e..d550f1945db 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -1273,9 +1273,8 @@ void CTX_data_eval_ctx(const bContext *C, EvaluationContext *eval_ctx) Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); - RenderEngineType *engine_type = CTX_data_engine_type(C); DEG_evaluation_context_init_from_scene( eval_ctx, - scene, view_layer, engine_type, + scene, view_layer, DAG_EVAL_VIEWPORT); } diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 263c30cabca..e7f34257d04 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3332,12 +3332,13 @@ 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_type = RE_engines_find(scene->view_render.engine_id); + RenderEngineType *engine_type = RE_engines_find(scene->view_render.engine_id); depsgraph = BKE_scene_get_depsgraph(scene, view_layer, true); BKE_scene_graph_update_for_newframe(context->eval_ctx, depsgraph, context->bmain, scene, view_layer); ibuf = sequencer_view3d_cb( /* set for OpenGL render (NULL when scrubbing) */ - context->eval_ctx, scene, view_layer, camera, width, height, IB_rect, + context->eval_ctx, scene, view_layer, engine_type, + camera, width, height, IB_rect, draw_flags, context->scene->r.seq_prev_type, scene->r.alphamode, context->gpu_samples, viewname, context->gpu_offscreen, err_out); |