[Bf-blender-cvs] [48da262] strand_gpu: Clear the edit draw data on updates, to make edit mode changes visible.

Lukas Tönne noreply at git.blender.org
Wed Jul 6 12:13:24 CEST 2016


Commit: 48da262d055f75307e5cf9a6f59fe2950dc53b6c
Author: Lukas Tönne
Date:   Wed Jul 6 12:00:22 2016 +0200
Branches: strand_gpu
https://developer.blender.org/rB48da262d055f75307e5cf9a6f59fe2950dc53b6c

Clear the edit draw data on updates, to make edit mode changes visible.

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

M	source/blender/blenkernel/BKE_editstrands.h
M	source/blender/blenkernel/intern/editstrands.c
M	source/blender/modifiers/intern/MOD_strands.c

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

diff --git a/source/blender/blenkernel/BKE_editstrands.h b/source/blender/blenkernel/BKE_editstrands.h
index e8729af..b456666 100644
--- a/source/blender/blenkernel/BKE_editstrands.h
+++ b/source/blender/blenkernel/BKE_editstrands.h
@@ -69,6 +69,8 @@ struct BMEditStrands *BKE_editstrands_from_object(struct Object *ob);
 void BKE_editstrands_update_linked_customdata(struct BMEditStrands *es);
 void BKE_editstrands_free(struct BMEditStrands *es);
 
+void BKE_editstrands_clear_drawdata(struct BMEditStrands *es);
+
 /* === constraints === */
 
 /* Stores vertex locations for temporary reference:
diff --git a/source/blender/blenkernel/intern/editstrands.c b/source/blender/blenkernel/intern/editstrands.c
index fb078e4..259cafd 100644
--- a/source/blender/blenkernel/intern/editstrands.c
+++ b/source/blender/blenkernel/intern/editstrands.c
@@ -134,6 +134,14 @@ void BKE_editstrands_free(BMEditStrands *es)
 		GPU_strands_buffer_free(es->gpu_buffer);
 }
 
+void BKE_editstrands_clear_drawdata(BMEditStrands *es)
+{
+	if (es->gpu_buffer) {
+		GPU_strands_buffer_free(es->gpu_buffer);
+		es->gpu_buffer = NULL;
+	}
+}
+
 /* === constraints === */
 
 BMEditStrandsLocations BKE_editstrands_get_locations(BMEditStrands *edit)
diff --git a/source/blender/modifiers/intern/MOD_strands.c b/source/blender/modifiers/intern/MOD_strands.c
index 9471fdf..bbf4f29 100644
--- a/source/blender/modifiers/intern/MOD_strands.c
+++ b/source/blender/modifiers/intern/MOD_strands.c
@@ -122,9 +122,13 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob),
 		
 		if (smd->strands->data_final)
 			BKE_strand_data_free(smd->strands->data_final);
-		
 		smd->strands->data_final = BKE_strand_data_calc(smd->strands, dm,
 		                                                smd->roots, smd->roots ? smd->num_roots : 0);
+		
+		if (smd->edit) {
+			/* clear draw data from edit when updating */
+			BKE_editstrands_clear_drawdata(smd->edit);
+		}
 	}
 	
 	return dm;




More information about the Bf-blender-cvs mailing list