Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2017-11-08 17:16:49 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-11-08 23:39:01 +0300
commit206c94fea98d44ed9667607638c455c7c0e63822 (patch)
treeddc1f6f30c18d10674daaeeaee6b465550447709 /source/blender/editors/screen
parent670e6cab4319b94c96c6a61cb76199f1054b935a (diff)
Farewell Scene->base
While getting rid of Scene->base we got the following fixes: * Fix "Convert To" operator * Fix "NLA allowing to selected objects that are not selectable * Fix scene.objects (readonly, no option to link/unlink) Note: Collada needs to use the context SceneLayer for adding objects however I added a placeholder, so Collada maintainers can fix this properly.
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r--source/blender/editors/screen/screen_edit.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 5e0afe0ec39..749a857fdaa 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -45,6 +45,7 @@
#include "BKE_icons.h"
#include "BKE_image.h"
#include "BKE_global.h"
+#include "BKE_layer.h"
#include "BKE_library.h"
#include "BKE_library_remap.h"
#include "BKE_main.h"
@@ -1302,13 +1303,13 @@ bool ED_screen_change(bContext *C, bScreen *sc)
return false;
}
-static void screen_set_3dview_camera(Scene *scene, ScrArea *sa, View3D *v3d)
+static void screen_set_3dview_camera(Scene *scene, SceneLayer *scene_layer, ScrArea *sa, View3D *v3d)
{
/* fix any cameras that are used in the 3d view but not in the scene */
BKE_screen_view3d_sync(v3d, scene);
- if (!v3d->camera || !BKE_scene_base_find(scene, v3d->camera)) {
- v3d->camera = BKE_scene_camera_find(scene);
+ if (!v3d->camera || !BKE_scene_layer_base_find(scene_layer, v3d->camera)) {
+ v3d->camera = BKE_scene_layer_camera_find(scene_layer);
// XXX if (sc == curscreen) handle_view3d_lock();
if (!v3d->camera) {
ARegion *ar;
@@ -1332,13 +1333,13 @@ static void screen_set_3dview_camera(Scene *scene, ScrArea *sa, View3D *v3d)
}
}
-void ED_screen_update_after_scene_change(const bScreen *screen, Scene *scene_new)
+void ED_screen_update_after_scene_change(const bScreen *screen, Scene *scene_new, SceneLayer *scene_layer)
{
for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
if (sl->spacetype == SPACE_VIEW3D) {
View3D *v3d = (View3D *)sl;
- screen_set_3dview_camera(scene_new, sa, v3d);
+ screen_set_3dview_camera(scene_new, scene_layer, sa, v3d);
}
}
}