diff options
author | Antonioya <blendergit@gmail.com> | 2019-03-12 12:23:33 +0300 |
---|---|---|
committer | Antonioya <blendergit@gmail.com> | 2019-03-12 12:23:33 +0300 |
commit | 55824525670e068b503aa1f094ca3b5f23ab7257 (patch) | |
tree | 87dd224a8172dfa1e831c98a3a42adfda73d09ab /source/blender/draw/engines/gpencil | |
parent | 784f7cb6ca6a69b28f2b49bdc4cd2fa498bc14df (diff) |
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.
Diffstat (limited to 'source/blender/draw/engines/gpencil')
-rw-r--r-- | source/blender/draw/engines/gpencil/gpencil_draw_utils.c | 12 | ||||
-rw-r--r-- | source/blender/draw/engines/gpencil/gpencil_engine.h | 1 |
2 files changed, 9 insertions, 4 deletions
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 { |