summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Oliveira <itrindade.oliveira@gmail.com>2010-06-20 11:18:42 -0400
committerIgor Oliveira <igor.oliveira@openbossa.org>2010-06-20 11:18:42 -0400
commitc48515f704656c65f2a9fb9cc328ef851e40f41d (patch)
tree22df8d7f2537381356dd35a13d35c3cffebda83d
parentd47de5a9b2e8a0680f9ed2185656ae5d6d99c009 (diff)
DRM/Gallium3D: fix draw_path rasterizer
-rw-r--r--src/drm/cairo-drm-gallium-surface.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/drm/cairo-drm-gallium-surface.c b/src/drm/cairo-drm-gallium-surface.c
index 393c80f5..40446277 100644
--- a/src/drm/cairo-drm-gallium-surface.c
+++ b/src/drm/cairo-drm-gallium-surface.c
@@ -688,6 +688,7 @@ draw_path (gallium_device_t *device,
{
const int components = 2;
struct pipe_context *ctx = device->pipe;
+ gallium_surface_t *surface = gallium_device(device);
struct pipe_vertex_buffer vbuffer;
struct pipe_vertex_element velement;
struct pipe_rasterizer_state rasterizer;
@@ -713,16 +714,16 @@ draw_path (gallium_device_t *device,
velement.src_format = PIPE_FORMAT_R32G32_FLOAT;
cso_set_vertex_elements(device->cso, 1, &velement);
+ memset(&rasterizer, &surface->rasterizer, sizeof(struct pipe_rasterizer_state));
rasterizer.line_width = path->width;
- //FIXME: we need surface
-// cso_save_rasterizer(device->cso);
-// cso_set_rasterizer(device->cso, &rasterizer);
+ cso_save_rasterizer(device->cso);
+ cso_set_rasterizer(device->cso, &rasterizer);
ctx->draw_arrays(ctx, PIPE_PRIM_TRIANGLE_FAN,
0, path->count);
-// cso_restore_rasterizer(device->cso);
+ cso_restore_rasterizer(device->cso);
}
static void