unwrapping would crash if there was no space image
authorCampbell Barton <ideasman42@gmail.com>
Fri, 21 Sep 2007 14:34:29 +0000 (14:34 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 21 Sep 2007 14:34:29 +0000 (14:34 +0000)
source/blender/include/BIF_drawimage.h
source/blender/include/BIF_editsima.h
source/blender/src/drawimage.c
source/blender/src/unwrapper.c

index 90feb558d99f74fa88d12b3f5e265f9b2adf05bc..ca7a25304abaf11b18990f3c346a6ff97a7257ca 100644 (file)
@@ -43,8 +43,8 @@ struct uiBlock;
 void do_imagebuts(unsigned short event);
 void calc_image_view(struct SpaceImage *sima, char mode);
 void drawimagespace(struct ScrArea *sa, void *spacedata);
-void draw_tfaces(void);
 void image_changed(struct SpaceImage *sima, struct Image *image);
+void draw_uvs_sima(void);
 void image_set_tile(struct SpaceImage *sima, int dotile);
 void image_home(void);
 void image_viewmove(int mode);
index 1df3c85d53e1ceba67c05a86cc4598c6c955cdc9..d7cd5fb29b66d4aafafc2ce02af9d82391797ffb 100644 (file)
@@ -39,26 +39,28 @@ struct SpaceImage;
 #define TF_SEL_MASK(id) (TF_SEL1 << id)
 
   
-/* this checks weather a face is drarn without the local image check */
+/* this checks weather a face is drarn without the local image check
+ * - warning - no check for G.sima->flag, use SIMA_FACEDRAW_CHECK
+ */
 #define SIMA_FACEDRAW_CHECK_NOLOCAL(efa) \
        ((G.sima->flag & SI_SYNC_UVSEL) ? (efa->h==0) : (efa->h==0 && efa->f & SELECT))
 
 /* this check includes the local image check - (does the faces image match the space image?) */
 #define SIMA_FACEDRAW_CHECK(efa, tf) \
-       ((G.sima->flag & SI_LOCAL_UV) ? ((tf->tpage==G.sima->image) ? SIMA_FACEDRAW_CHECK_NOLOCAL(efa):0) : (SIMA_FACEDRAW_CHECK_NOLOCAL(efa)))
+       ((G.sima && G.sima->flag & SI_LOCAL_UV) ? ((tf->tpage==G.sima->image) ? SIMA_FACEDRAW_CHECK_NOLOCAL(efa):0) : (SIMA_FACEDRAW_CHECK_NOLOCAL(efa)))
 
 #define SIMA_FACESEL_CHECK(efa, tf) \
-       ((G.sima->flag & SI_SYNC_UVSEL) ? (efa->f & SELECT) : (!(~tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3)) &&(!efa->v4 || tf->flag & TF_SEL4)))
+       ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? (efa->f & SELECT) : (!(~tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3)) &&(!efa->v4 || tf->flag & TF_SEL4)))
 #define SIMA_FACESEL_SET(efa, tf) \
-       ((G.sima->flag & SI_SYNC_UVSEL) ? (EM_select_face(efa, 1))      : (tf->flag |=  (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)))
+       ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? (EM_select_face(efa, 1))    : (tf->flag |=  (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)))
 #define SIMA_FACESEL_UNSET(efa, tf) \
-       ((G.sima->flag & SI_SYNC_UVSEL) ? (EM_select_face(efa, 0))      : (tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)))
+       ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? (EM_select_face(efa, 0))    : (tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)))
 
-#define SIMA_UVSEL_CHECK(efa, tf, i)   (G.sima->flag & SI_SYNC_UVSEL ? \
+#define SIMA_UVSEL_CHECK(efa, tf, i)   ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? \
        (G.scene->selectmode == SCE_SELECT_FACE ? efa->f & SELECT :             ((*(&efa->v1 + i))->f & SELECT) )       : (tf->flag &   TF_SEL_MASK(i) ))
-#define SIMA_UVSEL_SET(efa, tf, i)             (G.sima->flag & SI_SYNC_UVSEL ? \
+#define SIMA_UVSEL_SET(efa, tf, i)             ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? \
        (G.scene->selectmode == SCE_SELECT_FACE ? EM_select_face(efa, 1) : ((*(&efa->v1 + i))->f |=  SELECT) ) : (tf->flag |=  TF_SEL_MASK(i) ))
-#define SIMA_UVSEL_UNSET(efa, tf, i)   (G.sima->flag & SI_SYNC_UVSEL ? \
+#define SIMA_UVSEL_UNSET(efa, tf, i)   ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? \
        (G.scene->selectmode == SCE_SELECT_FACE ? EM_select_face(efa, 0) : ((*(&efa->v1 + i))->f &= ~SELECT) ) : (tf->flag &= ~TF_SEL_MASK(i) ))
 
 struct Object;
index 8df5b43dc27cf3ed2876c506cda0913d9fd16aef..d0261ac1ad038f213ba896bf1fa883b9c2075a77 100644 (file)
@@ -453,7 +453,7 @@ void draw_uvs_sima(void)
        EditMesh *em = G.editMesh;
        EditFace *efa;
        
-       char col1[4], col2[4], efaset = 0;
+       char col1[4], col2[4];
        float pointsize= BIF_GetThemeValuef(TH_VERTEX_SIZE);
        
        if (!G.obedit || !CustomData_has_layer(&em->fdata, CD_MTFACE))
index 005119d448dac2ae66737dbd26d183d781a77c6a..bca7e44ed722c7c117b9e304c5b249722d68297a 100644 (file)
@@ -299,7 +299,7 @@ void unwrap_lscm(short seamcut)
                        return;
                
                /* select new UV's */
-               if ((G.sima->flag & SI_SYNC_UVSEL)==0) {
+               if ((G.sima==0 || G.sima->flag & SI_SYNC_UVSEL)==0) {
                        EditFace *efa;
                        MTFace *tf;
                        for(efa=em->faces.first; efa; efa=efa->next) {