diff options
author | Jacques Lucke <mail@jlucke.com> | 2018-12-19 17:53:29 +0300 |
---|---|---|
committer | Jacques Lucke <mail@jlucke.com> | 2018-12-19 17:56:15 +0300 |
commit | be98fcc6e27e5e42aaf515d238ba6a1297f751a1 (patch) | |
tree | 819c08bc37c59270dc27185ab7bfcbc86454af55 /source | |
parent | 4563849c1b3ca6eb7418ea2870f35a624ec04f81 (diff) |
Fix T59273: Text object disappears when Fill Mode is set to None
Reviewers: fclem
Differential Revision: https://developer.blender.org/D4103
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/modes/edit_text_mode.c | 3 | ||||
-rw-r--r-- | source/blender/draw/modes/object_mode.c | 19 |
2 files changed, 21 insertions, 1 deletions
diff --git a/source/blender/draw/modes/edit_text_mode.c b/source/blender/draw/modes/edit_text_mode.c index cb87a015717..40cbd876473 100644 --- a/source/blender/draw/modes/edit_text_mode.c +++ b/source/blender/draw/modes/edit_text_mode.c @@ -337,7 +337,8 @@ static void EDIT_TEXT_cache_populate(void *vedata, Object *ob) /* Get geometry cache */ struct GPUBatch *geom; - if (cu->flag & CU_FAST) { + bool has_surface = (cu->flag & (CU_FRONT | CU_BACK)) || cu->ext1 != 0.0f || cu->ext2 != 0.0f; + if ((cu->flag & CU_FAST) || !has_surface) { geom = DRW_cache_text_edge_wire_get(ob); if (geom) { DRW_shgroup_call_add(stl->g_data->wire_shgrp, geom, ob->obmat); diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index c51498b4368..91e41f75bed 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -2809,6 +2809,25 @@ static void OBJECT_cache_populate(void *vedata, Object *ob) } break; } + case OB_FONT: + { + if (hide_object_extra) { + break; + } + Curve *cu = (Curve *)ob->data; + bool has_surface = (cu->flag & (CU_FRONT | CU_BACK)) || cu->ext1 != 0.0f || cu->ext2 != 0.0f; + if (!has_surface) { + struct GPUBatch *geom = DRW_cache_text_edge_wire_get(ob); + if (geom) { + if (theme_id == TH_UNDEFINED) { + theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL); + } + DRWShadingGroup *shgroup = shgroup_theme_id_to_wire_or(sgl, theme_id, sgl->wire); + DRW_shgroup_call_object_add(shgroup, geom, ob); + } + } + break; + } default: break; } |