[Bf-blender-cvs] [ba9c9a8] temp_localview_split: Use LocalLayerInfo struct for area visibility bits

Julian Eisel noreply at git.blender.org
Thu Jul 28 03:49:10 CEST 2016


Commit: ba9c9a8c962111acacf507a6902816d3adee4c5d
Author: Julian Eisel
Date:   Thu Jul 28 03:48:01 2016 +0200
Branches: temp_localview_split
https://developer.blender.org/rBba9c9a8c962111acacf507a6902816d3adee4c5d

Use LocalLayerInfo struct for area visibility bits

===================================================================

M	source/blender/blenkernel/BKE_utildefines.h
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/editors/space_view3d/view3d_view.c
M	source/blender/makesdna/DNA_view3d_types.h

===================================================================

diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h
index 0b261e3..2a4c9f6 100644
--- a/source/blender/blenkernel/BKE_utildefines.h
+++ b/source/blender/blenkernel/BKE_utildefines.h
@@ -47,17 +47,17 @@ extern "C" {
 
 /* visibility check */
 #define BKE_LOCALVIEW_IS_OBJECT_VISIBLE(v3d, ob) \
-	(((v3d)->localviewd == NULL) || (((v3d)->localviewd->viewbits & (ob)->localview.viewbits) != 0))
+	(((v3d)->localviewd == NULL) || (((v3d)->localviewd->info.viewbits & (ob)->localview.viewbits) != 0))
 
 /* Adjust local view info of ob to be visible if v3d is in local view */
 #define BKE_LOCALVIEW_OBJECT_ASSIGN(v3d, ob) \
 	if ((v3d)->localviewd) { \
-		(ob)->localview.viewbits |= (v3d)->localviewd->viewbits; \
+		(ob)->localview.viewbits |= (v3d)->localviewd->info.viewbits; \
 	} (void)0
 /* Remove object from local view */
 #define BKE_LOCALVIEW_OBJECT_UNASSIGN(v3d, ob) \
 	if ((v3d)->localviewd) { \
-		(ob)->localview.viewbits &= ~(v3d)->localviewd->viewbits; \
+		(ob)->localview.viewbits &= ~(v3d)->localviewd->info.viewbits; \
 	} (void)0
 
 #ifdef __cplusplus
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index 6779b8d..014f8be 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -200,7 +200,7 @@ static void do_version_localview_areadata(View3D *v3d)
 	}
 
 	LocalViewAreaData *new_lvd = MEM_mallocN(sizeof(*v3d->localviewd), __func__);
-	new_lvd->viewbits = 0; /* XXX */
+	new_lvd->info.viewbits = 0; /* XXX */
 	new_lvd->near = old_lvd->near;
 	new_lvd->far = old_lvd->far;
 	new_lvd->drawtype = old_lvd->drawtype;
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index b8b65ec..2ff8504 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1380,7 +1380,7 @@ static bool view3d_localview_init(
 			}
 		}
 		
-		v3d->localviewd->viewbits = locallay;
+		v3d->localviewd->info.viewbits = locallay;
 		v3d->lay = locallay;
 	}
 	else {
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index e8c36c4..428cb62 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -85,10 +85,18 @@ typedef struct BGpic {
 /* Local View Data */
 
 /**
+ * Info about the current local view state. A local view area (View3D) and objects have this.
+ * By comparing them we see which objects are visible. (Use with BKE_LOCALVIEW_ macros!)
+ */
+typedef struct LocalViewInfo {
+	unsigned int viewbits; /* 32 bits to store up to 32 views */
+} LocalViewInfo;
+
+/**
  * Data for 3D view area (View3D) while in local view.
  */
 typedef struct LocalViewAreaData {
-	int viewbits; /* 32 bits to store up to 32 views */
+	LocalViewInfo info;
 
 	/* Initial View3D values for reset after local view exit */
 	float near, far;
@@ -109,13 +117,6 @@ typedef struct LocalViewRegionData {
 	float ofs[3];
 } LocalViewRegionData;
 
-/**
- * An element that can be in local view has this (currently objects only).
- */
-typedef struct LocalViewInfo {
-	unsigned int viewbits; /* 32 bits to store up to 32 views (compared to LocalViewAreaData.viewbits) */
-} LocalViewInfo;
-
 /* ********************************* */
 
 typedef struct RegionView3D {




More information about the Bf-blender-cvs mailing list