Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJacques Lucke <mail@jlucke.com>2018-12-19 17:53:29 +0300
committerJacques Lucke <mail@jlucke.com>2018-12-19 17:56:15 +0300
commitbe98fcc6e27e5e42aaf515d238ba6a1297f751a1 (patch)
tree819c08bc37c59270dc27185ab7bfcbc86454af55 /source
parent4563849c1b3ca6eb7418ea2870f35a624ec04f81 (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.c3
-rw-r--r--source/blender/draw/modes/object_mode.c19
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;
}