diff options
| author | Jakob Bornecrantz <jakob@tungstengraphics.com> | 2008-06-23 15:54:25 +0200 | 
|---|---|---|
| committer | Jakob Bornecrantz <jakob@tungstengraphics.com> | 2008-06-23 16:08:23 +0200 | 
| commit | 52501801c7107614387717e7b97e66a667f9e5b8 (patch) | |
| tree | 4f6fca28030d9c0521536c55a031b5455c8dfb26 | |
| parent | f78cc24c4b4f253223044b7019daf3e954f38a07 (diff) | |
gallium: Add accessor functions to get textures from a st_framebuffer
| -rw-r--r-- | src/mesa/state_tracker/st_framebuffer.c | 16 | ||||
| -rw-r--r-- | src/mesa/state_tracker/st_public.h | 3 | 
2 files changed, 19 insertions, 0 deletions
| diff --git a/src/mesa/state_tracker/st_framebuffer.c b/src/mesa/state_tracker/st_framebuffer.c index 7e6db46757..1b6e68c2a1 100644 --- a/src/mesa/state_tracker/st_framebuffer.c +++ b/src/mesa/state_tracker/st_framebuffer.c @@ -230,6 +230,22 @@ st_get_framebuffer_surface(struct st_framebuffer *stfb, uint surfIndex)     return NULL;  } +struct pipe_texture * +st_get_framebuffer_texture(struct st_framebuffer *stfb, uint surfIndex) +{ +   struct st_renderbuffer *strb; + +   assert(surfIndex <= ST_SURFACE_DEPTH); + +   /* sanity checks, ST tokens should match Mesa tokens */ +   assert(ST_SURFACE_FRONT_LEFT == BUFFER_FRONT_LEFT); +   assert(ST_SURFACE_BACK_RIGHT == BUFFER_BACK_RIGHT); + +   strb = st_renderbuffer(stfb->Base.Attachment[surfIndex].Renderbuffer); +   if (strb) +      return strb->texture; +   return NULL; +}  /**   * This function is to be called prior to SwapBuffers on the given diff --git a/src/mesa/state_tracker/st_public.h b/src/mesa/state_tracker/st_public.h index b99984215f..ca4e9577b1 100644 --- a/src/mesa/state_tracker/st_public.h +++ b/src/mesa/state_tracker/st_public.h @@ -74,6 +74,9 @@ void st_set_framebuffer_surface(struct st_framebuffer *stfb,  struct pipe_surface *st_get_framebuffer_surface(struct st_framebuffer *stfb,                                                  uint surfIndex); +struct pipe_texture *st_get_framebuffer_texture(struct st_framebuffer *stfb, +                                                uint surfIndex); +  void *st_framebuffer_private( struct st_framebuffer *stfb );  void st_unreference_framebuffer( struct st_framebuffer **stfb ); | 
