diff --git a/source/blender/radiosity/intern/source/radpreprocess.c b/source/blender/radiosity/intern/source/radpreprocess.c index cf7385edd0c..38a28db2a04 100644 --- a/source/blender/radiosity/intern/source/radpreprocess.c +++ b/source/blender/radiosity/intern/source/radpreprocess.c @@ -313,6 +313,11 @@ void rad_collect_meshes() float *vd, *v1, *v2, *v3, *v4 = NULL; int a, b, offs, index; + if (G.vd==NULL) { + printf("Error, trying to collect radiosity meshes with no 3d view\n"); + return; + } + if(G.obedit) { if (!during_script()) error("Unable to perform function in EditMode"); return; diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 49c5dcc5b99..ef30ddd3545 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -3860,6 +3860,11 @@ void RE_make_sticky(void) float ho[4], mat[4][4]; int a; + if(G.vd==NULL) { + printf("Need a 3d view to make sticky\n"); + return; + } + if(G.scene->camera==NULL) { printf("Need camera to make sticky\n"); return; diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 55d68bf6144..b63567efbb2 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -632,6 +632,9 @@ void do_common_editbuts(unsigned short event) // old name, is a mix of object an default: + if (G.vd==NULL) + break; + if(event>=B_OBLAY && event<=B_OBLAY+31) { local= BASACT->lay & 0xFF000000; BASACT->lay -= local; diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index be7de2a02f3..8d61e751d35 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -1924,6 +1924,9 @@ void do_effects_panels(unsigned short event) allqueue(REDRAWVIEW3D, 0); break; case B_RECALCAL: + if (G.vd==NULL) + break; + base= FIRSTBASE; while(base) { if(base->lay & G.vd->lay) { diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index f6bb8eac466..c0a2bb9ff50 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -1590,7 +1590,7 @@ void docentre(int centremode) int a, total= 0; MVert *mvert; - if(G.scene->id.lib) return; + if(G.scene->id.lib || G.vd==NULL) return; cent[0]= cent[1]= cent[2]= 0.0; @@ -4820,7 +4820,7 @@ void auto_timeoffs(void) int tot=0, a; short offset=25; - if(BASACT==0) return; + if(BASACT==0 || G.vd==NULL) return; if(button(&offset, 0, 1000,"Total time")==0) return; /* make array of all bases, xco yco (screen) */ diff --git a/source/blender/src/meshtools.c b/source/blender/src/meshtools.c index 26696b9bda2..4dd3825c134 100644 --- a/source/blender/src/meshtools.c +++ b/source/blender/src/meshtools.c @@ -450,7 +450,7 @@ void fasterdraw(void) Mesh *me; int toggle, a; - if(G.obedit) return; + if(G.obedit || G.vd==NULL) return; /* reset flags */ me= G.main->mesh.first; @@ -494,7 +494,7 @@ void slowerdraw(void) /* reset fasterdraw */ Mesh *me; int a; - if(G.obedit) return; + if(G.obedit || G.vd==NULL) return; base= FIRSTBASE; while(base) {