Module: Mesa Branch: master Commit: aba88b7ed7a1346adada9532aed9633617eb3b6d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aba88b7ed7a1346adada9532aed9633617eb3b6d
Author: Michel Dänzer <[email protected]> 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) { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
