[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