[Bf-blender-cvs] [849337bd78f] greasepencil-object: Move Paper settings to View

Antonio Vazquez noreply at git.blender.org
Wed Nov 29 11:45:51 CET 2017


Commit: 849337bd78fc4e6866f1ae761a6cb4225639bd54
Author: Antonio Vazquez
Date:   Wed Nov 29 11:45:43 2017 +0100
Branches: greasepencil-object
https://developer.blender.org/rB849337bd78fc4e6866f1ae761a6cb4225639bd54

Move Paper settings to View

Now the paper can be enabled by view and not by scene as before because this is a view settings.

Thank Pablo Vazquez for his UI feedback.

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

M	release/scripts/startup/bl_ui/properties_scene.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/draw/engines/gpencil/gpencil_engine.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesdna/DNA_view3d_types.h
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/makesrna/intern/rna_space.c

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

diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py
index 2eb4554efe0..f388b672b15 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -479,34 +479,6 @@ class SCENE_PT_gp_simplify(SceneButtonsPanel, Panel):
         row.prop(ts, "gpencil_disable_fast_drawing")
 
 
-class SCENE_PT_gp_paper(SceneButtonsPanel, Panel):
-    bl_label = "Grease Pencil Paper"
-    COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
-
-    def draw_header(self, context):
-        ts = context.tool_settings
-        self.layout.prop(ts, "use_gpencil_paper", text="")
-
-    def draw(self, context):
-        layout = self.layout
-
-        ts = context.tool_settings
-        layout.active = ts.use_gpencil_paper
-
-        row = layout.row()
-        row.prop(ts, "gp_paper_color", text="Color")
-        row = layout.row()
-        row.prop(ts, "gp_paper_opacity", text="Opacity")
-
-        row = layout.row(align=False)
-        row.prop(ts, "use_gpencil_grid", text="Display Grid")
-
-        row = layout.row(align=False)
-        col = row.column(align=True)
-        col.enabled = ts.use_gpencil_grid
-        col.prop(ts, "gpencil_grid_size", text="")
-
-
 class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
     _context_path = "scene"
@@ -528,7 +500,6 @@ classes = (
     SCENE_PT_rigid_body_field_weights,
     SCENE_PT_simplify,
     SCENE_PT_gp_simplify,
-    SCENE_PT_gp_paper,
     SCENE_PT_custom_props,
 )
 
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 2b7c04a8bec..db0748d72d0 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -157,7 +157,7 @@ class VIEW3D_HT_header(Header):
 
             view = context.space_data
             row = layout.row(align=True)
-            row.prop(context.tool_settings, "use_gpencil_paper", text="", icon='GHOST')
+            row.prop(view, "use_gpencil_paper", text="", icon='GHOST')
             row.prop(view, "show_only_render", text="", icon='IMAGE_COL')
             row.prop(view, "lock_camera", text="", icon='CAMERA_DATA')
 
@@ -3536,6 +3536,40 @@ class VIEW3D_PT_view3d_display(Panel):
             row.prop(region, "use_box_clip")
 
 
+class VIEW3D_PT_gp_paper(Panel):
+    bl_space_type = 'VIEW_3D'
+    bl_region_type = 'UI'
+    bl_label = "Grease Pencil Paper"
+    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_gpencil_paper", text="")
+
+    def draw(self, context):
+        layout = self.layout
+        view = context.space_data
+        layout.active = view.use_gpencil_paper
+
+        row = layout.row()
+        row.prop(view, "gp_paper_color", text="Color")
+        row = layout.row()
+        row.prop(view, "gp_paper_opacity", text="Opacity")
+
+        row = layout.row(align=False)
+        row.prop(view, "use_gpencil_grid", text="Display Grid")
+
+        row = layout.row(align=False)
+        col = row.column(align=True)
+        col.enabled = view.use_gpencil_grid
+        col.prop(view, "gpencil_grid_size", text="")
+
+
 class VIEW3D_PT_view3d_stereo(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
@@ -3993,6 +4027,7 @@ classes = (
     VIEW3D_PT_view3d_cursor,
     VIEW3D_PT_view3d_name,
     VIEW3D_PT_view3d_display,
+    VIEW3D_PT_gp_paper,
     VIEW3D_PT_view3d_stereo,
     VIEW3D_PT_view3d_motion_tracking,
     VIEW3D_PT_view3d_meshdisplay,
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 2f2a33a7e91..73d4ea653bc 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -846,10 +846,6 @@ void BKE_scene_init(Scene *sce)
 	sce->toolsettings->imapaint.normal_angle = 80;
 	sce->toolsettings->imapaint.seam_bleed = 2;
 
-	sce->toolsettings->gpencil_grid_size[0] = 50;
-	sce->toolsettings->gpencil_grid_size[1] = 50;
-	ARRAY_SET_ITEMS(sce->toolsettings->gpencil_paper_color, 1.0f, 1.0f, 1.0f, 0.7f);
-
 	sce->physics_settings.gravity[0] = 0.0f;
 	sce->physics_settings.gravity[1] = 0.0f;
 	sce->physics_settings.gravity[2] = -9.81f;
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 86bc43e7995..907cf857eb4 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -568,11 +568,19 @@ void do_versions_after_linking_280(Main *main)
 			}
 		}
 		/* init grease pencil grids and paper */
-		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
-			scene->toolsettings->gpencil_grid_size[0] = 50;
-			scene->toolsettings->gpencil_grid_size[1] = 50;
-			ARRAY_SET_ITEMS(scene->toolsettings->gpencil_paper_color, 1.0f, 1.0f, 1.0f, 0.7f);
+		for (bScreen *screen = main->screen.first; screen; screen = screen->id.next) {
+			for (ScrArea *area = screen->areabase.first; area; area = area->next) {
+				for (SpaceLink *sl = area->spacedata.first; sl; sl = sl->next) {
+					if (sl->spacetype == SPACE_VIEW3D) {
+						View3D *v3d = (View3D *)sl;
+						v3d->gpencil_grid_size[0] = 50;
+						v3d->gpencil_grid_size[1] = 50;
+						ARRAY_SET_ITEMS(v3d->gpencil_paper_color, 1.0f, 1.0f, 1.0f, 0.7f);
+					}
+				}
+			}
 		}
+
 	}
 
 	/* XXX: Merge back into previous case... leaving like this so the Hero animatic/production files so far don't break */
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 97fec0ba69b..93176051620 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -200,6 +200,7 @@ static void GPENCIL_cache_init(void *vedata)
 	const DRWContextState *draw_ctx = DRW_context_state_get();
 	Scene *scene = draw_ctx->scene;
 	ToolSettings *ts = scene->toolsettings;
+	View3D *v3d = draw_ctx->v3d;
 	Object *obact = draw_ctx->obact;
 
 	if (!stl->g_data) {
@@ -403,15 +404,15 @@ static void GPENCIL_cache_init(void *vedata)
 		psl->paper_pass = DRW_pass_create("GPencil Paper Pass", DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND);
 		DRWShadingGroup *paper_shgrp = DRW_shgroup_create(e_data.gpencil_paper_sh, psl->paper_pass);
 		DRW_shgroup_call_add(paper_shgrp, paperquad, NULL);
-		DRW_shgroup_uniform_vec4(paper_shgrp, "color", ts->gpencil_paper_color, 1);
+		DRW_shgroup_uniform_vec4(paper_shgrp, "color", v3d->gpencil_paper_color, 1);
 
 		UI_GetThemeColor3fv(TH_GRID, stl->storage->gridcolor);
 		DRW_shgroup_uniform_vec3(paper_shgrp, "gridcolor", &stl->storage->gridcolor[0], 1);
 
-		stl->storage->gridsize[0] = (float)ts->gpencil_grid_size[0];
-		stl->storage->gridsize[1] = (float)ts->gpencil_grid_size[1];
+		stl->storage->gridsize[0] = (float)v3d->gpencil_grid_size[0];
+		stl->storage->gridsize[1] = (float)v3d->gpencil_grid_size[1];
 		DRW_shgroup_uniform_vec2(paper_shgrp, "size", &stl->storage->gridsize[0], 1);
-		if (ts->gpencil_flags & GP_TOOL_FLAG_ENABLE_GRID) {
+		if (v3d->flag3 & V3D_GP_SHOW_GRID) {
 			stl->storage->uselines = 1;
 		}
 		else {
@@ -658,6 +659,7 @@ static void GPENCIL_draw_scene(void *vedata)
 	float clearcol[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
 
 	const DRWContextState *draw_ctx = DRW_context_state_get();
+	View3D *v3d = draw_ctx->v3d;
 	Scene *scene = draw_ctx->scene;
 	ToolSettings *ts = scene->toolsettings;
 	Object *obact = draw_ctx->obact;
@@ -665,7 +667,7 @@ static void GPENCIL_draw_scene(void *vedata)
 
 	/* paper pass to display a confortable area to draw over complex scenes with geometry */
 	if ((obact) && (obact->type == OB_GPENCIL)) {
-		if ((ts->gpencil_flags & GP_TOOL_FLAG_ENABLE_PAPER) && (stl->g_data->gp_cache_used > 0)) {
+		if ((v3d->flag3 & V3D_GP_SHOW_PAPER) && (stl->g_data->gp_cache_used > 0)) {
 			DRW_draw_pass(psl->paper_pass);
 		}
 	}
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 12d0ed4501b..f0c553be4e6 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -345,6 +345,10 @@ static SpaceLink *view3d_new(const bContext *C)
 	v3d->near = 0.01f;
 	v3d->far = 1000.0f;
 
+	v3d->gpencil_grid_size[0] = 50;
+	v3d->gpencil_grid_size[1] = 50;
+	ARRAY_SET_ITEMS(v3d->gpencil_paper_color, 1.0f, 1.0f, 1.0f, 0.7f);
+
 	v3d->twflag |= U.manipulator_flag & V3D_MANIPULATOR_DRAW;
 	v3d->twtype = V3D_MANIP_TRANSLATE;
 	v3d->around = V3D_AROUND_CENTER_MEAN;
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 24b99822a77..500d01a179f 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1474,8 +1474,6 @@ typedef struct ToolSettings {
 
 	short gpencil_simplify; /* simplify flags for grease pencil */
 	char pad6[6];
-	int gpencil_grid_size[2];
-	float gpencil_paper_color[4];
 
 	/* Grease Pencil Sculpt */
 	struct GP_BrushEdit_Settings gp_sculpt;
@@ -2198,10 +2196,6 @@ typedef enum eGPencil_Flags {
 	GP_TOOL_FLAG_RETAIN_LAST            = (1 << 1),
 	/* Add the strokes below all strokes in the layer */
 	GP_TOOL_FLAG_PAINT_ONBACK = (1 << 2),
-	/* Activate paper to cover all viewport (this is done to facilitate drawing over geometry) */
-	GP_TOOL_FLAG_ENABLE_PAPER = (1 << 3),
-	/* Activate paper grid */
-	GP_TOOL_FLAG_ENABLE_GRID = (1 << 4),
 } eGPencil_Flags;
 
 /* toolsettings->gpencil_simplify */
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 619f9fd4f6e..2282afb744c 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -225,6 +225,8 @@ typedef struct View3D {
 
 	/* XXX deprecated? */
 	struct bGPdata *gpd  DNA_DEPRECATED;		/* Grease-Pencil Data (annotation layers

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list