framebuffer: add _mesa_get_read_renderbuffer

This returns the current read renderbuffer for the specified
format type.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Jordan Justen 2012-12-28 10:55:33 -08:00
parent f5a3d151b0
commit 161a3cd9fc
2 changed files with 26 additions and 0 deletions

View file

@ -42,6 +42,7 @@
#include "framebuffer.h"
#include "renderbuffer.h"
#include "texobj.h"
#include "glformats.h"
@ -898,6 +899,26 @@ _mesa_get_color_read_type(struct gl_context *ctx)
}
/**
* Returns the read renderbuffer for the specified format.
*/
struct gl_renderbuffer *
_mesa_get_read_renderbuffer_for_format(struct gl_context *ctx,
GLenum format)
{
struct gl_framebuffer *rfb = ctx->ReadBuffer;
if (_mesa_is_color_format(format)) {
return rfb->Attachment[rfb->_ColorReadBufferIndex].Renderbuffer;
} else if (_mesa_is_depth_format(format) ||
_mesa_is_depthstencil_format(format)) {
return rfb->Attachment[BUFFER_DEPTH].Renderbuffer;
} else {
return rfb->Attachment[BUFFER_STENCIL].Renderbuffer;
}
}
/**
* Print framebuffer info to stderr, for debugging.
*/

View file

@ -30,6 +30,7 @@
struct gl_config;
struct gl_context;
struct gl_renderbuffer;
extern struct gl_framebuffer *
_mesa_create_framebuffer(const struct gl_config *visual);
@ -96,6 +97,10 @@ _mesa_get_color_read_type(struct gl_context *ctx);
extern GLenum
_mesa_get_color_read_format(struct gl_context *ctx);
extern struct gl_renderbuffer *
_mesa_get_read_renderbuffer_for_format(struct gl_context *ctx,
GLenum format);
extern void
_mesa_print_framebuffer(const struct gl_framebuffer *fb);