Fix T53544: Crash drawing scene w/o world
authorCampbell Barton <ideasman42@gmail.com>
Tue, 18 Dec 2018 02:56:26 +0000 (13:56 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 18 Dec 2018 02:56:26 +0000 (13:56 +1100)
source/blender/editors/space_view3d/view3d_utils.c

index 87f2e6b32d45e527f4d47d07ab88b7a49f008d3a..540806d4b671f7c1884826b4a62a94fc861fd5b5 100644 (file)
 
 void ED_view3d_background_color_get(const Scene *scene, const View3D *v3d, float r_color[3])
 {
-       switch (v3d->shading.background_type) {
-               case V3D_SHADING_BACKGROUND_WORLD:
+       if (v3d->shading.background_type == V3D_SHADING_BACKGROUND_WORLD) {
+               if (scene->world) {
                        copy_v3_v3(r_color, &scene->world->horr);
-                       break;
-               case V3D_SHADING_BACKGROUND_VIEWPORT:
-                       copy_v3_v3(r_color, v3d->shading.background_color);
-                       break;
-               case V3D_SHADING_BACKGROUND_THEME:
-               default:
-                       UI_GetThemeColor3fv(TH_HIGH_GRAD, r_color);
-                       break;
+                       return;
+               }
        }
+       else if (v3d->shading.background_type == V3D_SHADING_BACKGROUND_VIEWPORT) {
+               copy_v3_v3(r_color, v3d->shading.background_color);
+               return;
+       }
+
+       UI_GetThemeColor3fv(TH_HIGH_GRAD, r_color);
 }
 
 void ED_view3d_cursor3d_calc_mat3(const Scene *scene, float mat[3][3])