skip per face texface poly lookup while drawing when the layer isnt found.
authorCampbell Barton <ideasman42@gmail.com>
Sun, 19 Feb 2012 02:54:50 +0000 (02:54 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sun, 19 Feb 2012 02:54:50 +0000 (02:54 +0000)
also remove some unused code.

source/blender/blenkernel/intern/editderivedmesh.c
source/blender/bmesh/intern/bmesh_construct.c
source/blender/bmesh/intern/bmesh_inline.c
source/blender/bmesh/intern/bmesh_iterators_inline.c

index 034dd9c6537b81f37ab6c0713b5fd790592b920d..1d90bba655de254e285ad6d70ca26c21a7b2823a 100644 (file)
@@ -812,7 +812,7 @@ static void emDM_drawFacesTex_common(
                glBegin(GL_TRIANGLES);
                for (i=0; i<em->tottri; i++) {
                        BMLoop **ls = em->looptris[i];
-                       MTexPoly *tp= CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY);
+                       MTexPoly *tp= has_uv ? CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY) : NULL;
                        MTFace mtf = {{{0}}};
                        /*unsigned char *cp= NULL;*/ /*UNUSED*/
                        int drawSmooth= BM_elem_flag_test(ls[0]->f, BM_ELEM_SMOOTH);
@@ -882,7 +882,7 @@ static void emDM_drawFacesTex_common(
 
                for (i=0; i<em->tottri; i++) {
                        BMLoop **ls = em->looptris[i];
-                       MTexPoly *tp= CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY);
+                       MTexPoly *tp= has_uv ? CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY) : NULL;
                        MTFace mtf = {{{0}}};
                        /*unsigned char *cp= NULL;*/ /*UNUSED*/
                        int drawSmooth= BM_elem_flag_test(ls[0]->f, BM_ELEM_SMOOTH);
index cdb40d668d1ed21ff67bcf3db67a86051f2e87b3..ac37041b073075aea6c60b180f32dbf055e68efc 100644 (file)
 /* prototypes */
 static void bm_loop_attrs_copy(BMesh *source_mesh, BMesh *target_mesh,
                                const BMLoop *source_loop, BMLoop *target_loop);
-#if 0
-
-/*
- * BM_CONSTRUCT.C
- *
- * This file contains functions for making and destroying
- * individual elements like verts, edges and faces.
- *
- */
-
-/*
- * BMESH MAKE VERT
- *
- * Creates a new vertex and returns a pointer
- * to it. If a pointer to an example vertex is
- * passed in, it's custom data and properties
- * will be copied to the new vertex.
- *
- */
-
-BMVert *BM_vert_create(BMesh *bm, float co[3], BMVert *example)
-{
-       BMVert *v = NULL;
-       v = bmesh_mv(bm, co);
-       if (example)
-               CustomData_bmesh_copy_data(&bm->vdata, &bm->vdata, example->head.data, &v->head.data);
-       return v;
-}
-
-/*
- * BMESH MAKE EDGE
- *
- * Creates a new edge betweeen two vertices and returns a
- * pointer to it. If 'nodouble' equals 1, then a check is
- * is done to make sure that an edge between those two vertices
- * does not already exist. If it does, that edge is returned instead
- * of creating a new one.
- *
- * If a new edge is created, and a pointer to an example edge is
- * provided, it's custom data and properties will be copied to the
- * new edge.
- *
- */
-
-BMEdge *BM_edge_create(BMesh *bm, BMVert *v1, BMVert *v2, BMEdge *example, int nodouble)
-{
-       BMEdge *e = NULL;
-       
-       if (nodouble) /* test if edge already exists. */
-               e = BM_edge_exists(v1, v2);
-
-       if (!e) {
-               e = bmesh_me(bm, v1, v2);
-
-               if (example)
-                       CustomData_bmesh_copy_data(&bm->edata, &bm->edata, example->head.data, &e->head.data);
-       }
-       
-       return e;
-       
-}
-#endif
 
 /*
  * BMESH MAKE QUADTRIANGLE
index 4dd13047b90e585f71385ed2cd706a052f70a75a..4433aaa0fc6929e76884f4d79ee50d9f8b4e6f67 100644 (file)
@@ -26,8 +26,8 @@
  * BM Inline functions.
  */
 
-#ifndef BM_INLINE_C
-#define BM_INLINE_C
+#ifndef __BMESH_INLINE_C__
+#define __BMESH_INLINE_C__
 
 #include "bmesh.h"
 
@@ -68,4 +68,4 @@ BM_INLINE int BM_elem_index_get(const void *element)
        return ((BMHeader *)element)->index;
 }
 
-#endif /* BM_INLINE_C */
+#endif /* __BMESH_INLINE_C__ */
index d403508885e5a73f4c7da37cde04b265bca447be..ef644f96ce0188b9b065855b217a8b8f98ad26cc 100644 (file)
@@ -26,8 +26,8 @@
  * BMesh inline iterator functions.
  */
 
-#ifndef BM_ITERATORS_INLINE_C
-#define BM_ITERATORS_INLINE_C
+#ifndef __BMESH_ITERATORS_INLINE_C__
+#define __BMESH_ITERATORS_INLINE_C__
 
 #include "bmesh.h"
 
@@ -157,4 +157,4 @@ BM_INLINE void *BM_iter_new(BMIter *iter, BMesh *bm, const char itype, void *dat
 }
 
 
-#endif /* BM_ITERATORS_INLINE_C */
+#endif /* __BMESH_ITERATORS_INLINE_C__ */