[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45119] trunk/blender/source/blender: code cleanup: move bmesh inline funcs to headers ( avoids compiling the C files).

Campbell Barton ideasman42 at gmail.com
Sat Mar 24 02:25:15 CET 2012


Revision: 45119
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45119
Author:   campbellbarton
Date:     2012-03-24 01:24:58 +0000 (Sat, 24 Mar 2012)
Log Message:
-----------
code cleanup: move bmesh inline funcs to headers (avoids compiling the C files).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    trunk/blender/source/blender/blenlib/BLI_math_inline.h
    trunk/blender/source/blender/bmesh/CMakeLists.txt
    trunk/blender/source/blender/bmesh/bmesh.h
    trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c
    trunk/blender/source/blender/bmesh/intern/bmesh_iterators.h
    trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c
    trunk/blender/source/blender/bmesh/intern/bmesh_mesh_validate.c
    trunk/blender/source/blender/bmesh/intern/bmesh_opdefines.c
    trunk/blender/source/blender/bmesh/intern/bmesh_operators.h
    trunk/blender/source/blender/bmesh/intern/bmesh_structure.c
    trunk/blender/source/blender/bmesh/intern/bmesh_walkers.c
    trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c
    trunk/blender/source/blender/bmesh/operators/bmo_connect.c
    trunk/blender/source/blender/bmesh/operators/bmo_edgesplit.c
    trunk/blender/source/blender/bmesh/tools/BME_bevel.c
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/editors/transform/transform_generics.c
    trunk/blender/source/blender/editors/transform/transform_manipulator.c
    trunk/blender/source/blender/editors/transform/transform_orientations.c
    trunk/blender/source/blender/editors/util/crazyspace.c
    trunk/blender/source/blender/makesrna/intern/rna_object.c
    trunk/blender/source/blender/python/bmesh/bmesh_py_api.c
    trunk/blender/source/blender/python/bmesh/bmesh_py_types_select.c
    trunk/blender/source/blender/python/bmesh/bmesh_py_utils.c

Added Paths:
-----------
    trunk/blender/source/blender/bmesh/intern/bmesh_inline.h
    trunk/blender/source/blender/bmesh/intern/bmesh_iterators_inline.h
    trunk/blender/source/blender/bmesh/intern/bmesh_operator_api_inline.h

Removed Paths:
-------------
    trunk/blender/source/blender/bmesh/intern/bmesh_inline.c
    trunk/blender/source/blender/bmesh/intern/bmesh_iterators_inline.c
    trunk/blender/source/blender/bmesh/intern/bmesh_operator_api_inline.c

Modified: trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2012-03-24 00:20:36 UTC (rev 45118)
+++ trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2012-03-24 01:24:58 UTC (rev 45119)
@@ -36,13 +36,6 @@
 
 #include "GL/glew.h"
 
-#include "BKE_cdderivedmesh.h"
-#include "BKE_global.h"
-#include "BKE_mesh.h"
-#include "BKE_paint.h"
-#include "BKE_utildefines.h"
-#include "BKE_tessmesh.h"
-
 #include "BLI_scanfill.h"
 #include "BLI_math.h"
 #include "BLI_blenlib.h"
@@ -57,8 +50,9 @@
 #include "BKE_global.h"
 #include "BKE_mesh.h"
 #include "BKE_paint.h"
+#include "BKE_utildefines.h"
+#include "BKE_tessmesh.h"
 
-
 #include "DNA_mesh_types.h"
 #include "DNA_meshdata_types.h"
 #include "DNA_object_types.h"

Modified: trunk/blender/source/blender/blenlib/BLI_math_inline.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_math_inline.h	2012-03-24 00:20:36 UTC (rev 45118)
+++ trunk/blender/source/blender/blenlib/BLI_math_inline.h	2012-03-24 01:24:58 UTC (rev 45119)
@@ -38,26 +38,25 @@
 #define __BLI_MATH_INLINE_H__
 
 #ifdef __BLI_MATH_INLINE_H__
-#ifdef _MSC_VER
-#define MINLINE static __forceinline
-#define MALWAYS_INLINE MINLINE
+#  ifdef _MSC_VER
+#    define MINLINE static __forceinline
+#    define MALWAYS_INLINE MINLINE
+#  else
+#    define MINLINE static inline
+#    if (defined(__APPLE__) && defined(__ppc__))
+       /* static inline __attribute__ here breaks osx ppc gcc42 build */
+#      define MALWAYS_INLINE static __attribute__((always_inline))
+#    else
+#      define MALWAYS_INLINE static inline __attribute__((always_inline))
+#    endif
+#  endif
 #else
-#define MINLINE static inline
-#if (defined(__APPLE__) && defined(__ppc__))
-/* static inline __attribute__ here breaks osx ppc gcc42 build */
-#define MALWAYS_INLINE static __attribute__((always_inline))
-#else
-#define MALWAYS_INLINE static inline __attribute__((always_inline))
+#  define MINLINE
+#  define MALWAYS_INLINE
 #endif
-#endif
-#else
-#define MINLINE
-#define MALWAYS_INLINE
-#endif
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* __BLI_MATH_INLINE_H__ */
-

Modified: trunk/blender/source/blender/bmesh/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/bmesh/CMakeLists.txt	2012-03-24 00:20:36 UTC (rev 45118)
+++ trunk/blender/source/blender/bmesh/CMakeLists.txt	2012-03-24 01:24:58 UTC (rev 45119)
@@ -56,12 +56,12 @@
 	intern/bmesh_construct.h
 	intern/bmesh_core.c
 	intern/bmesh_core.h
-	intern/bmesh_inline.c
+	intern/bmesh_inline.h
 	intern/bmesh_interp.c
 	intern/bmesh_interp.h
 	intern/bmesh_iterators.c
 	intern/bmesh_iterators.h
-	intern/bmesh_iterators_inline.c
+	intern/bmesh_iterators_inline.h
 	intern/bmesh_marking.c
 	intern/bmesh_marking.h
 	intern/bmesh_mesh.c
@@ -73,7 +73,7 @@
 	intern/bmesh_mods.c
 	intern/bmesh_mods.h
 	intern/bmesh_opdefines.c
-	intern/bmesh_operator_api_inline.c
+	intern/bmesh_operator_api_inline.h
 	intern/bmesh_operators.c
 	intern/bmesh_operators.h
 	intern/bmesh_operators_private.h

Modified: trunk/blender/source/blender/bmesh/bmesh.h
===================================================================
--- trunk/blender/source/blender/bmesh/bmesh.h	2012-03-24 00:20:36 UTC (rev 45118)
+++ trunk/blender/source/blender/bmesh/bmesh.h	2012-03-24 01:24:58 UTC (rev 45119)
@@ -198,11 +198,11 @@
 extern "C" {
 #endif
 
-#include "DNA_listBase.h"
-#include "DNA_customdata_types.h"
+#include "DNA_listBase.h" /* selection history uses */
+#include "DNA_customdata_types.h" /* BMesh struct in bmesh_class.h uses */
 
 #include <stdlib.h>
-#include "BLI_utildefines.h"
+// #include "BLI_utildefines.h"
 
 #include "bmesh_class.h"
 
@@ -224,8 +224,7 @@
 #include "intern/bmesh_queries.h"
 #include "intern/bmesh_walkers.h"
 
-#include "intern/bmesh_inline.c"
-#include "intern/bmesh_operator_api_inline.c"
+#include "intern/bmesh_inline.h"
 
 #ifdef __cplusplus
 }

Deleted: trunk/blender/source/blender/bmesh/intern/bmesh_inline.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_inline.c	2012-03-24 00:20:36 UTC (rev 45118)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_inline.c	2012-03-24 01:24:58 UTC (rev 45119)
@@ -1,116 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Contributor(s): Joseph Eagar, Geoffrey Bantle, Campbell Barton
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/bmesh/intern/bmesh_inline.c
- *  \ingroup bmesh
- *
- * BM Inline functions.
- */
-
-#ifndef __BMESH_INLINE_C__
-#define __BMESH_INLINE_C__
-
-#include "bmesh.h"
-
-/* stuff for dealing with header flags */
-#define BM_elem_flag_test(   ele, hflag)      _bm_elem_flag_test    (&(ele)->head, hflag)
-#define BM_elem_flag_enable( ele, hflag)      _bm_elem_flag_enable  (&(ele)->head, hflag)
-#define BM_elem_flag_disable(ele, hflag)      _bm_elem_flag_disable (&(ele)->head, hflag)
-#define BM_elem_flag_set(    ele, hflag, val) _bm_elem_flag_set     (&(ele)->head, hflag, val)
-#define BM_elem_flag_toggle( ele, hflag)      _bm_elem_flag_toggle  (&(ele)->head, hflag)
-#define BM_elem_flag_merge(  ele_a, ele_b)    _bm_elem_flag_merge   (&(ele_a)->head, &(ele_b)->head)
-
-BLI_INLINE char _bm_elem_flag_test(const BMHeader *head, const char hflag)
-{
-	return head->hflag & hflag;
-}
-
-BLI_INLINE void _bm_elem_flag_enable(BMHeader *head, const char hflag)
-{
-	head->hflag |= hflag;
-}
-
-BLI_INLINE void _bm_elem_flag_disable(BMHeader *head, const char hflag)
-{
-	head->hflag &= ~hflag;
-}
-
-BLI_INLINE void _bm_elem_flag_set(BMHeader *head, const char hflag, const int val)
-{
-	if (val)  _bm_elem_flag_enable(head,  hflag);
-	else      _bm_elem_flag_disable(head, hflag);
-}
-
-BLI_INLINE void _bm_elem_flag_toggle(BMHeader *head, const char hflag)
-{
-	head->hflag ^= hflag;
-}
-
-BLI_INLINE void _bm_elem_flag_merge(BMHeader *head_a, BMHeader *head_b)
-{
-	head_a->hflag = head_b->hflag = head_a->hflag | head_b->hflag;
-}
-
-
-/* notes on BM_elem_index_set(...) usage,
- * Set index is sometimes abused as temp storage, other times we cant be
- * sure if the index values are valid because certain operations have modified
- * the mesh structure.
- *
- * To set the elements to valid indices 'BM_mesh_elem_index_ensure' should be used
- * rather then adding inline loops, however there are cases where we still
- * set the index directly
- *
- * In an attempt to manage this, here are 3 tags Im adding to uses of
- * 'BM_elem_index_set'
- *
- * - 'set_inline'  -- since the data is already being looped over set to a
- *                    valid value inline.
- *
- * - 'set_dirty!'  -- intentionally sets the index to an invalid value,
- *                    flagging 'bm->elem_index_dirty' so we don't use it.
- *
- * - 'set_ok'      -- this is valid use since the part of the code is low level.
- *
- * - 'set_ok_invalid'  -- set to -1 on purpose since this should not be
- *                    used without a full array re-index, do this on
- *                    adding new vert/edge/faces since they may be added at
- *                    the end of the array.
- *
- * - 'set_loop'    -- currently loop index values are not used used much so
- *                    assume each case they are dirty.
- * - campbell */
-
-#define BM_elem_index_get(ele)           _bm_elem_index_get(&(ele)->head)
-#define BM_elem_index_set(ele, index)    _bm_elem_index_set(&(ele)->head, index)
-
-BLI_INLINE void _bm_elem_index_set(BMHeader *head, const int index)
-{
-	head->index = index;
-}
-
-BLI_INLINE int _bm_elem_index_get(const BMHeader *head)
-{
-	return head->index;
-}
-
-#endif /* __BMESH_INLINE_C__ */

Copied: trunk/blender/source/blender/bmesh/intern/bmesh_inline.h (from rev 45117, trunk/blender/source/blender/bmesh/intern/bmesh_inline.c)
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_inline.h	                        (rev 0)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_inline.h	2012-03-24 01:24:58 UTC (rev 45119)
@@ -0,0 +1,114 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Joseph Eagar, Geoffrey Bantle, Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/bmesh/intern/bmesh_inline.h
+ *  \ingroup bmesh
+ *
+ * BM Inline functions.
+ */
+
+#ifndef __BMESH_INLINE_H__
+#define __BMESH_INLINE_H__
+
+/* stuff for dealing with header flags */
+#define BM_elem_flag_test(   ele, hflag)      _bm_elem_flag_test    (&(ele)->head, hflag)
+#define BM_elem_flag_enable( ele, hflag)      _bm_elem_flag_enable  (&(ele)->head, hflag)
+#define BM_elem_flag_disable(ele, hflag)      _bm_elem_flag_disable (&(ele)->head, hflag)
+#define BM_elem_flag_set(    ele, hflag, val) _bm_elem_flag_set     (&(ele)->head, hflag, val)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list