[Bf-blender-cvs] [be98fcc6e27] blender2.8: Fix T59273: Text object disappears when Fill Mode is set to None

Jacques Lucke noreply at git.blender.org
Wed Dec 19 15:56:31 CET 2018


Commit: be98fcc6e27e5e42aaf515d238ba6a1297f751a1
Author: Jacques Lucke
Date:   Wed Dec 19 15:53:29 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBbe98fcc6e27e5e42aaf515d238ba6a1297f751a1

Fix T59273: Text object disappears when Fill Mode is set to None

Reviewers: fclem

Differential Revision: https://developer.blender.org/D4103

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

M	source/blender/draw/modes/edit_text_mode.c
M	source/blender/draw/modes/object_mode.c

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

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;
 	}



More information about the Bf-blender-cvs mailing list