Fix T76196: Curve Display hides wires as soon as any part has faces [due

to filling/extrude/etc]

Caused by rB6da097136cf4.

The file in the report has some parts of the curve object generate faces
[due to success in filling] and some others dont [where filling isnt
possible].

rB6da097136cf4 disabled the wires/curves drawing whenever any faces
would be generated (but the only way to see all wires was to set the
Fill Mode to None then).

So now only skip the wires/curves drawing if we are _not_ in wireframe
viewport shading and the object's viewport display options is above
'WIRE'.

This is an alternative fix to D7594 (and I think the better alternative,
thx @stevewarner suggesting this).

Maniphest Tasks: T76196

Differential Revision: https://developer.blender.org/D7874
This commit is contained in:
Philipp Oeser 2020-05-29 13:10:26 +02:00
parent 85098bdb89
commit a87eee65fc
Notes: blender-bot 2023-02-14 04:07:50 +01:00
Referenced by issue #76196, Curve Display hides all curves/wires as soon as any part has faces [due to filling/extrude/etc]
1 changed files with 4 additions and 2 deletions

View File

@ -197,13 +197,15 @@ void OVERLAY_wireframe_cache_populate(OVERLAY_Data *vedata,
struct GPUBatch *geom = NULL;
switch (ob->type) {
case OB_CURVE:
if (ob->runtime.curve_cache && BKE_displist_has_faces(&ob->runtime.curve_cache->disp)) {
if (!pd->wireframe_mode && !use_wire && ob->runtime.curve_cache &&
BKE_displist_has_faces(&ob->runtime.curve_cache->disp)) {
break;
}
geom = DRW_cache_curve_edge_wire_get(ob);
break;
case OB_FONT:
if (ob->runtime.curve_cache && BKE_displist_has_faces(&ob->runtime.curve_cache->disp)) {
if (!pd->wireframe_mode && !use_wire && ob->runtime.curve_cache &&
BKE_displist_has_faces(&ob->runtime.curve_cache->disp)) {
break;
}
geom = DRW_cache_text_loose_edges_get(ob);