[Bf-blender-cvs] [fc77787] blender2.8: Avoid possible compatibility issues with tmp viewport flags

Julian Eisel noreply at git.blender.org
Fri Oct 7 04:03:49 CEST 2016


Commit: fc77787f6f51fdb7067806d664d508ea18528aae
Author: Julian Eisel
Date:   Fri Oct 7 03:33:50 2016 +0200
Branches: blender2.8
https://developer.blender.org/rBfc77787f6f51fdb7067806d664d508ea18528aae

Avoid possible compatibility issues with tmp viewport flags

We can't prevent users from using this branch, so I'd say it's reasonable to be a bit careful about what we store to files. In this concrete case we were storing a bit-flag for temporary use (only during early viewport transition) in a bit-field that's saved in files. Doing so would mean we either can't reuse this bit later or we risk breaking files (admittedly, likely in a pretty minor way). Moved the bit-flag to a new bit-field which can be removed later.

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

M	source/blender/editors/space_view3d/view3d_intern.h
M	source/blender/makesdna/DNA_view3d_types.h
M	source/blender/makesrna/intern/rna_space.c

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

diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index e71edb6..ae9b028 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -318,7 +318,7 @@ extern bool view3d_camera_border_hack_test;
 #endif
 
 /* temporary test for blender 2.8 viewport */
-#define IS_VIEWPORT_LEGACY(v3d) (v3d->flag3 & V3D_NEW_VIEWPORT) == 0
+#define IS_VIEWPORT_LEGACY(v3d) (v3d->tmp_compat_flag & V3D_NEW_VIEWPORT) == 0
 
 /* temporary for legacy viewport to work */
 void VP_legacy_drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **grid_unit);
@@ -329,4 +329,4 @@ void VP_legacy_view3d_stereo3d_setup(Scene *scene, View3D *v3d, ARegion *ar);
 void draw_dupli_objects(Scene *scene, ARegion *ar, View3D *v3d, Base *base);
 bool VP_legacy_use_depth(Scene *scene, View3D *v3d);
 
-#endif /* __VIEW3D_INTERN_H__ */
\ No newline at end of file
+#endif /* __VIEW3D_INTERN_H__ */
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index e1ccfef..a2b470e 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -217,8 +217,11 @@ typedef struct View3D {
 
 	char multiview_eye;				/* multiview current eye - for internal use */
 
-	/* built-in shader effects (eGPUFXFlags) */
-	char pad3[4];
+	/* XXX tmp flags for 2.8 viewport transition to avoid compatibility issues that would be caused by
+	 * using usual flag bitfields (which are saved to files). Can be removed when not needed anymore. */
+	char tmp_compat_flag;
+
+	char pad3[3];
 
 	/* note, 'fx_settings.dof' is currently _not_ allocated,
 	 * instead set (temporarily) from camera */
@@ -319,7 +322,11 @@ typedef struct View3D {
 
 /* View3d->flag3 (short) */
 #define V3D_SHOW_WORLD			(1 << 0)
-#define V3D_NEW_VIEWPORT		(1 << 1)
+
+/* View3d->tmp_compat_flag */
+enum {
+	V3D_NEW_VIEWPORT      = (1 << 0),
+};
 
 /* View3D->around */
 enum {
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 407de34..d169720 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -2738,7 +2738,7 @@ static void rna_def_space_view3d(BlenderRNA *brna)
 
 	/* *** Blender 2.8 Viewport temporary *** */
 	prop = RNA_def_property(srna, "use_modern_viewport", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "flag3", V3D_NEW_VIEWPORT);
+	RNA_def_property_boolean_sdna(prop, NULL, "tmp_compat_flag", V3D_NEW_VIEWPORT);
 	RNA_def_property_ui_text(prop, "Modern Viewport", "Use modern viewport");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);




More information about the Bf-blender-cvs mailing list