summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2015-09-01 16:29:17 -0600
committerBrian Paul <brianp@vmware.com>2015-09-01 16:29:17 -0600
commit84dad65088147fa8c177c3e6aea20c8ae0868fde (patch)
tree40192fd330ba438884480dc7cf85570bec877578 /src/gallium
parent47b4efc710defee5a2bf81ad7c7626eee4e9aba5 (diff)
downloadexternal_mesa3d-84dad65088147fa8c177c3e6aea20c8ae0868fde.zip
external_mesa3d-84dad65088147fa8c177c3e6aea20c8ae0868fde.tar.gz
external_mesa3d-84dad65088147fa8c177c3e6aea20c8ae0868fde.tar.bz2
util: added util_set_index_buffer()
Like util_set_vertex_buffers_count(), this basically just copies a pipe_index_buffer object, taking care of refcounting.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/util/u_helpers.c15
-rw-r--r--src/gallium/auxiliary/util/u_helpers.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_helpers.c b/src/gallium/auxiliary/util/u_helpers.c
index ac1edcd..09619c1 100644
--- a/src/gallium/auxiliary/util/u_helpers.c
+++ b/src/gallium/auxiliary/util/u_helpers.c
@@ -88,3 +88,18 @@ void util_set_vertex_buffers_count(struct pipe_vertex_buffer *dst,
*dst_count = util_last_bit(enabled_buffers);
}
+
+
+void
+util_set_index_buffer(struct pipe_index_buffer *dst,
+ const struct pipe_index_buffer *src)
+{
+ if (src) {
+ pipe_resource_reference(&dst->buffer, src->buffer);
+ memcpy(dst, src, sizeof(*dst));
+ }
+ else {
+ pipe_resource_reference(&dst->buffer, NULL);
+ memset(dst, 0, sizeof(*dst));
+ }
+}
diff --git a/src/gallium/auxiliary/util/u_helpers.h b/src/gallium/auxiliary/util/u_helpers.h
index 09c7116..f25f280 100644
--- a/src/gallium/auxiliary/util/u_helpers.h
+++ b/src/gallium/auxiliary/util/u_helpers.h
@@ -44,6 +44,9 @@ void util_set_vertex_buffers_count(struct pipe_vertex_buffer *dst,
const struct pipe_vertex_buffer *src,
unsigned start_slot, unsigned count);
+void util_set_index_buffer(struct pipe_index_buffer *dst,
+ const struct pipe_index_buffer *src);
+
#ifdef __cplusplus
}
#endif