Commit: 9e0fcd575572e4156be8ad45afef0dbd5130d209 Author: Philipp Oeser Date: Wed Nov 16 09:58:41 2022 +0100 Branches: blender-v2.93-release https://developer.blender.org/rB9e0fcd575572e4156be8ad45afef0dbd5130d209
Fix T102514: wrong scene reported for missing compositing camera If compositing uses renderlayers, and a camera was missing in the associated scenes, the error message also referred to the scene the comp tree was in (not the scene of the renderlayer -- which can potentionally be different). This was confusing and is now rectified. Maniphest Tasks: T102514 Differential Revision: https://developer.blender.org/D16542 =================================================================== M source/blender/render/intern/pipeline.c =================================================================== diff --git a/source/blender/render/intern/pipeline.c b/source/blender/render/intern/pipeline.c index a39214b609d..d56daafaa9d 100644 --- a/source/blender/render/intern/pipeline.c +++ b/source/blender/render/intern/pipeline.c @@ -1497,7 +1497,9 @@ static void do_render_full_pipeline(Render *re) } } -static bool check_valid_compositing_camera(Scene *scene, Object *camera_override) +static bool check_valid_compositing_camera(Scene *scene, + Object *camera_override, + ReportList *reports) { if (scene->r.scemode & R_DOCOMP && scene->use_nodes) { bNode *node = scene->nodetree->nodes.first; @@ -1510,6 +1512,11 @@ static bool check_valid_compositing_camera(Scene *scene, Object *camera_override } if (sce->camera == NULL) { /* all render layers nodes need camera */ + BKE_reportf(reports, + RPT_ERROR, + "No camera found in scene \"%s\" (used in compositing of scene \"%s\")", + sce->id.name + 2, + scene->id.name + 2); return false; } } @@ -1519,7 +1526,12 @@ static bool check_valid_compositing_camera(Scene *scene, Object *camera_override return true; } - return (camera_override != NULL || scene->camera != NULL); + const bool ok = (camera_override != NULL || scene->camera != NULL); + if (!ok) { + BKE_reportf(reports, RPT_ERROR, "No camera found in scene \"%s\"", scene->id.name + 2); + } + + return ok; } static bool check_valid_camera_multiview(Scene *scene, Object *camera, ReportList *reports) @@ -1563,8 +1575,6 @@ static bool check_valid_camera_multiview(Scene *scene, Object *camera, ReportLis static int check_valid_camera(Scene *scene, Object *camera_override, ReportList *reports) { - const char *err_msg = "No camera found in scene \"%s\""; - if (camera_override == NULL && scene->camera == NULL) { scene->camera = BKE_view_layer_camera_find(BKE_view_layer_default_render(scene)); } @@ -1586,8 +1596,7 @@ static int check_valid_camera(Scene *scene, Object *camera_override, ReportList /* camera could be unneeded due to composite nodes */ Object *override = (seq->scene == scene) ? camera_override : NULL; - if (!check_valid_compositing_camera(seq->scene, override)) { - BKE_reportf(reports, RPT_ERROR, err_msg, seq->scene->id.name + 2); + if (!check_valid_compositing_camera(seq->scene, override, reports)) { return false; } } @@ -1601,8 +1610,7 @@ static int check_valid_camera(Scene *scene, Object *camera_override, ReportList } } } - else if (!check_valid_compositing_camera(scene, camera_override)) { - BKE_reportf(reports, RPT_ERROR, err_msg, scene->id.name + 2); + else if (!check_valid_compositing_camera(scene, camera_override, reports)) { return false; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs