summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/radeon/radeon_common.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-03-19 15:31:03 +1000
committerDave Airlie <airlied@redhat.com>2009-03-19 15:31:03 +1000
commitbdaa0341caffc353fd26bbd91865c2d86eed11c1 (patch)
treee829e2e3ac5571493d90c7d88e54d6f7b4a17b12 /src/mesa/drivers/dri/radeon/radeon_common.h
parentc0c06803fee4d5cd04da03f1984ae99e411e1588 (diff)
radeon/r200/r300: cleanup some of the renderbuffer code
Diffstat (limited to 'src/mesa/drivers/dri/radeon/radeon_common.h')
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_common.h b/src/mesa/drivers/dri/radeon/radeon_common.h
index 95b718184b..814da1b4f5 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common.h
+++ b/src/mesa/drivers/dri/radeon/radeon_common.h
@@ -30,6 +30,23 @@ void radeonDrawBuffer( GLcontext *ctx, GLenum mode );
void radeonReadBuffer( GLcontext *ctx, GLenum mode );
void radeon_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height);
+static inline struct radeon_renderbuffer *radeon_renderbuffer(struct gl_renderbuffer *rb)
+{
+ struct radeon_renderbuffer *rrb = (struct radeon_renderbuffer *)rb;
+ if (rrb && rrb->base.ClassID == RADEON_RB_CLASS)
+ return rrb;
+ else
+ return NULL;
+}
+
+static inline struct radeon_renderbuffer *radeon_get_renderbuffer(struct gl_framebuffer *fb, int att_index)
+{
+ if (att_index >= 0)
+ return radeon_renderbuffer(fb->Attachment[att_index].Renderbuffer);
+ else
+ return NULL;
+}
+
static inline struct radeon_renderbuffer *radeon_get_depthbuffer(radeonContextPtr rmesa)
{
struct radeon_renderbuffer *rrb;
@@ -47,7 +64,7 @@ static inline struct radeon_renderbuffer *radeon_get_colorbuffer(radeonContextPt
rrb = rmesa->state.color.rrb;
if (rmesa->radeonScreen->driScreen->dri2.enabled) {
- rrb = (struct radeon_renderbuffer *)rfb->base.Attachment[BUFFER_BACK_LEFT].Renderbuffer;
+ rrb = radeon_get_renderbuffer(&rfb->base, BUFFER_BACK_LEFT);
}
if (!rrb)
return NULL;