Mesa (master): gallium: Add pipe_transfer_reference().

Michel Dänzer daenzer at kemper.freedesktop.org
Wed Feb 18 17:14:37 UTC 2009


Module: Mesa
Branch: master
Commit: aba88b7ed7a1346adada9532aed9633617eb3b6d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=aba88b7ed7a1346adada9532aed9633617eb3b6d

Author: Michel Dänzer <daenzer at vmware.com>
Date:   Wed Feb 18 18:12:31 2009 +0100

gallium: Add pipe_transfer_reference().

---

 src/gallium/include/pipe/p_inlines.h |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/src/gallium/include/pipe/p_inlines.h b/src/gallium/include/pipe/p_inlines.h
index 76460d2..ffbe2d7 100644
--- a/src/gallium/include/pipe/p_inlines.h
+++ b/src/gallium/include/pipe/p_inlines.h
@@ -69,6 +69,31 @@ pipe_surface_reference(struct pipe_surface **ptr, struct pipe_surface *surf)
  * \sa pipe_surface_reference
  */
 static INLINE void
+pipe_transfer_reference(struct pipe_transfer **ptr, struct pipe_transfer *trans)
+{
+   /* bump the refcount first */
+   if (trans) {
+      assert(trans->refcount);
+      trans->refcount++;
+   }
+
+   if (*ptr) {
+      struct pipe_screen *screen;
+      assert((*ptr)->refcount);
+      assert((*ptr)->texture);
+      screen = (*ptr)->texture->screen;
+      screen->tex_transfer_release( screen, ptr );
+      assert(!*ptr);
+   }
+
+   *ptr = trans;
+}
+
+
+/**
+ * \sa pipe_surface_reference
+ */
+static INLINE void
 pipe_texture_reference(struct pipe_texture **ptr,
 		       struct pipe_texture *pt)
 {




More information about the mesa-commit mailing list