gallium: drivers should reference vertex buffers
[mesa.git] / src / gallium / auxiliary / util / u_inlines.h
index 9184b6aa4dbf27f50d5f5306d2e9048879e0d8c7..8aaf7a74165b2e1fdd2ae53d539fee35e0a25972 100644 (file)
@@ -400,6 +400,24 @@ static INLINE boolean util_get_offset(
    }
 }
 
+static INLINE void util_copy_vertex_buffers(struct pipe_vertex_buffer *dst,
+                                            unsigned *dst_count,
+                                            const struct pipe_vertex_buffer *src,
+                                            unsigned src_count)
+{
+   unsigned i;
+
+   for (i = 0; i < src_count; i++) {
+      pipe_resource_reference(&dst[i].buffer, src[i].buffer);
+   }
+   for (; i < *dst_count; i++) {
+      pipe_resource_reference(&dst[i].buffer, NULL);
+   }
+
+   *dst_count = src_count;
+   memcpy(dst, src, src_count * sizeof(struct pipe_vertex_buffer));
+}
+
 #ifdef __cplusplus
 }
 #endif