diff options
-rw-r--r-- | src/drm/cairo-drm-gallium-surface.c | 9 |
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 |