[Bf-blender-cvs] [55824525670] master: GPencil: Set wire mode when object is set to wire

Antonioya noreply at git.blender.org
Tue Mar 12 10:23:43 CET 2019


Commit: 55824525670e068b503aa1f094ca3b5f23ab7257
Author: Antonioya
Date:   Tue Mar 12 10:23:33 2019 +0100
Branches: master
https://developer.blender.org/rB55824525670e068b503aa1f094ca3b5f23ab7257

GPencil: Set wire mode when object is set to wire

When the object view is set to Wireframe, the display must be set as wireframe view with x-ray on.

Now the x-ray switch is handled by object.

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

M	source/blender/draw/engines/gpencil/gpencil_draw_utils.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
index 69c8a889801..9ed86cb10c3 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
@@ -421,7 +421,8 @@ static DRWShadingGroup *DRW_gpencil_shgroup_fill_create(
 	DRW_shgroup_uniform_int(grp, "drawmode", (const int *) &gpd->draw_mode, 1);
 
 	/* viewport x-ray */
-	DRW_shgroup_uniform_int(grp, "viewport_xray", &stl->storage->is_xray, 1);
+	stl->shgroups[id].is_xray = (ob->dt == OB_WIRE) ? 1 : stl->storage->is_xray;
+	DRW_shgroup_uniform_int(grp, "viewport_xray", (const int *)&stl->shgroups[id].is_xray, 1);
 
 	/* shading type */
 	stl->shgroups[id].shading_type[0] = GPENCIL_USE_SOLID(stl) ? (int)OB_RENDER : shading_type[0];
@@ -532,7 +533,8 @@ DRWShadingGroup *DRW_gpencil_shgroup_stroke_create(
 		DRW_shgroup_uniform_int(grp, "caps_mode", &stl->shgroups[id].caps_mode[0], 2);
 
 		/* viewport x-ray */
-		DRW_shgroup_uniform_int(grp, "viewport_xray", &stl->storage->is_xray, 1);
+		stl->shgroups[id].is_xray = (ob->dt == OB_WIRE) ? 1 : stl->storage->is_xray;
+		DRW_shgroup_uniform_int(grp, "viewport_xray", (const int *)&stl->shgroups[id].is_xray, 1);
 
 		stl->shgroups[id].shading_type[0] = (GPENCIL_USE_SOLID(stl) || onion) ? (int)OB_RENDER : shading_type[0];
 		if (v3d) {
@@ -650,7 +652,8 @@ static DRWShadingGroup *DRW_gpencil_shgroup_point_create(
 		DRW_shgroup_uniform_float(grp, "pixfactor", &gpd->pixfactor, 1);
 
 		/* viewport x-ray */
-		DRW_shgroup_uniform_int(grp, "viewport_xray", &stl->storage->is_xray, 1);
+		stl->shgroups[id].is_xray = (ob->dt == OB_WIRE) ? 1 : stl->storage->is_xray;
+		DRW_shgroup_uniform_int(grp, "viewport_xray", (const int *)&stl->shgroups[id].is_xray, 1);
 
 		stl->shgroups[id].shading_type[0] = (GPENCIL_USE_SOLID(stl) || onion) ? (int)OB_RENDER : shading_type[0];
 		if (v3d) {
@@ -682,7 +685,8 @@ static DRWShadingGroup *DRW_gpencil_shgroup_point_create(
 			DRW_shgroup_uniform_float(grp, "pixfactor", &stl->storage->pixfactor, 1);
 		}
 		/* viewport x-ray */
-		DRW_shgroup_uniform_int(grp, "viewport_xray", &stl->storage->is_xray, 1);
+		stl->shgroups[id].is_xray = (ob->dt == OB_WIRE) ? 1 : stl->storage->is_xray;
+		DRW_shgroup_uniform_int(grp, "viewport_xray", (const int *)&stl->shgroups[id].is_xray, 1);
 		DRW_shgroup_uniform_int(grp, "shading_type", (const int *)&stl->storage->shade_render, 2);
 	}
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index fc45463fa1a..860dd728805 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -124,6 +124,7 @@ typedef struct GPENCIL_shgroup {
 	float wire_color[4];
 	/* shading type and mode */
 	int shading_type[2];
+	int is_xray;
 } GPENCIL_shgroup;
 
 typedef struct GPENCIL_Storage {



More information about the Bf-blender-cvs mailing list