[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