[Bf-blender-cvs] [eacc4ae3169] greasepencil-object: Separate Paper and Grid and rename

Antonioya noreply at git.blender.org
Fri Jul 27 16:59:03 CEST 2018


Commit: eacc4ae31690f4f2026db5424b78b1e1d5166ee7
Author: Antonioya
Date:   Fri Jul 27 16:58:51 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBeacc4ae31690f4f2026db5424b78b1e1d5166ee7

Separate Paper and Grid and rename

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

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/draw/engines/gpencil/gpencil_engine.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h
M	source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl

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

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 847b0944bd9..e397f8171ac 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -4726,15 +4726,15 @@ class VIEW3D_PT_overlay_gpencil_options(Panel):
         view = context.space_data
         overlay = view.overlay
 
-        layout.prop(overlay, "use_gpencil_paper", text="Drawing Paper")
+        layout.prop(overlay, "use_gpencil_paper", text="Fade 3D Objects")
 
         if overlay.use_gpencil_paper:
             layout.prop(overlay, "gpencil_paper_color", text="Color")
             layout.prop(overlay, "gpencil_paper_opacity", text="Opacity")
 
-            layout.prop(overlay, "use_gpencil_grid", text="Display Paper Grid")
-            if overlay.use_gpencil_grid:
-                layout.prop(overlay, "gpencil_grid_size", text="")
+        layout.prop(overlay, "use_gpencil_grid", text="Show Plane Grid")
+        if overlay.use_gpencil_grid:
+            layout.prop(overlay, "gpencil_grid_size", text="")
 
         layout.prop(overlay, "use_gpencil_onion_skin", text="Onion Skin")
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 5e8c9da57f8..3b13886b14a 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -436,6 +436,16 @@ void GPENCIL_cache_init(void *vedata)
 			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);
+
+			/* paper can be only grid */
+			if (v3d->flag3 & V3D_GP_SHOW_PAPER) {
+				stl->storage->usepaper = 1;
+			}
+			else {
+				stl->storage->usepaper = 0;
+			}
+			DRW_shgroup_uniform_int(paper_shgrp, "usepaper", &stl->storage->usepaper, 1);
+
 			if (v3d->flag3 & V3D_GP_SHOW_GRID) {
 				stl->storage->uselines = 1;
 			}
@@ -606,7 +616,7 @@ void GPENCIL_draw_scene(void *ved)
 	/* paper pass to display a confortable area to draw over complex scenes with geometry */
 	if ((!is_render) && (obact) && (obact->type == OB_GPENCIL)) {
 		if (((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
-			(v3d->flag3 & V3D_GP_SHOW_PAPER) &&
+			((v3d->flag3 & V3D_GP_SHOW_PAPER) || (v3d->flag3 & V3D_GP_SHOW_GRID)) &&
 			(stl->g_data->gp_cache_used > 0))
 		{
 			DRW_draw_pass(psl->paper_pass);
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 325d77b6a7f..0ea831b9384 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -107,6 +107,7 @@ typedef struct GPENCIL_Storage {
 	int playing;
 	bool is_render;
 	bool is_mat_preview;
+	int usepaper;
 	int uselines;
 	float gridsize[2];
 	float gridcolor[3];
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl
index 7036a3287f9..4c4c616a5b4 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_paper_frag.glsl
@@ -1,5 +1,6 @@
 uniform vec2 size;
 uniform vec4 color;
+uniform int usepaper;
 uniform int uselines;
 uniform vec3 gridcolor;
 
@@ -21,6 +22,11 @@ void main()
 
 	vec2 coord = vec2(dx * floor(uv.x / dx), dy * floor(uv.y / dy));
 	vec4 outcolor = vec4(color);
+	/* if paper is disabled, the paper must be full transparent */
+	if (usepaper == 0) {
+		outcolor.a = 0;
+	}
+	
 	if (uselines == 1) {
 		float difx = uv.x - (floor(uv.x / dx) * dx);
 		if (difx == 0.5) {



More information about the Bf-blender-cvs mailing list