From 7ee7e373f24b0c4604dbf67f7ff82bdb7edc55d1 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sat, 7 Sep 2013 17:27:20 +0100 Subject: [PATCH] sna: Split get_drawable_deltas() In some cases we know we only have a window, and so may skip a conditional. Signed-off-by: Chris Wilson --- src/sna/sna.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/sna/sna.h b/src/sna/sna.h index a4037c68..bd2cd484 100644 --- a/src/sna/sna.h +++ b/src/sna/sna.h @@ -434,15 +434,25 @@ CARD32 sna_render_format_for_depth(int depth); void sna_debug_flush(struct sna *sna); +static inline bool +get_window_deltas(PixmapPtr pixmap, int16_t *x, int16_t *y) +{ +#ifdef COMPOSITE + *x = -pixmap->screen_x; + *y = -pixmap->screen_y; + return pixmap->screen_x | pixmap->screen_y; +#else + *x = *y = 0; + return false; +#endif +} + static inline bool get_drawable_deltas(DrawablePtr drawable, PixmapPtr pixmap, int16_t *x, int16_t *y) { #ifdef COMPOSITE - if (drawable->type == DRAWABLE_WINDOW) { - *x = -pixmap->screen_x; - *y = -pixmap->screen_y; - return pixmap->screen_x | pixmap->screen_y; - } + if (drawable->type == DRAWABLE_WINDOW) + return get_window_deltas(pixmap, x, y); #endif *x = *y = 0; return false;