Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/pipeline.cc
| Show First 20 Lines • Show All 1,433 Lines • ▼ Show 20 Lines | |||||
| static bool check_valid_compositing_camera(Scene *scene, Object *camera_override) | static bool check_valid_compositing_camera(Scene *scene, Object *camera_override) | ||||
| { | { | ||||
| if (scene->r.scemode & R_DOCOMP && scene->use_nodes) { | if (scene->r.scemode & R_DOCOMP && scene->use_nodes) { | ||||
| LISTBASE_FOREACH (bNode *, node, &scene->nodetree->nodes) { | LISTBASE_FOREACH (bNode *, node, &scene->nodetree->nodes) { | ||||
| if (node->type == CMP_NODE_R_LAYERS && (node->flag & NODE_MUTED) == 0) { | if (node->type == CMP_NODE_R_LAYERS && (node->flag & NODE_MUTED) == 0) { | ||||
| Scene *sce = node->id ? (Scene *)node->id : scene; | Scene *sce = node->id ? (Scene *)node->id : scene; | ||||
| if (sce->camera == nullptr) { | if (sce->camera == nullptr) { | ||||
| sce->camera = BKE_view_layer_camera_find(BKE_view_layer_default_render(sce)); | sce->camera = BKE_view_layer_camera_find(scene, BKE_view_layer_default_render(sce)); | ||||
| } | } | ||||
| if (sce->camera == nullptr) { | if (sce->camera == nullptr) { | ||||
| /* all render layers nodes need camera */ | /* all render layers nodes need camera */ | ||||
| return false; | return false; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | static bool check_valid_camera_multiview(Scene *scene, Object *camera, ReportList *reports) | ||||
| return true; | return true; | ||||
| } | } | ||||
| static int check_valid_camera(Scene *scene, Object *camera_override, ReportList *reports) | static int check_valid_camera(Scene *scene, Object *camera_override, ReportList *reports) | ||||
| { | { | ||||
| const char *err_msg = "No camera found in scene \"%s\""; | const char *err_msg = "No camera found in scene \"%s\""; | ||||
| if (camera_override == nullptr && scene->camera == nullptr) { | if (camera_override == nullptr && scene->camera == nullptr) { | ||||
| scene->camera = BKE_view_layer_camera_find(BKE_view_layer_default_render(scene)); | scene->camera = BKE_view_layer_camera_find(scene, BKE_view_layer_default_render(scene)); | ||||
| } | } | ||||
| if (!check_valid_camera_multiview(scene, scene->camera, reports)) { | if (!check_valid_camera_multiview(scene, scene->camera, reports)) { | ||||
| return false; | return false; | ||||
| } | } | ||||
| if (RE_seq_render_active(scene, &scene->r)) { | if (RE_seq_render_active(scene, &scene->r)) { | ||||
| if (scene->ed) { | if (scene->ed) { | ||||
| LISTBASE_FOREACH (Sequence *, seq, &scene->ed->seqbase) { | LISTBASE_FOREACH (Sequence *, seq, &scene->ed->seqbase) { | ||||
| if ((seq->type == SEQ_TYPE_SCENE) && ((seq->flag & SEQ_SCENE_STRIPS) == 0) && | if ((seq->type == SEQ_TYPE_SCENE) && ((seq->flag & SEQ_SCENE_STRIPS) == 0) && | ||||
| (seq->scene != nullptr)) { | (seq->scene != nullptr)) { | ||||
| if (!seq->scene_camera) { | if (!seq->scene_camera) { | ||||
| if (!seq->scene->camera && | if (!seq->scene->camera && | ||||
| !BKE_view_layer_camera_find(BKE_view_layer_default_render(seq->scene))) { | !BKE_view_layer_camera_find(seq->scene, | ||||
| BKE_view_layer_default_render(seq->scene))) { | |||||
| /* camera could be unneeded due to composite nodes */ | /* camera could be unneeded due to composite nodes */ | ||||
| Object *override = (seq->scene == scene) ? camera_override : nullptr; | Object *override = (seq->scene == scene) ? camera_override : nullptr; | ||||
| if (!check_valid_compositing_camera(seq->scene, override)) { | if (!check_valid_compositing_camera(seq->scene, override)) { | ||||
| BKE_reportf(reports, RPT_ERROR, err_msg, seq->scene->id.name + 2); | BKE_reportf(reports, RPT_ERROR, err_msg, seq->scene->id.name + 2); | ||||
| return false; | return false; | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 1,141 Lines • Show Last 20 Lines | |||||