[Bf-blender-cvs] [95a7a0a06eb] blender2.8: Gawain: add GWN_vertbuf_clear

Campbell Barton noreply at git.blender.org
Wed Jul 12 17:50:38 CEST 2017


Commit: 95a7a0a06ebc7c88bc56c90bb4edfeef302694b7
Author: Campbell Barton
Date:   Thu Jul 13 00:28:18 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB95a7a0a06ebc7c88bc56c90bb4edfeef302694b7

Gawain: add GWN_vertbuf_clear

Needed to clear the buffer without freeing.

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

M	intern/gawain/gawain/vertex_buffer.h
M	intern/gawain/src/vertex_buffer.c

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

diff --git a/intern/gawain/gawain/vertex_buffer.h b/intern/gawain/gawain/vertex_buffer.h
index a66154d06e3..9aee8e05877 100644
--- a/intern/gawain/gawain/vertex_buffer.h
+++ b/intern/gawain/gawain/vertex_buffer.h
@@ -31,6 +31,7 @@ typedef struct {
 Gwn_VertBuf* GWN_vertbuf_create(void);
 Gwn_VertBuf* GWN_vertbuf_create_with_format(const Gwn_VertFormat*);
 
+void GWN_vertbuf_clear(Gwn_VertBuf* verts);
 void GWN_vertbuf_discard(Gwn_VertBuf*);
 
 void GWN_vertbuf_init(Gwn_VertBuf*);
diff --git a/intern/gawain/src/vertex_buffer.c b/intern/gawain/src/vertex_buffer.c
index a9b481261f3..364e16a1a68 100644
--- a/intern/gawain/src/vertex_buffer.c
+++ b/intern/gawain/src/vertex_buffer.c
@@ -51,6 +51,25 @@ void GWN_vertbuf_init_with_format(Gwn_VertBuf* verts, const Gwn_VertFormat* form
 		VertexFormat_pack(&verts->format);
 	}
 
+/**
+ * Like #GWN_vertbuf_discard but doesn't free.
+ */
+void GWN_vertbuf_clear(Gwn_VertBuf* verts)
+	{
+	if (verts->vbo_id) {
+		GWN_buf_id_free(verts->vbo_id);
+		vbo_memory_usage -= GWN_vertbuf_size_get(verts);
+	}
+#if KEEP_SINGLE_COPY
+	else
+#endif
+	if (verts->data)
+		{
+		free(verts->data);
+		verts->data = NULL;
+		}
+	}
+
 void GWN_vertbuf_discard(Gwn_VertBuf* verts)
 	{
 	if (verts->vbo_id) {




More information about the Bf-blender-cvs mailing list