diff options
22 files changed, 67 insertions, 66 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); diff --git a/source/blender/depsgraph/DEG_depsgraph.h b/source/blender/depsgraph/DEG_depsgraph.h index 9c00ed2ddcc..e30b46c053a 100644 --- a/source/blender/depsgraph/DEG_depsgraph.h +++ b/source/blender/depsgraph/DEG_depsgraph.h @@ -86,7 +86,6 @@ typedef struct EvaluationContext { struct Depsgraph *depsgraph; struct ViewLayer *view_layer; - struct RenderEngineType *engine_type; } EvaluationContext; /* DagNode->eval_flags */ @@ -219,7 +218,6 @@ void DEG_evaluation_context_init_from_scene( struct EvaluationContext *eval_ctx, struct Scene *scene, struct ViewLayer *view_layer, - struct RenderEngineType *engine_type, eEvaluationMode mode); void DEG_evaluation_context_init_from_view_layer_for_render( diff --git a/source/blender/depsgraph/intern/depsgraph_eval.cc b/source/blender/depsgraph/intern/depsgraph_eval.cc index d50e55e4cfb..434c3ec7545 100644 --- a/source/blender/depsgraph/intern/depsgraph_eval.cc +++ b/source/blender/depsgraph/intern/depsgraph_eval.cc @@ -83,13 +83,11 @@ void DEG_evaluation_context_init_from_scene( EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, - RenderEngineType *engine_type, eEvaluationMode mode) { DEG_evaluation_context_init(eval_ctx, mode); eval_ctx->depsgraph = BKE_scene_get_depsgraph(scene, view_layer, true); eval_ctx->view_layer = view_layer; - eval_ctx->engine_type = engine_type; eval_ctx->ctime = BKE_scene_frame_get(scene); } @@ -107,7 +105,6 @@ void DEG_evaluation_context_init_from_view_layer_for_render( eval_ctx->ctime = BKE_scene_frame_get(scene); eval_ctx->depsgraph = depsgraph; eval_ctx->view_layer = view_layer_original; - eval_ctx->engine_type = NULL; } void DEG_evaluation_context_init_from_depsgraph( @@ -120,7 +117,6 @@ void DEG_evaluation_context_init_from_depsgraph( eval_ctx->ctime = (float)scene->r.cfra + scene->r.subframe; eval_ctx->depsgraph = depsgraph; eval_ctx->view_layer = DEG_get_evaluated_view_layer(depsgraph); - eval_ctx->engine_type = NULL; } /* Free evaluation context. */ diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 15b0c793a50..8090bcb28ca 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -357,7 +357,6 @@ static void drw_state_eval_ctx_init(DRWManager *dst) &draw_ctx->eval_ctx, draw_ctx->scene, draw_ctx->view_layer, - draw_ctx->engine_type, DST.options.is_scene_render ? DAG_EVAL_RENDER : DAG_EVAL_VIEWPORT); } diff --git a/source/blender/editors/armature/editarmature_sketch.c b/source/blender/editors/armature/editarmature_sketch.c index dcf4c9a0e9c..1f1468a8e41 100644 --- a/source/blender/editors/armature/editarmature_sketch.c +++ b/source/blender/editors/armature/editarmature_sketch.c @@ -998,7 +998,7 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S * the ideal would be to call this function only at the beginning of the snap operation, * or at the beginning of the operator itself */ struct SnapObjectContext *snap_context = ED_transform_snap_object_context_create_view3d( - CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), CTX_data_engine_type(C), 0, + CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), 0, CTX_wm_region(C), CTX_wm_view3d(C)); float mvalf[2] = {UNPACK2(dd->mval)}; diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index f0b3233e35b..3ea8592ac3e 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -5013,8 +5013,7 @@ static int add_vertex_invoke(bContext *C, wmOperator *op, const wmEvent *event) const float mval[2] = {UNPACK2(event->mval)}; struct SnapObjectContext *snap_context = ED_transform_snap_object_context_create_view3d( - CTX_data_main(C), vc.scene, vc.view_layer, vc.engine_type, 0, - vc.ar, vc.v3d); + CTX_data_main(C), vc.scene, vc.view_layer, 0, vc.ar, vc.v3d); ED_transform_snap_object_project_view3d_mixed( snap_context, diff --git a/source/blender/editors/include/ED_transform_snap_object_context.h b/source/blender/editors/include/ED_transform_snap_object_context.h index 8761f2c5361..26cef2599bd 100644 --- a/source/blender/editors/include/ED_transform_snap_object_context.h +++ b/source/blender/editors/include/ED_transform_snap_object_context.h @@ -30,7 +30,6 @@ struct BMEdge; struct BMFace; struct ListBase; -struct RenderEngineType; struct Scene; struct ViewLayer; struct Main; @@ -76,9 +75,9 @@ struct SnapObjectParams { typedef struct SnapObjectContext SnapObjectContext; SnapObjectContext *ED_transform_snap_object_context_create( - struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct RenderEngineType *engine_type, int flag); + struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, int flag); SnapObjectContext *ED_transform_snap_object_context_create_view3d( - struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct RenderEngineType *engine_type, int flag, + struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, int flag, /* extra args for view3d */ const struct ARegion *ar, const struct View3D *v3d); void ED_transform_snap_object_context_destroy(SnapObjectContext *sctx); diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index 1619c59ddac..7f18c10f970 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -383,10 +383,12 @@ void ED_draw_object_facemap(const struct EvaluationContext *eval_ctx, struct Sc bool ED_view3d_context_activate(struct bContext *C); void ED_view3d_draw_offscreen_init( const struct EvaluationContext *eval_ctx, struct Scene *scene, - struct ViewLayer *view_layer, struct View3D *v3d); + struct ViewLayer *view_layer, struct RenderEngineType *engine_type, + struct View3D *v3d); void ED_view3d_draw_offscreen( const struct EvaluationContext *eval_ctx, struct Scene *scene, - struct ViewLayer *view_layer, struct View3D *v3d, struct ARegion *ar, int winx, int winy, float viewmat[4][4], + struct ViewLayer *view_layer, struct RenderEngineType *engine_type, + struct View3D *v3d, struct ARegion *ar, int winx, int winy, float viewmat[4][4], float winmat[4][4], bool do_bgpic, bool do_sky, bool is_persp, const char *viewname, struct GPUFXSettings *fx_settings, struct GPUOffScreen *ofs, struct GPUViewport *viewport); @@ -408,13 +410,15 @@ enum { struct ImBuf *ED_view3d_draw_offscreen_imbuf( const struct EvaluationContext *eval_ctx, struct Scene *scene, - struct ViewLayer *view_layer, struct View3D *v3d, struct ARegion *ar, + struct ViewLayer *view_layer, struct RenderEngineType *engine_type, + struct View3D *v3d, struct ARegion *ar, int sizex, int sizey, unsigned int flag, unsigned int draw_flags, int alpha_mode, int samples, const char *viewname, struct GPUOffScreen *ofs, char err_out[256]); struct ImBuf *ED_view3d_draw_offscreen_imbuf_simple( 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/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index dd64c957c4a..bf70cc3fa7e 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -326,7 +326,7 @@ void EMBM_project_snap_verts(bContext *C, ARegion *ar, BMEditMesh *em) ED_view3d_init_mats_rv3d(obedit, ar->regiondata); struct SnapObjectContext *snap_context = ED_transform_snap_object_context_create_view3d( - CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), CTX_data_engine_type(C), 0, + CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), 0, ar, CTX_wm_view3d(C)); BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 47e4fc51351..281c5f12b46 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -353,6 +353,7 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R char err_out[256] = "unknown"; ImBuf *ibuf_view; const int alpha_mode = (draw_sky) ? R_ADDSKY : R_ALPHAPREMUL; + struct RenderEngineType *engine_type = CTX_data_engine_type(C); unsigned int draw_flags = V3D_OFSDRAW_NONE; draw_flags |= (oglrender->ofs_full_samples) ? V3D_OFSDRAW_USE_FULL_SAMPLE : 0; @@ -361,7 +362,8 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R draw_flags |= (draw_bgpic) ? V3D_OFSDRAW_USE_BACKGROUND : 0; ibuf_view = ED_view3d_draw_offscreen_imbuf( - &eval_ctx, scene, view_layer, v3d, ar, sizex, sizey, + &eval_ctx, scene, view_layer, engine_type, + v3d, ar, sizex, sizey, IB_rectfloat, draw_flags, alpha_mode, oglrender->ofs_samples, viewname, oglrender->ofs, err_out); @@ -373,7 +375,8 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R else { draw_flags |= (V3D_OFSDRAW_USE_GPENCIL | V3D_OFSDRAW_USE_BACKGROUND); ibuf_view = ED_view3d_draw_offscreen_imbuf_simple( - &eval_ctx, scene, view_layer, scene->camera, oglrender->sizex, oglrender->sizey, + &eval_ctx, scene, view_layer, engine_type, + scene->camera, oglrender->sizex, oglrender->sizey, IB_rectfloat, draw_flags, OB_SOLID, alpha_mode, oglrender->ofs_samples, viewname, oglrender->ofs, err_out); diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c index 18019597865..c81a59b045f 100644 --- a/source/blender/editors/sculpt_paint/paint_image_proj.c +++ b/source/blender/editors/sculpt_paint/paint_image_proj.c @@ -5459,6 +5459,7 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op) Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); + struct RenderEngineType *engine_type = CTX_data_engine_type(C); EvaluationContext eval_ctx; ToolSettings *settings = scene->toolsettings; int w = settings->imapaint.screen_grab_size[0]; @@ -5476,7 +5477,8 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op) if (h > maxsize) h = maxsize; ibuf = ED_view3d_draw_offscreen_imbuf( - &eval_ctx, scene, view_layer, CTX_wm_view3d(C), CTX_wm_region(C), + &eval_ctx, scene, view_layer, engine_type, + CTX_wm_view3d(C), CTX_wm_region(C), w, h, IB_rect, V3D_OFSDRAW_NONE, R_ALPHAPREMUL, 0, NULL, NULL, err_out); if (!ibuf) { diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index f63bcb1571d..4a0ee31a2b7 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1957,9 +1957,12 @@ static void view3d_stereo3d_setup_offscreen( } } -void ED_view3d_draw_offscreen_init(const EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, View3D *v3d) +void ED_view3d_draw_offscreen_init(const EvaluationContext *eval_ctx, + Scene *scene, + ViewLayer *view_layer, + RenderEngineType *engine_type, + View3D *v3d) { - RenderEngineType *engine_type = eval_ctx->engine_type; if (engine_type->flag & RE_USE_LEGACY_PIPELINE) { /* shadow buffers, before we setup matrices */ if (draw_glsl_material(scene, view_layer, NULL, v3d, v3d->drawtype)) { @@ -1987,7 +1990,8 @@ static void view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar) * stuff like shadow buffers */ void ED_view3d_draw_offscreen( - const EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, + const EvaluationContext *eval_ctx, Scene *scene, + ViewLayer *view_layer, RenderEngineType *engine_type, View3D *v3d, ARegion *ar, int winx, int winy, float viewmat[4][4], float winmat[4][4], bool do_bgpic, bool do_sky, bool UNUSED(is_persp), const char *viewname, @@ -2034,7 +2038,6 @@ void ED_view3d_draw_offscreen( Depsgraph *depsgraph = eval_ctx->depsgraph; /* main drawing call */ - RenderEngineType *engine_type = eval_ctx->engine_type; if (engine_type->flag & RE_USE_LEGACY_PIPELINE) { VP_deprecated_view3d_draw_objects(NULL, eval_ctx, scene, v3d, ar, NULL, do_bgpic, true); @@ -2053,7 +2056,7 @@ void ED_view3d_draw_offscreen( } else { DRW_draw_render_loop_offscreen( - depsgraph, eval_ctx->engine_type, ar, v3d, + depsgraph, engine_type, ar, v3d, do_sky, ofs, viewport); } @@ -2077,7 +2080,8 @@ void ED_view3d_draw_offscreen( * (avoids re-creating when doing multiple GL renders). */ ImBuf *ED_view3d_draw_offscreen_imbuf( - const EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, + const EvaluationContext *eval_ctx, Scene *scene, + ViewLayer *view_layer, RenderEngineType *engine_type, View3D *v3d, ARegion *ar, int sizex, int sizey, unsigned int flag, unsigned int draw_flags, int alpha_mode, int samples, const char *viewname, @@ -2112,7 +2116,7 @@ ImBuf *ED_view3d_draw_offscreen_imbuf( } } - ED_view3d_draw_offscreen_init(eval_ctx, scene, view_layer, v3d); + ED_view3d_draw_offscreen_init(eval_ctx, scene, view_layer, engine_type, v3d); GPU_offscreen_bind(ofs, true); @@ -2154,7 +2158,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf( if ((samples && use_full_sample) == 0) { /* Single-pass render, common case */ ED_view3d_draw_offscreen( - eval_ctx, scene, view_layer, v3d, ar, sizex, sizey, NULL, winmat, + eval_ctx, scene, view_layer, engine_type, + v3d, ar, sizex, sizey, NULL, winmat, draw_background, draw_sky, !is_ortho, viewname, &fx_settings, ofs, NULL); @@ -2178,7 +2183,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf( /* first sample buffer, also initializes 'rv3d->persmat' */ ED_view3d_draw_offscreen( - eval_ctx, scene, view_layer, v3d, ar, sizex, sizey, NULL, winmat, + eval_ctx, scene, view_layer, engine_type, + v3d, ar, sizex, sizey, NULL, winmat, draw_background, draw_sky, !is_ortho, viewname, &fx_settings, ofs, viewport); GPU_offscreen_read_pixels(ofs, GL_FLOAT, accum_buffer); @@ -2192,7 +2198,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf( (jit_ofs[j][1] * 2.0f) / sizey); ED_view3d_draw_offscreen( - eval_ctx, scene, view_layer, v3d, ar, sizex, sizey, NULL, winmat_jitter, + eval_ctx, scene, view_layer, engine_type, + v3d, ar, sizex, sizey, NULL, winmat_jitter, draw_background, draw_sky, !is_ortho, viewname, &fx_settings, ofs, viewport); GPU_offscreen_read_pixels(ofs, GL_FLOAT, rect_temp); @@ -2255,7 +2262,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf( * \note used by the sequencer */ ImBuf *ED_view3d_draw_offscreen_imbuf_simple( - const EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, + const EvaluationContext *eval_ctx, Scene *scene, + ViewLayer *view_layer, RenderEngineType *engine_type, Object *camera, int width, int height, unsigned int flag, unsigned int draw_flags, int drawtype, int alpha_mode, int samples, const char *viewname, @@ -2317,7 +2325,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf_simple( invert_m4_m4(rv3d.persinv, rv3d.viewinv); return ED_view3d_draw_offscreen_imbuf( - eval_ctx, scene, view_layer, &v3d, &ar, width, height, flag, + eval_ctx, scene, view_layer, engine_type, + &v3d, &ar, width, height, flag, draw_flags, alpha_mode, samples, viewname, ofs, err_out); } diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c index f1c251891b0..7272fc6b408 100644 --- a/source/blender/editors/space_view3d/view3d_draw_legacy.c +++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c @@ -1420,9 +1420,12 @@ static void gpu_update_lamps_shadows_world(const EvaluationContext *eval_ctx, Sc mul_m4_m4m4(rv3d.persmat, rv3d.winmat, rv3d.viewmat); invert_m4_m4(rv3d.persinv, rv3d.viewinv); + RenderEngineType *engine_type = RE_engines_find(scene->view_render.engine_id); + /* no need to call ED_view3d_draw_offscreen_init since shadow buffers were already updated */ ED_view3d_draw_offscreen( - eval_ctx, scene, eval_ctx->view_layer, v3d, &ar, winsize, winsize, viewmat, winmat, + eval_ctx, scene, eval_ctx->view_layer, engine_type, + v3d, &ar, winsize, winsize, viewmat, winmat, false, false, true, NULL, NULL, NULL, NULL); GPU_lamp_shadow_buffer_unbind(shadow->lamp); diff --git a/source/blender/editors/space_view3d/view3d_manipulator_ruler.c b/source/blender/editors/space_view3d/view3d_manipulator_ruler.c index e8d540bcc9d..f9955f29774 100644 --- a/source/blender/editors/space_view3d/view3d_manipulator_ruler.c +++ b/source/blender/editors/space_view3d/view3d_manipulator_ruler.c @@ -277,7 +277,7 @@ static void ruler_state_set(bContext *C, RulerInfo *ruler_info, int state) } else if (state == RULER_STATE_DRAG) { ruler_info->snap_context = ED_transform_snap_object_context_create_view3d( - CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), CTX_data_engine_type(C), 0, + CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), 0, ruler_info->ar, CTX_wm_view3d(C)); } else { diff --git a/source/blender/editors/space_view3d/view3d_ruler.c b/source/blender/editors/space_view3d/view3d_ruler.c index 093425fc3bc..f61aad2806e 100644 --- a/source/blender/editors/space_view3d/view3d_ruler.c +++ b/source/blender/editors/space_view3d/view3d_ruler.c @@ -282,7 +282,7 @@ static void ruler_state_set(bContext *C, RulerInfo *ruler_info, int state) } else if (state == RULER_STATE_DRAG) { ruler_info->snap_context = ED_transform_snap_object_context_create_view3d( - CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), CTX_data_engine_type(C), 0, + CTX_data_main(C), CTX_data_scene(C), CTX_data_view_layer(C), 0, ruler_info->ar, CTX_wm_view3d(C)); } else { diff --git a/source/blender/editors/space_view3d/view3d_walk.c b/source/blender/editors/space_view3d/view3d_walk.c index e65f9abae27..3bf0e579bb3 100644 --- a/source/blender/editors/space_view3d/view3d_walk.c +++ b/source/blender/editors/space_view3d/view3d_walk.c @@ -58,8 +58,6 @@ #include "GPU_immediate.h" -#include "RE_engine.h" - #include "DEG_depsgraph.h" #include "view3d_intern.h" /* own include */ @@ -254,7 +252,6 @@ typedef struct WalkInfo { const struct Depsgraph *depsgraph; Scene *scene; ViewLayer *view_layer; - RenderEngineType *engine_type; wmTimer *timer; /* needed for redraws */ @@ -522,7 +519,6 @@ static bool initWalkInfo(bContext *C, WalkInfo *walk, wmOperator *op) walk->depsgraph = CTX_data_depsgraph(C); walk->scene = CTX_data_scene(C); walk->view_layer = CTX_data_view_layer(C); - walk->engine_type = CTX_data_engine_type(C); #ifdef NDOF_WALK_DEBUG puts("\n-- walk begin --"); @@ -611,7 +607,7 @@ static bool initWalkInfo(bContext *C, WalkInfo *walk, wmOperator *op) walk->rv3d->rflag |= RV3D_NAVIGATING; walk->snap_context = ED_transform_snap_object_context_create_view3d( - CTX_data_main(C), walk->scene, walk->view_layer, walk->engine_type, 0, + CTX_data_main(C), walk->scene, walk->view_layer, 0, walk->ar, walk->v3d); walk->v3d_camera_control = ED_view3d_cameracontrol_acquire( diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index ad913cd2336..5cb3f262ced 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -584,8 +584,7 @@ static void initSnappingMode(TransInfo *t) if (t->spacetype == SPACE_VIEW3D) { if (t->tsnap.object_context == NULL) { t->tsnap.object_context = ED_transform_snap_object_context_create_view3d( - G.main, t->scene, t->view_layer, t->engine_type, 0, - t->ar, t->view); + G.main, t->scene, t->view_layer, 0, t->ar, t->view); ED_transform_snap_object_context_set_editmesh_callbacks( t->tsnap.object_context, diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c index c336cd1d31e..2a9b4790eaf 100644 --- a/source/blender/editors/transform/transform_snap_object.c +++ b/source/blender/editors/transform/transform_snap_object.c @@ -2079,7 +2079,7 @@ static bool snapObjectsRay( * \{ */ SnapObjectContext *ED_transform_snap_object_context_create( - Main *bmain, Scene *scene, ViewLayer *view_layer, RenderEngineType *engine_type, int flag) + Main *bmain, Scene *scene, ViewLayer *view_layer, int flag) { SnapObjectContext *sctx = MEM_callocN(sizeof(*sctx), __func__); @@ -2089,7 +2089,7 @@ SnapObjectContext *ED_transform_snap_object_context_create( sctx->scene = scene; DEG_evaluation_context_init_from_scene( - &sctx->eval_ctx, scene, view_layer, engine_type, DAG_EVAL_VIEWPORT); + &sctx->eval_ctx, scene, view_layer, DAG_EVAL_VIEWPORT); sctx->cache.object_map = BLI_ghash_ptr_new(__func__); sctx->cache.mem_arena = BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, __func__); @@ -2098,11 +2098,11 @@ SnapObjectContext *ED_transform_snap_object_context_create( } SnapObjectContext *ED_transform_snap_object_context_create_view3d( - Main *bmain, Scene *scene, ViewLayer *view_layer, RenderEngineType *engine_type, int flag, + Main *bmain, Scene *scene, ViewLayer *view_layer, int flag, /* extra args for view3d */ const ARegion *ar, const View3D *v3d) { - SnapObjectContext *sctx = ED_transform_snap_object_context_create(bmain, scene, view_layer, engine_type, flag); + SnapObjectContext *sctx = ED_transform_snap_object_context_create(bmain, scene, view_layer, flag); sctx->use_v3d = true; sctx->v3d_data.ar = ar; diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index 7a7537bcf1f..d113a5509f8 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -171,24 +171,15 @@ static void rna_SceneRender_get_frame_path(RenderData *rd, int frame, int previe } static void rna_Scene_ray_cast( - Scene *scene, ViewLayer *view_layer, const char *engine_id, + Scene *scene, ViewLayer *view_layer, float origin[3], float direction[3], float ray_dist, int *r_success, float r_location[3], float r_normal[3], int *r_index, Object **r_ob, float r_obmat[16]) { - RenderEngineType *engine_type; - - if (engine_id == NULL || engine_id[0] == '\0') { - engine_type = RE_engines_find(scene->view_render.engine_id); - } - else { - engine_type = RE_engines_find(engine_id); - } - normalize_v3(direction); SnapObjectContext *sctx = ED_transform_snap_object_context_create( - G.main, scene, view_layer, engine_type, 0); + G.main, scene, view_layer, 0); bool ret = ED_transform_snap_object_project_ray_ex( sctx, @@ -322,7 +313,6 @@ void RNA_api_scene(StructRNA *srna) RNA_def_function_ui_description(func, "Cast a ray onto in object space"); parm = RNA_def_pointer(func, "view_layer", "ViewLayer", "", "Scene Layer"); RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED); - parm = RNA_def_string(func, "engine", NULL, MAX_NAME, "Engine", "Render engine, use scene one by default"); /* ray start and end */ parm = RNA_def_float_vector(func, "origin", 3, NULL, -FLT_MAX, FLT_MAX, "", "", -1e4, 1e4); RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 897a6308dd3..6591a8c9f59 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -1052,16 +1052,18 @@ static ImBuf *blend_file_thumb(const bContext *C, Scene *scene, ViewLayer *view_ } /* gets scaled to BLEN_THUMB_SIZE */ + RenderEngineType *engine_type = CTX_data_engine_type(C); + if (scene->camera) { ibuf = ED_view3d_draw_offscreen_imbuf_simple( - &eval_ctx, scene, view_layer, scene->camera, + &eval_ctx, scene, view_layer, engine_type, scene->camera, BLEN_THUMB_SIZE * 2, BLEN_THUMB_SIZE * 2, IB_rect, V3D_OFSDRAW_NONE, OB_SOLID, R_ALPHAPREMUL, 0, NULL, NULL, err_out); } else { ibuf = ED_view3d_draw_offscreen_imbuf( - &eval_ctx, scene, view_layer, v3d, ar, + &eval_ctx, scene, view_layer, engine_type, v3d, ar, BLEN_THUMB_SIZE * 2, BLEN_THUMB_SIZE * 2, IB_rect, V3D_OFSDRAW_NONE, R_ALPHAPREMUL, 0, NULL, NULL, err_out); |