[Bf-blender-cvs] [a2c079c] viewport_generic_engine: Some UI changes for new viewport engine dropdown

Julian Eisel noreply at git.blender.org
Sat Oct 8 20:06:40 CEST 2016


Commit: a2c079c87afe280635955a1a38383dbc2c24ce8a
Author: Julian Eisel
Date:   Sat Oct 8 19:53:56 2016 +0200
Branches: viewport_generic_engine
https://developer.blender.org/rBa2c079c87afe280635955a1a38383dbc2c24ce8a

Some UI changes for new viewport engine dropdown

* Use legacy viewport as default for now
* Remove "Use Modern Viewport" option
* Minor cleanup

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

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/editors/space_view3d/view3d_header.c
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
M	source/blender/viewport/VP_engine_API.h
M	source/blender/viewport/intern/engine_api.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 83819e2..e56c30c 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -2981,25 +2981,20 @@ class VIEW3D_PT_viewport_debug(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Modern Viewport"
-    bl_options = {'DEFAULT_CLOSED'}
 
     @classmethod
     def poll(cls, context):
         view = context.space_data
         return (view)
 
-    def draw_header(self, context):
-        view = context.space_data
-        self.layout.prop(view, "use_modern_viewport", text="")
-
     def draw(self, context):
         layout = self.layout
         view = context.space_data
 
-        layout.active = view.use_modern_viewport
+        layout.prop(view, "viewport_engine")
 
         col = layout.column()
-        col.prop(view, "viewport_engine")
+        col.active = view.viewport_engine == 'BLENDER_VIEWPORT' # new viewport
         col.label(text="Placeholder for debugging options")
 
 
@@ -3116,7 +3111,7 @@ class VIEW3D_PT_view3d_display(Panel):
     @classmethod
     def poll(cls, context):
         view = context.space_data
-        return (view) and not view.use_modern_viewport
+        return (view) and view.viewport_engine == 'LEGACY_VIEWPORT'
 
     def draw(self, context):
         layout = self.layout
@@ -3217,7 +3212,7 @@ class VIEW3D_PT_view3d_shading(Panel):
     @classmethod
     def poll(cls, context):
         view = context.space_data
-        return (view) and not view.use_modern_viewport
+        return (view) and view.viewport_engine == 'LEGACY_VIEWPORT'
 
     def draw(self, context):
         layout = self.layout
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 32e265c..aa37b45 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -60,6 +60,8 @@
 #include "UI_interface.h"
 #include "UI_resources.h"
 
+#include "VP_engine_API.h"
+
 #include "view3d_intern.h"
 
 static void do_view3d_header_buttons(bContext *C, void *arg, int event);
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index d872101..c031c27 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -319,7 +319,7 @@ extern bool view3d_camera_border_hack_test;
 #endif
 
 /* temporary test for blender 2.8 viewport */
-#define IS_VIEWPORT_LEGACY(v3d) (v3d->tmp_compat_flag & V3D_NEW_VIEWPORT) == 0
+#define IS_VIEWPORT_LEGACY(v3d) STREQ(v3d->viewport_engine->type->idname, "LEGACY_VIEWPORT")
 
 /* temporary for legacy viewport to work */
 void VP_legacy_drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **grid_unit);
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 076ffce..c342039 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -224,11 +224,7 @@ typedef struct View3D {
 
 	char multiview_eye;				/* multiview current eye - for internal use */
 
-	/* 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];
+	char pad3[4];
 
 	/* note, 'fx_settings.dof' is currently _not_ allocated,
 	 * instead set (temporarily) from camera */
@@ -330,11 +326,6 @@ typedef struct View3D {
 /* View3d->flag3 (short) */
 #define V3D_SHOW_WORLD			(1 << 0)
 
-/* View3d->tmp_compat_flag */
-enum {
-	V3D_NEW_VIEWPORT      = (1 << 0),
-};
-
 /* View3D->around */
 enum {
 	/* center of the bounding box */
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index d28f5b2..149f89b 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -176,7 +176,7 @@ static EnumPropertyItem autosnap_items[] = {
 #endif
 
 EnumPropertyItem rna_enum_viewport_engine_items[] = {
-	{0, "BLENDER_VIEWPORT", 0, "Modern Viewport", ""},
+	{0, "LEGACY_VIEWPORT", 0, "Legacy Viewport", ""},
 	{0, NULL, 0, NULL, NULL}
 };
 
@@ -2807,12 +2807,6 @@ static void rna_def_space_view3d(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "Volume Alpha", "Opacity (alpha) of the cameras' frustum volume");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
 
-	/* *** Blender 2.8 Viewport temporary *** */
-	prop = RNA_def_property(srna, "use_modern_viewport", PROP_BOOLEAN, PROP_NONE);
-	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);
-
 	/* *** Animated *** */
 	RNA_define_animate_sdna(true);
 	/* region */
diff --git a/source/blender/viewport/VP_engine_API.h b/source/blender/viewport/VP_engine_API.h
index 9299947..35f3d7c 100644
--- a/source/blender/viewport/VP_engine_API.h
+++ b/source/blender/viewport/VP_engine_API.h
@@ -56,7 +56,7 @@ typedef struct ViewportDrawMode {
 typedef struct ViewportEngineType {
 	struct ViewportEngineType *next, *prev;
 
-	char idname[MAX_NAME]; /* Unused (TODO do we need this?) */
+	char idname[MAX_NAME]; /* TODO use defines for internal engine names */
 	/* Displayed in UI */
 	char name[MAX_NAME];
 
diff --git a/source/blender/viewport/intern/engine_api.c b/source/blender/viewport/intern/engine_api.c
index 4967846..314a886 100644
--- a/source/blender/viewport/intern/engine_api.c
+++ b/source/blender/viewport/intern/engine_api.c
@@ -49,7 +49,7 @@
 extern void view3d_main_region_draw_legacy(const ViewportEngine *engine, const bContext *C);
 
 /* TODO Keeping old viewport only during transition */
-static ViewportEngineType old_viewport = {
+static ViewportEngineType legacy_viewport = {
 	NULL, NULL,
 	"LEGACY_VIEWPORT", N_("Legacy Viewport"),
 	NULL,
@@ -69,8 +69,8 @@ static void enginetype_init(ViewportEngineType *engine_type)
 
 void VP_enginetypes_init(void)
 {
+	enginetype_init(&legacy_viewport);
 	enginetype_init(&vp_blender_viewport);
-	enginetype_init(&old_viewport);
 }
 
 static void drawmode_plates_free(ViewportDrawMode *drawmode)




More information about the Bf-blender-cvs mailing list