summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r200/r200_context.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-01-14 13:23:24 +1000
committerDave Airlie <airlied@redhat.com>2009-01-14 13:23:24 +1000
commit7e5e327cea83d9f6d1485f9be440277540ace5c7 (patch)
tree1d3c0a24c2bc4b27c772ef15aeb37a08aa2e8738 /src/mesa/drivers/dri/r200/r200_context.c
parentd29e96bf33e91d071770b86d87ffc4ef4dfc2f70 (diff)
radeon/r200/r300: consolidate the buffer copy/flip code into one place
Diffstat (limited to 'src/mesa/drivers/dri/r200/r200_context.c')
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/r200/r200_context.c b/src/mesa/drivers/dri/r200/r200_context.c
index 9f882fe615..85e508616b 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -262,11 +262,26 @@ static void r200_get_lock(radeonContextPtr radeon)
DRI_AGE_TEXTURES( rmesa->radeon.texture_heaps[ i ] );
}
}
-
+
+
+static void r200_vtbl_flush(GLcontext *ctx)
+{
+ R200_FIREVERTICES(R200_CONTEXT(ctx));
+}
+
+static void r200_vtbl_set_all_dirty(GLcontext *ctx)
+{
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ rmesa->hw.all_dirty = GL_TRUE;
+}
+
static void r200_init_vtbl(radeonContextPtr radeon)
{
radeon->vtbl.get_lock = r200_get_lock;
radeon->vtbl.update_viewport_offset = r200UpdateViewportOffset;
+ radeon->vtbl.flush = r200_vtbl_flush;
+ radeon->vtbl.set_all_dirty = r200_vtbl_set_all_dirty;
+ radeon->vtbl.update_draw_buffer = r200UpdateDrawBuffer;
}
/* Create the device specific rendering context.
@@ -642,7 +657,7 @@ r200SwapBuffers( __DRIdrawablePrivate *dPriv )
r200PageFlip( dPriv );
}
else {
- r200CopyBuffer( dPriv, NULL );
+ radeonCopyBuffer( dPriv, NULL );
}
}
}
@@ -668,7 +683,7 @@ r200CopySubBuffer( __DRIdrawablePrivate *dPriv,
rect.x2 = rect.x1 + w;
rect.y2 = rect.y1 + h;
_mesa_notifySwapBuffers( ctx ); /* flush pending rendering comands */
- r200CopyBuffer( dPriv, &rect );
+ radeonCopyBuffer( dPriv, &rect );
}
}
else {