[Bf-blender-cvs] [e28a92bacb9] blender2.8: Cleanup: put overlay & wire in own structs

Campbell Barton noreply at git.blender.org
Wed Apr 19 18:58:53 CEST 2017


Commit: e28a92bacb94aaa011cd99f6709c63037f2d008f
Author: Campbell Barton
Date:   Thu Apr 20 02:08:02 2017 +1000
Branches: blender2.8
https://developer.blender.org/rBe28a92bacb94aaa011cd99f6709c63037f2d008f

Cleanup: put overlay & wire in own structs

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

M	source/blender/blenkernel/intern/curve_render.c

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

diff --git a/source/blender/blenkernel/intern/curve_render.c b/source/blender/blenkernel/intern/curve_render.c
index 36ddbc48131..09e1cee6f11 100644
--- a/source/blender/blenkernel/intern/curve_render.c
+++ b/source/blender/blenkernel/intern/curve_render.c
@@ -45,7 +45,7 @@
  * TODO
  * - Ensure `CurveCache`, `SEQUENCER_DAG_WORKAROUND`.
  * - Check number of verts/edges to see if cache is valid.
- * - Check if 'overlay_edges' can use single attribyte per edge, not 2 (for selection drawing).
+ * - Check if 'overlay.edges' can use single attribyte per edge, not 2 (for selection drawing).
  */
 
 /* ---------------------------------------------------------------------- */
@@ -242,15 +242,19 @@ enum {
 /* Curve Batch Cache */
 
 typedef struct CurveBatchCache {
-	VertexBuffer *wire_verts;
-	VertexBuffer *wire_edges;
-	Batch *wire_batch;
-
-	ElementList *wire_elem;
+	/* center-line */
+	struct {
+		VertexBuffer *verts;
+		VertexBuffer *edges;
+		Batch *batch;
+		ElementList *elem;
+	} wire;
 
 	/* control handles and vertices */
-	Batch *overlay_edges;
-	Batch *overlay_verts;
+	struct {
+		Batch *edges;
+		Batch *verts;
+	} overlay;
 
 	/* settings to determine if cache is invalid */
 	bool is_dirty;
@@ -340,8 +344,8 @@ void BKE_curve_batch_selection_dirty(Curve *cu)
 {
 	CurveBatchCache *cache = cu->batch_cache;
 	if (cache) {
-		BATCH_DISCARD_ALL_SAFE(cache->overlay_verts);
-		BATCH_DISCARD_ALL_SAFE(cache->overlay_edges);
+		BATCH_DISCARD_ALL_SAFE(cache->overlay.verts);
+		BATCH_DISCARD_ALL_SAFE(cache->overlay.edges);
 	}
 }
 
@@ -352,17 +356,17 @@ void BKE_curve_batch_cache_clear(Curve *cu)
 		return;
 	}
 
-	BATCH_DISCARD_ALL_SAFE(cache->overlay_verts);
-	BATCH_DISCARD_ALL_SAFE(cache->overlay_edges);
+	BATCH_DISCARD_ALL_SAFE(cache->overlay.verts);
+	BATCH_DISCARD_ALL_SAFE(cache->overlay.edges);
 
-	if (cache->wire_batch) {
-		/* Also handles: 'cache->wire_verts', 'cache->wire_edges', 'cache->wire_elem' */
-		BATCH_DISCARD_ALL_SAFE(cache->wire_batch);
+	if (cache->wire.batch) {
+		/* Also handles: 'cache->wire.verts', 'cache->wire.edges', 'cache->wire.elem' */
+		BATCH_DISCARD_ALL_SAFE(cache->wire.batch);
 	}
 	else {
-		VERTEXBUFFER_DISCARD_SAFE(cache->wire_verts);
-		VERTEXBUFFER_DISCARD_SAFE(cache->wire_edges);
-		ELEMENTLIST_DISCARD_SAFE(cache->wire_elem);
+		VERTEXBUFFER_DISCARD_SAFE(cache->wire.verts);
+		VERTEXBUFFER_DISCARD_SAFE(cache->wire.edges);
+		ELEMENTLIST_DISCARD_SAFE(cache->wire.elem);
 	}
 }
 
@@ -378,7 +382,7 @@ static VertexBuffer *curve_batch_cache_get_wire_verts(CurveRenderData *lrdata, C
 	BLI_assert(lrdata->types & CU_DATATYPE_WIRE);
 	BLI_assert(lrdata->ob_curve_cache != NULL);
 
-	if (cache->wire_verts == NULL) {
+	if (cache->wire.verts == NULL) {
 		static VertexFormat format = { 0 };
 		static unsigned pos_id;
 		if (format.attrib_ct == 0) {
@@ -388,7 +392,7 @@ static VertexBuffer *curve_batch_cache_get_wire_verts(CurveRenderData *lrdata, C
 
 		const int vert_len = curve_render_data_wire_verts_len_get(lrdata);
 
-		VertexBuffer *vbo = cache->wire_verts = VertexBuffer_create_with_format(&format);
+		VertexBuffer *vbo = cache->wire.verts = VertexBuffer_create_with_format(&format);
 		VertexBuffer_allocate_data(vbo, vert_len);
 		int vbo_len_used = 0;
 		for (const BevList *bl = lrdata->ob_curve_cache->bev.first; bl; bl = bl->next) {
@@ -402,7 +406,7 @@ static VertexBuffer *curve_batch_cache_get_wire_verts(CurveRenderData *lrdata, C
 		BLI_assert(vbo_len_used == vert_len);
 	}
 
-	return cache->wire_verts;
+	return cache->wire.verts;
 }
 
 static ElementList *curve_batch_cache_get_wire_edges(CurveRenderData *lrdata, CurveBatchCache *cache)
@@ -410,7 +414,7 @@ static ElementList *curve_batch_cache_get_wire_edges(CurveRenderData *lrdata, Cu
 	BLI_assert(lrdata->types & CU_DATATYPE_WIRE);
 	BLI_assert(lrdata->ob_curve_cache != NULL);
 
-	if (cache->wire_edges == NULL) {
+	if (cache->wire.edges == NULL) {
 		const int vert_len = curve_render_data_wire_verts_len_get(lrdata);
 		const int edge_len = curve_render_data_wire_edges_len_get(lrdata);
 		int edge_len_real = 0;
@@ -445,10 +449,10 @@ static ElementList *curve_batch_cache_get_wire_edges(CurveRenderData *lrdata, Cu
 			BLI_assert(edge_len_real == edge_len);
 		}
 
-		cache->wire_elem = ElementList_build(&elb);
+		cache->wire.elem = ElementList_build(&elb);
 	}
 
-	return cache->wire_elem;
+	return cache->wire.elem;
 }
 
 static void curve_batch_cache_create_overlay_batches(Curve *cu)
@@ -459,7 +463,7 @@ static void curve_batch_cache_create_overlay_batches(Curve *cu)
 	CurveBatchCache *cache = curve_batch_cache_get(cu);
 	CurveRenderData *lrdata = curve_render_data_create(cu, NULL, options);
 
-	if (cache->overlay_verts == NULL) {
+	if (cache->overlay.verts == NULL) {
 		static VertexFormat format = { 0 };
 		static unsigned pos_id, data_id;
 		if (format.attrib_ct == 0) {
@@ -521,11 +525,11 @@ static void curve_batch_cache_create_overlay_batches(Curve *cu)
 			VertexBuffer_resize_data(vbo, vbo_len_used);
 		}
 
-		cache->overlay_verts = Batch_create(PRIM_POINTS, vbo, NULL);
+		cache->overlay.verts = Batch_create(PRIM_POINTS, vbo, NULL);
 	}
 
 
-	if ((cache->overlay_edges == NULL) && (lrdata->hide_handles == false)) {
+	if ((cache->overlay.edges == NULL) && (lrdata->hide_handles == false)) {
 		/* Note: we could reference indices to vertices (above) */
 
 		static VertexFormat format = { 0 };
@@ -593,7 +597,7 @@ static void curve_batch_cache_create_overlay_batches(Curve *cu)
 			VertexBuffer_resize_data(vbo, vbo_len_used);
 		}
 
-		cache->overlay_edges = Batch_create(PRIM_LINES, vbo, NULL);
+		cache->overlay.edges = Batch_create(PRIM_LINES, vbo, NULL);
 	}
 
 	curve_render_data_free(lrdata);
@@ -603,11 +607,11 @@ Batch *BKE_curve_batch_cache_get_wire_edge(Curve *cu, CurveCache *ob_curve_cache
 {
 	CurveBatchCache *cache = curve_batch_cache_get(cu);
 
-	if (cache->wire_batch == NULL) {
+	if (cache->wire.batch == NULL) {
 		/* create batch from Curve */
 		CurveRenderData *lrdata = curve_render_data_create(cu, ob_curve_cache, CU_DATATYPE_WIRE);
 
-		cache->wire_batch = Batch_create(
+		cache->wire.batch = Batch_create(
 		        PRIM_LINES,
 		        curve_batch_cache_get_wire_verts(lrdata, cache),
 		        curve_batch_cache_get_wire_edges(lrdata, cache));
@@ -615,27 +619,27 @@ Batch *BKE_curve_batch_cache_get_wire_edge(Curve *cu, CurveCache *ob_curve_cache
 		curve_render_data_free(lrdata);
 	}
 
-	return cache->wire_batch;
+	return cache->wire.batch;
 }
 
 Batch *BKE_curve_batch_cache_get_overlay_edges(Curve *cu)
 {
 	CurveBatchCache *cache = curve_batch_cache_get(cu);
 
-	if (cache->overlay_edges == NULL) {
+	if (cache->overlay.edges == NULL) {
 		curve_batch_cache_create_overlay_batches(cu);
 	}
 
-	return cache->overlay_edges;
+	return cache->overlay.edges;
 }
 
 Batch *BKE_curve_batch_cache_get_overlay_verts(Curve *cu)
 {
 	CurveBatchCache *cache = curve_batch_cache_get(cu);
 
-	if (cache->overlay_verts == NULL) {
+	if (cache->overlay.verts == NULL) {
 		curve_batch_cache_create_overlay_batches(cu);
 	}
 
-	return cache->overlay_verts;
+	return cache->overlay.verts;
 }




More information about the Bf-blender-cvs mailing list