diff options
Diffstat (limited to 'src/drm')
31 files changed, 8 insertions, 40 deletions
diff --git a/src/drm/cairo-drm-bo.c b/src/drm/cairo-drm-bo.c index a5b59f2c9..a5b59f2c9 100755..100644 --- a/src/drm/cairo-drm-bo.c +++ b/src/drm/cairo-drm-bo.c diff --git a/src/drm/cairo-drm-gallium-surface.c b/src/drm/cairo-drm-gallium-surface.c index 164ab03ce..164ab03ce 100755..100644 --- a/src/drm/cairo-drm-gallium-surface.c +++ b/src/drm/cairo-drm-gallium-surface.c diff --git a/src/drm/cairo-drm-i915-glyphs.c b/src/drm/cairo-drm-i915-glyphs.c index 9944f15a4..9944f15a4 100755..100644 --- a/src/drm/cairo-drm-i915-glyphs.c +++ b/src/drm/cairo-drm-i915-glyphs.c diff --git a/src/drm/cairo-drm-i915-private.h b/src/drm/cairo-drm-i915-private.h index c750cf4cf..c750cf4cf 100755..100644 --- a/src/drm/cairo-drm-i915-private.h +++ b/src/drm/cairo-drm-i915-private.h diff --git a/src/drm/cairo-drm-i915-shader.c b/src/drm/cairo-drm-i915-shader.c index a1911d0a4..85aa98433 100755..100644 --- a/src/drm/cairo-drm-i915-shader.c +++ b/src/drm/cairo-drm-i915-shader.c @@ -1467,42 +1467,6 @@ i915_shader_acquire_solid_surface (i915_shader_t *shader, return CAIRO_STATUS_SUCCESS; } -static cairo_filter_t -sampled_area (const cairo_surface_pattern_t *pattern, - const cairo_rectangle_int_t *extents, - cairo_rectangle_int_t *sample) -{ - cairo_rectangle_int_t surface_extents; - cairo_filter_t filter; - double x1, x2, y1, y2; - double pad; - - x1 = extents->x; - y1 = extents->y; - x2 = extents->x + (int) extents->width; - y2 = extents->y + (int) extents->height; - - if (_cairo_matrix_is_translation (&pattern->base.matrix)) { - x1 += pattern->base.matrix.x0; x2 += pattern->base.matrix.x0; - y1 += pattern->base.matrix.y0; y2 += pattern->base.matrix.y0; - } else { - _cairo_matrix_transform_bounding_box (&pattern->base.matrix, - &x1, &y1, &x2, &y2, - NULL); - } - - filter = _cairo_pattern_analyze_filter (&pattern->base, &pad); - sample->x = floor (x1 - pad); - sample->y = floor (y1 - pad); - sample->width = ceil (x2 + pad) - sample->x; - sample->height = ceil (y2 + pad) - sample->y; - - if (_cairo_surface_get_extents (pattern->surface, &surface_extents)) - _cairo_rectangle_intersect (sample, &surface_extents); - - return filter; -} - static cairo_status_t i915_shader_acquire_surface (i915_shader_t *shader, union i915_shader_channel *src, @@ -1524,7 +1488,8 @@ i915_shader_acquire_surface (i915_shader_t *shader, extend = pattern->base.extend; src->base.matrix = pattern->base.matrix; - filter = sampled_area (pattern, extents, &sample); + filter = pattern->base.filter; + _cairo_pattern_sampled_area(&pattern->base, extents, sample); if (surface->type == CAIRO_SURFACE_TYPE_DRM) { if (surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { diff --git a/src/drm/cairo-drm-i915-spans.c b/src/drm/cairo-drm-i915-spans.c index b3f4e0afd..b3f4e0afd 100755..100644 --- a/src/drm/cairo-drm-i915-spans.c +++ b/src/drm/cairo-drm-i915-spans.c diff --git a/src/drm/cairo-drm-i915-surface.c b/src/drm/cairo-drm-i915-surface.c index c1a04529f..c1a04529f 100755..100644 --- a/src/drm/cairo-drm-i915-surface.c +++ b/src/drm/cairo-drm-i915-surface.c diff --git a/src/drm/cairo-drm-i965-glyphs.c b/src/drm/cairo-drm-i965-glyphs.c index c66a63d73..c66a63d73 100755..100644 --- a/src/drm/cairo-drm-i965-glyphs.c +++ b/src/drm/cairo-drm-i965-glyphs.c diff --git a/src/drm/cairo-drm-i965-private.h b/src/drm/cairo-drm-i965-private.h index 79568a63d..79568a63d 100755..100644 --- a/src/drm/cairo-drm-i965-private.h +++ b/src/drm/cairo-drm-i965-private.h diff --git a/src/drm/cairo-drm-i965-shader.c b/src/drm/cairo-drm-i965-shader.c index eed5f5f09..eed5f5f09 100755..100644 --- a/src/drm/cairo-drm-i965-shader.c +++ b/src/drm/cairo-drm-i965-shader.c diff --git a/src/drm/cairo-drm-i965-spans.c b/src/drm/cairo-drm-i965-spans.c index 5cba7cec8..5cba7cec8 100755..100644 --- a/src/drm/cairo-drm-i965-spans.c +++ b/src/drm/cairo-drm-i965-spans.c diff --git a/src/drm/cairo-drm-i965-surface.c b/src/drm/cairo-drm-i965-surface.c index ec7b5954c..ec7b5954c 100755..100644 --- a/src/drm/cairo-drm-i965-surface.c +++ b/src/drm/cairo-drm-i965-surface.c diff --git a/src/drm/cairo-drm-intel-brw-defines.h b/src/drm/cairo-drm-intel-brw-defines.h index b2be36f18..b2be36f18 100755..100644 --- a/src/drm/cairo-drm-intel-brw-defines.h +++ b/src/drm/cairo-drm-intel-brw-defines.h diff --git a/src/drm/cairo-drm-intel-brw-eu-emit.c b/src/drm/cairo-drm-intel-brw-eu-emit.c index f27b23804..f27b23804 100755..100644 --- a/src/drm/cairo-drm-intel-brw-eu-emit.c +++ b/src/drm/cairo-drm-intel-brw-eu-emit.c diff --git a/src/drm/cairo-drm-intel-brw-eu-util.c b/src/drm/cairo-drm-intel-brw-eu-util.c index 592235b12..592235b12 100755..100644 --- a/src/drm/cairo-drm-intel-brw-eu-util.c +++ b/src/drm/cairo-drm-intel-brw-eu-util.c diff --git a/src/drm/cairo-drm-intel-brw-eu.c b/src/drm/cairo-drm-intel-brw-eu.c index 2b47d8c37..2b47d8c37 100755..100644 --- a/src/drm/cairo-drm-intel-brw-eu.c +++ b/src/drm/cairo-drm-intel-brw-eu.c diff --git a/src/drm/cairo-drm-intel-brw-eu.h b/src/drm/cairo-drm-intel-brw-eu.h index 2662a2e7f..2662a2e7f 100755..100644 --- a/src/drm/cairo-drm-intel-brw-eu.h +++ b/src/drm/cairo-drm-intel-brw-eu.h diff --git a/src/drm/cairo-drm-intel-brw-structs.h b/src/drm/cairo-drm-intel-brw-structs.h index f42483ed1..f42483ed1 100755..100644 --- a/src/drm/cairo-drm-intel-brw-structs.h +++ b/src/drm/cairo-drm-intel-brw-structs.h diff --git a/src/drm/cairo-drm-intel-command-private.h b/src/drm/cairo-drm-intel-command-private.h index a93ac12ab..a93ac12ab 100755..100644 --- a/src/drm/cairo-drm-intel-command-private.h +++ b/src/drm/cairo-drm-intel-command-private.h diff --git a/src/drm/cairo-drm-intel-debug.c b/src/drm/cairo-drm-intel-debug.c index 7068c933e..7068c933e 100755..100644 --- a/src/drm/cairo-drm-intel-debug.c +++ b/src/drm/cairo-drm-intel-debug.c diff --git a/src/drm/cairo-drm-intel-ioctl-private.h b/src/drm/cairo-drm-intel-ioctl-private.h index 004d3bfd7..004d3bfd7 100755..100644 --- a/src/drm/cairo-drm-intel-ioctl-private.h +++ b/src/drm/cairo-drm-intel-ioctl-private.h diff --git a/src/drm/cairo-drm-intel-private.h b/src/drm/cairo-drm-intel-private.h index 343270a3c..343270a3c 100755..100644 --- a/src/drm/cairo-drm-intel-private.h +++ b/src/drm/cairo-drm-intel-private.h diff --git a/src/drm/cairo-drm-intel-surface.c b/src/drm/cairo-drm-intel-surface.c index 88f5b8f0c..88f5b8f0c 100755..100644 --- a/src/drm/cairo-drm-intel-surface.c +++ b/src/drm/cairo-drm-intel-surface.c diff --git a/src/drm/cairo-drm-intel.c b/src/drm/cairo-drm-intel.c index d45155ebe..d45155ebe 100755..100644 --- a/src/drm/cairo-drm-intel.c +++ b/src/drm/cairo-drm-intel.c diff --git a/src/drm/cairo-drm-ioctl-private.h b/src/drm/cairo-drm-ioctl-private.h index 4294de2d5..4294de2d5 100755..100644 --- a/src/drm/cairo-drm-ioctl-private.h +++ b/src/drm/cairo-drm-ioctl-private.h diff --git a/src/drm/cairo-drm-private.h b/src/drm/cairo-drm-private.h index 2db7f38d6..2db7f38d6 100755..100644 --- a/src/drm/cairo-drm-private.h +++ b/src/drm/cairo-drm-private.h diff --git a/src/drm/cairo-drm-radeon-private.h b/src/drm/cairo-drm-radeon-private.h index 546126c6f..546126c6f 100755..100644 --- a/src/drm/cairo-drm-radeon-private.h +++ b/src/drm/cairo-drm-radeon-private.h diff --git a/src/drm/cairo-drm-radeon-surface.c b/src/drm/cairo-drm-radeon-surface.c index 6dbddaae4..6dbddaae4 100755..100644 --- a/src/drm/cairo-drm-radeon-surface.c +++ b/src/drm/cairo-drm-radeon-surface.c diff --git a/src/drm/cairo-drm-radeon.c b/src/drm/cairo-drm-radeon.c index a6d22089b..a6d22089b 100755..100644 --- a/src/drm/cairo-drm-radeon.c +++ b/src/drm/cairo-drm-radeon.c diff --git a/src/drm/cairo-drm-surface.c b/src/drm/cairo-drm-surface.c index 8c4dd0ee8..8c4dd0ee8 100755..100644 --- a/src/drm/cairo-drm-surface.c +++ b/src/drm/cairo-drm-surface.c diff --git a/src/drm/cairo-drm.c b/src/drm/cairo-drm.c index 051b79e4f..661e181b6 100755..100644 --- a/src/drm/cairo-drm.c +++ b/src/drm/cairo-drm.c @@ -202,8 +202,7 @@ cairo_drm_device_get (struct udev_device *device) parent = udev_device_get_parent (device); pci_id = get_udev_property (parent, "PCI_ID"); if (pci_id == NULL || sscanf (pci_id, "%x:%x", &vendor_id, &chip_id) != 2) { - dev = (cairo_drm_device_t *) - _cairo_device_create_in_error (CAIRO_STATUS_DEVICE_ERROR); + dev = NULL; goto DONE; } @@ -239,6 +238,7 @@ cairo_drm_device_get (struct udev_device *device) if (fd == -1) { /* XXX more likely to be a permissions issue... */ _cairo_error_throw (CAIRO_STATUS_FILE_NOT_FOUND); + dev = NULL; goto DONE; } @@ -249,7 +249,10 @@ cairo_drm_device_get (struct udev_device *device) DONE: CAIRO_MUTEX_UNLOCK (_cairo_drm_device_mutex); - return &dev->base; + if (dev == NULL) + return _cairo_device_create_in_error (CAIRO_STATUS_DEVICE_ERROR); + else + return &dev->base; } slim_hidden_def (cairo_drm_device_get); |