diff options
author | Benjamin Otte <otte@redhat.com> | 2011-10-13 23:17:57 -0700 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-10-15 00:06:22 -0700 |
commit | 90501e6c5b0e4aa911fad1c02adb3efc90b8582a (patch) | |
tree | 29e1527c01caed6f0a23bb4aca5405787dd8be6f | |
parent | 239ca50fa8020d19b338eb72128b34390f335132 (diff) |
colored: Don't use the get_cache() function
-rw-r--r-- | libgame/game-colored.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/libgame/game-colored.c b/libgame/game-colored.c index 5d66114..106b8cb 100644 --- a/libgame/game-colored.c +++ b/libgame/game-colored.c @@ -127,17 +127,20 @@ static void game_colored_draw (GameGraphic *graphic, cairo_t *cr, const GameRectangle *area) { GameColored *colored = GAME_COLORED (graphic); + cairo_pattern_t *mask; if (colored->base) game_graphic_draw_area (colored->base, cr, area); + game_color_as_cairo_source (cr, &colored->color); if (colored->mask) { - cairo_pattern_t *mask = game_graphic_get_cache (colored->mask, cr); - if (mask) { - cairo_mask (cr, mask); - } else { - cairo_paint (cr); - } + game_rectangle_path (cr, &colored->mask->rect); + cairo_clip (cr); + cairo_push_group (cr); + game_graphic_draw (colored->mask, cr); + mask = cairo_pop_group (cr); + cairo_mask (cr, mask); + cairo_pattern_destroy (mask); } else { cairo_paint (cr); } |