summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-03-08 10:51:05 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-03-08 11:18:01 +0000
commit2ae3cd36ae98fa43716ef482e70364e7563cf1ea (patch)
treec846caaa177b07349fe5d63d025bae85ffea2eaa /src
parent8b21659ef2f9cec799b8215a2e5481667bc744bf (diff)
sna: Tidy marking pixmap->clear for CompositeRectangles
Reduce the two unsightly checks into one. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/sna/sna_composite.c58
1 files changed, 21 insertions, 37 deletions
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index 38ff99de..a610e7cd 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -781,45 +781,29 @@ sna_composite_rectangles(CARD8 op,
/* Clearing a pixmap after creation is a common operation, so take
* advantage and reduce further damage operations.
*/
+ if (region.data == NULL &&
+ region.extents.x2 - region.extents.x1 == pixmap->drawable.width &&
+ region.extents.y2 - region.extents.y1 == pixmap->drawable.height) {
+ sna_damage_all(&priv->gpu_damage,
+ pixmap->drawable.width, pixmap->drawable.height);
+ priv->undamaged = false;
+ if (op <= PictOpSrc) {
+ priv->clear = true;
+ priv->clear_color = 0;
+ if (op == PictOpSrc)
+ sna_get_pixel_from_rgba(&priv->clear_color,
+ color->red,
+ color->green,
+ color->blue,
+ color->alpha,
+ dst->format);
+ DBG(("%s: marking clear [%08x]\n",
+ __FUNCTION__, priv->clear_color));
+ }
+ }
if (!DAMAGE_IS_ALL(priv->gpu_damage)) {
assert_pixmap_contains_box(pixmap, RegionExtents(&region));
-
- if (region.data == NULL &&
- region.extents.x2 - region.extents.x1 == pixmap->drawable.width &&
- region.extents.y2 - region.extents.y1 == pixmap->drawable.height) {
- sna_damage_all(&priv->gpu_damage,
- pixmap->drawable.width, pixmap->drawable.height);
- priv->undamaged = false;
- if (op <= PictOpSrc) {
- priv->clear = true;
- priv->clear_color = 0;
- if (op == PictOpSrc)
- sna_get_pixel_from_rgba(&priv->clear_color,
- color->red,
- color->green,
- color->blue,
- color->alpha,
- dst->format);
- DBG(("%s: marking clear [%08x]\n",
- __FUNCTION__, priv->clear_color));
- }
- } else
- sna_damage_add(&priv->gpu_damage, &region);
- } else if (op <= PictOpSrc &&
- region.data == NULL &&
- region.extents.x2 - region.extents.x1 == pixmap->drawable.width &&
- region.extents.y2 - region.extents.y1 == pixmap->drawable.height) {
- priv->clear = true;
- priv->clear_color = 0;
- if (op == PictOpSrc)
- sna_get_pixel_from_rgba(&priv->clear_color,
- color->red,
- color->green,
- color->blue,
- color->alpha,
- dst->format);
- DBG(("%s: marking clear [%08x]\n",
- __FUNCTION__, priv->clear_color));
+ sna_damage_add(&priv->gpu_damage, &region);
}
goto done;