diff options
author | Benjamin Otte <otte@gnome.org> | 2007-12-18 21:19:32 +0100 |
---|---|---|
committer | Benjamin Otte <otte@gnome.org> | 2007-12-18 21:19:32 +0100 |
commit | 81516c8555ce1030ec76bee3180b600d5007f30c (patch) | |
tree | 0d96e38891602d0abcf101f90b4f368394452ea0 | |
parent | 0fa448732616c019383abb5fa8f291f8f0879df5 (diff) |
clip resize region to surface size
-rw-r--r-- | swfdec-directfb/swfdec_directfb_renderer.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/swfdec-directfb/swfdec_directfb_renderer.c b/swfdec-directfb/swfdec_directfb_renderer.c index 69b0953..4ee98cc 100644 --- a/swfdec-directfb/swfdec_directfb_renderer.c +++ b/swfdec-directfb/swfdec_directfb_renderer.c @@ -94,7 +94,19 @@ static void swfdec_dfb_renderer_invalidate_cb (SwfdecPlayer *player, const SwfdecRectangle *extents, const SwfdecRectangle *rects, guint n_rects, SwfdecDfbRenderer *renderer) { - swfdec_dfb_renderer_queue_repaint (renderer, extents); + SwfdecRectangle tmp = *extents; + + if (tmp.x + tmp.width > renderer->width) { + if (tmp.x >= renderer->width) + return; + tmp.width = renderer->width - tmp.x; + } + if (tmp.y + tmp.height > renderer->height) { + if (tmp.y >= renderer->height) + return; + tmp.height = renderer->height - tmp.y; + } + swfdec_dfb_renderer_queue_repaint (renderer, &tmp); } SwfdecDfbRenderer * |