diff options
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/context.c | 18 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 100 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/workspace.c | 10 |
4 files changed, 21 insertions, 113 deletions
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index 351e43706dd..f5a0d4e7c60 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -930,24 +930,10 @@ ViewLayer *CTX_data_view_layer(const bContext *C) } } -ViewRender *CTX_data_view_render(const bContext *C) -{ - ViewRender *view_render; - - if (ctx_data_pointer_verify(C, "view_render", (void *)&view_render)) { - return view_render; - } - else { - Scene *scene = CTX_data_scene(C); - WorkSpace *workspace = CTX_wm_workspace(C); - return BKE_viewrender_get(scene, workspace); - } -} - RenderEngineType *CTX_data_engine_type(const bContext *C) { - ViewRender *view_render = CTX_data_view_render(C); - return RE_engines_find(view_render->engine_id); + Scene *scene = CTX_data_scene(C); + return RE_engines_find(scene->r.engine); } /** diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index e68d1db3e4a..51a4e8bfd66 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -744,7 +744,7 @@ void BKE_scene_init(Scene *sce) sce->r.ffcodecdata.audio_bitrate = 192; sce->r.ffcodecdata.audio_channels = 2; - BKE_viewrender_init(&sce->view_render); + BLI_strncpy(sce->r.engine, RE_engine_id_BLENDER_EEVEE, sizeof(sce->r.engine)); sce->audio.distance_model = 2.0f; sce->audio.doppler_factor = 1.0f; @@ -1280,21 +1280,19 @@ static bool check_rendered_viewport_visible(Main *bmain) wmWindow *window; for (window = wm->windows.first; window != NULL; window = window->next) { const bScreen *screen = BKE_workspace_active_screen_get(window->workspace_hook); - WorkSpace *workspace = BKE_workspace_active_get(window->workspace_hook); Scene *scene = window->scene; - ViewRender *view_render = BKE_viewrender_get(scene, workspace); - ScrArea *area; - RenderEngineType *type = RE_engines_find(view_render->engine_id); - if ((type->draw_engine != NULL) || (type->render_to_view == NULL)) { + RenderEngineType *type = RE_engines_find(scene->r.engine); + + if (type->draw_engine || !type->render_to_view) { continue; } - const bool use_legacy = (type->flag & RE_USE_LEGACY_PIPELINE) != 0; - for (area = screen->areabase.first; area != NULL; area = area->next) { + + for (ScrArea *area = screen->areabase.first; area != NULL; area = area->next) { View3D *v3d = area->spacedata.first; if (area->spacetype != SPACE_VIEW3D) { continue; } - if (v3d->drawtype == OB_RENDER || !use_legacy) { + if (v3d->drawtype == OB_RENDER) { return true; } } @@ -1529,34 +1527,37 @@ next_set: bool BKE_scene_use_new_shading_nodes(const Scene *scene) { - return BKE_viewrender_use_new_shading_nodes(&scene->view_render); + const RenderEngineType *type = RE_engines_find(scene->r.engine); + return (type && type->flag & RE_USE_SHADING_NODES); } bool BKE_scene_use_shading_nodes_custom(Scene *scene) { - return BKE_viewrender_use_shading_nodes_custom(&scene->view_render); + RenderEngineType *type = RE_engines_find(scene->r.engine); + return (type && type->flag & RE_USE_SHADING_NODES_CUSTOM); } bool BKE_scene_use_world_space_shading(Scene *scene) { - RenderEngineType *type = RE_engines_find(scene->view_render.engine_id); + const RenderEngineType *type = RE_engines_find(scene->r.engine); return ((scene->r.mode & R_USE_WS_SHADING) || (type && (type->flag & RE_USE_SHADING_NODES))); } bool BKE_scene_use_spherical_stereo(Scene *scene) { - return BKE_viewrender_use_spherical_stereo(&scene->view_render); + RenderEngineType *type = RE_engines_find(scene->r.engine); + return (type && type->flag & RE_USE_SPHERICAL_STEREO); } bool BKE_scene_uses_blender_internal(const Scene *scene) { - return BKE_viewrender_uses_blender_internal(&scene->view_render); + return STREQ(scene->r.engine, RE_engine_id_BLENDER_RENDER); } bool BKE_scene_uses_blender_eevee(const Scene *scene) { - return BKE_viewrender_uses_blender_eevee(&scene->view_render); + return STREQ(scene->r.engine, RE_engine_id_BLENDER_EEVEE); } void BKE_scene_base_flag_to_objects(ViewLayer *view_layer) @@ -1661,75 +1662,6 @@ int BKE_render_preview_pixel_size(const RenderData *r) return r->preview_pixel_size; } -/* ***************************************************** */ -/* render engine settings */ - -ViewRender *BKE_viewrender_get(Scene *scene, WorkSpace *workspace) -{ - if (workspace == NULL || BKE_workspace_use_scene_settings_get(workspace)) { - return &scene->view_render; - } - return BKE_workspace_view_render_get(workspace); -} - -/** - * Initialize a static created struct for WorkSpace and Scene to store the viewport - * related drawing data. - */ -void BKE_viewrender_init(ViewRender *view_render) -{ - BLI_strncpy(view_render->engine_id, RE_engine_id_BLENDER_EEVEE, sizeof(view_render->engine_id)); -} - -/** - * Do not free ViewRender itself since it's not even allocated. - */ -void BKE_viewrender_free(ViewRender *UNUSED(view_render)) -{ - /* Do nothing. */ -} - -/** - * Copy used by libblock copying. - */ -void BKE_viewrender_copy(ViewRender *to, const ViewRender *from) -{ - *to = *from; -} - -bool BKE_viewrender_use_new_shading_nodes(const ViewRender *view_render) -{ - RenderEngineType *type = RE_engines_find(view_render->engine_id); - return (type && type->flag & RE_USE_SHADING_NODES); -} - -bool BKE_viewrender_use_shading_nodes_custom(const ViewRender *view_render) -{ - RenderEngineType *type = RE_engines_find(view_render->engine_id); - return (type && type->flag & RE_USE_SHADING_NODES_CUSTOM); -} - -bool BKE_viewrender_use_spherical_stereo(const ViewRender *view_render) -{ - const char *engine_id = view_render->engine_id; - RenderEngineType *type = RE_engines_find(engine_id); - return (type && type->flag & RE_USE_SPHERICAL_STEREO); -} - -bool BKE_viewrender_uses_blender_internal(const ViewRender *view_render) -{ - const char *engine_id = view_render->engine_id; - return STREQ(engine_id, RE_engine_id_BLENDER_RENDER); -} - -bool BKE_viewrender_uses_blender_eevee(const ViewRender *view_render) -{ - const char *engine_id = view_render->engine_id; - return STREQ(engine_id, RE_engine_id_BLENDER_EEVEE); -} - -/* ***************************************************** */ - /* Apply the needed correction factor to value, based on unit_type (only length-related are affected currently) * and unit->scale_length. */ diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 4f8e4b0b842..f7871c0fa0b 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3333,14 +3333,14 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq context->scene->r.seq_prev_type = 3 /* == OB_SOLID */; /* opengl offscreen render */ - 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(depsgraph, context->bmain); ibuf = sequencer_view3d_cb( /* set for OpenGL render (NULL when scrubbing) */ - depsgraph, scene, view_layer, engine_type, + depsgraph, scene, view_layer, + context->scene->r.seq_prev_type, camera, width, height, IB_rect, - draw_flags, context->scene->r.seq_prev_type, + draw_flags, scene->r.alphamode, context->gpu_samples, viewname, context->gpu_offscreen, err_out); if (ibuf == NULL) { diff --git a/source/blender/blenkernel/intern/workspace.c b/source/blender/blenkernel/intern/workspace.c index 466848fa6b1..8de62f82c1b 100644 --- a/source/blender/blenkernel/intern/workspace.c +++ b/source/blender/blenkernel/intern/workspace.c @@ -171,8 +171,6 @@ void BKE_workspace_free(WorkSpace *workspace) BLI_freelistN(&workspace->owner_ids); BLI_freelistN(&workspace->layouts); - - BKE_viewrender_free(&workspace->view_render); } /** @@ -442,14 +440,6 @@ void BKE_workspace_hook_layout_for_workspace_set( workspace_relation_ensure_updated(&workspace->hook_layout_relations, hook, layout); } -/** - * Get the render engine of a workspace, to be used in the viewport. - */ -ViewRender *BKE_workspace_view_render_get(WorkSpace *workspace) -{ - return &workspace->view_render; -} - /* Flags */ bool BKE_workspace_use_scene_settings_get(const WorkSpace *workspace) { |