X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=libview%2Fev-transition-animation.c;h=49d77f79ebf1df70108fbb08b51507b8ec00711c;hb=6d7f952b641bf6ab8b71150a61c3ba23c8bec64b;hp=7e33023e220734c35193a876484c709c889e432d;hpb=d337cbe9269e142f0b70e12a8c58296fe34b4892;p=evince.git diff --git a/libview/ev-transition-animation.c b/libview/ev-transition-animation.c index 7e33023e..49d77f79 100644 --- a/libview/ev-transition-animation.c +++ b/libview/ev-transition-animation.c @@ -15,8 +15,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #include @@ -189,27 +189,14 @@ paint_surface (cairo_t *cr, gdouble alpha, GdkRectangle page_area) { - gint width, height; + cairo_save (cr); gdk_cairo_rectangle (cr, &page_area); cairo_clip (cr); - - width = cairo_image_surface_get_width (surface); - height = cairo_image_surface_get_height (surface); - - cairo_save (cr); - - if (width != page_area.width || height != page_area.height) { - cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_FAST); - cairo_scale (cr, - (gdouble) page_area.width / width, - (gdouble) page_area.height / height); - } - cairo_surface_set_device_offset (surface, x_offset, y_offset); cairo_set_source_surface (cr, surface, 0, 0); - if (alpha == 0.) + if (alpha == 1.) cairo_paint (cr); else cairo_paint_with_alpha (cr, alpha); @@ -240,7 +227,7 @@ ev_transition_animation_split (cairo_t *cr, NULL); if (direction == EV_TRANSITION_DIRECTION_INWARD) { - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); if (alignment == EV_TRANSITION_ALIGNMENT_HORIZONTAL) { cairo_rectangle (cr, @@ -258,9 +245,9 @@ ev_transition_animation_split (cairo_t *cr, cairo_clip (cr); - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); } else { - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); if (alignment == EV_TRANSITION_ALIGNMENT_HORIZONTAL) { cairo_rectangle (cr, @@ -278,7 +265,7 @@ ev_transition_animation_split (cairo_t *cr, cairo_clip (cr); - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); } } @@ -301,7 +288,7 @@ ev_transition_animation_blinds (cairo_t *cr, "alignment", &alignment, NULL); - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); for (i = 0; i < N_BLINDS; i++) { cairo_save (cr); @@ -321,7 +308,7 @@ ev_transition_animation_blinds (cairo_t *cr, } cairo_clip (cr); - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); cairo_restore (cr); } } @@ -346,7 +333,7 @@ ev_transition_animation_box (cairo_t *cr, NULL); if (direction == EV_TRANSITION_DIRECTION_INWARD) { - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); cairo_rectangle (cr, width * progress / 2, @@ -355,9 +342,9 @@ ev_transition_animation_box (cairo_t *cr, height * (1 - progress)); cairo_clip (cr); - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); } else { - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); cairo_rectangle (cr, (width / 2) - (width * progress / 2), @@ -366,7 +353,7 @@ ev_transition_animation_box (cairo_t *cr, height * progress); cairo_clip (cr); - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); } } @@ -389,7 +376,7 @@ ev_transition_animation_wipe (cairo_t *cr, "angle", &angle, NULL); - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); if (angle == 0) { /* left to right */ @@ -421,7 +408,7 @@ ev_transition_animation_wipe (cairo_t *cr, cairo_clip (cr); - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); } static void @@ -435,7 +422,7 @@ ev_transition_animation_dissolve (cairo_t *cr, priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); paint_surface (cr, priv->origin_surface, 0, 0, 1 - progress, page_area); } @@ -460,12 +447,12 @@ ev_transition_animation_push (cairo_t *cr, if (angle == 0) { /* left to right */ - paint_surface (cr, priv->origin_surface, - (width * progress), 0, 0, page_area); - paint_surface (cr, priv->dest_surface, width * (1 - progress), 0, 0, page_area); + paint_surface (cr, priv->origin_surface, - (width * progress), 0, 1., page_area); + paint_surface (cr, priv->dest_surface, width * (1 - progress), 0, 1., page_area); } else { /* top to bottom */ - paint_surface (cr, priv->origin_surface, 0, - (height * progress), 0, page_area); - paint_surface (cr, priv->dest_surface, 0, height * (1 - progress), 0, page_area); + paint_surface (cr, priv->origin_surface, 0, - (height * progress), 1., page_area); + paint_surface (cr, priv->dest_surface, 0, height * (1 - progress), 1., page_area); } } @@ -488,14 +475,14 @@ ev_transition_animation_cover (cairo_t *cr, "angle", &angle, NULL); - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); if (angle == 0) { /* left to right */ - paint_surface (cr, priv->dest_surface, width * (1 - progress), 0, 0, page_area); + paint_surface (cr, priv->dest_surface, width * (1 - progress), 0, 1., page_area); } else { /* top to bottom */ - paint_surface (cr, priv->dest_surface, 0, height * (1 - progress), 0, page_area); + paint_surface (cr, priv->dest_surface, 0, height * (1 - progress), 1., page_area); } } @@ -518,14 +505,14 @@ ev_transition_animation_uncover (cairo_t *cr, "angle", &angle, NULL); - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); if (angle == 0) { /* left to right */ - paint_surface (cr, priv->origin_surface, - (width * progress), 0, 0, page_area); + paint_surface (cr, priv->origin_surface, - (width * progress), 0, 1., page_area); } else { /* top to bottom */ - paint_surface (cr, priv->origin_surface, 0, - (height * progress), 0, page_area); + paint_surface (cr, priv->origin_surface, 0, - (height * progress), 1., page_area); } } @@ -540,7 +527,7 @@ ev_transition_animation_fade (cairo_t *cr, priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); paint_surface (cr, priv->dest_surface, 0, 0, progress, page_area); } @@ -559,7 +546,7 @@ ev_transition_animation_paint (EvTransitionAnimation *animation, if (!priv->dest_surface) { /* animation is still not ready, paint the origin surface */ - paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->origin_surface, 0, 0, 1., page_area); return; } @@ -569,7 +556,7 @@ ev_transition_animation_paint (EvTransitionAnimation *animation, switch (type) { case EV_TRANSITION_EFFECT_REPLACE: /* just paint the destination slide */ - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); break; case EV_TRANSITION_EFFECT_SPLIT: ev_transition_animation_split (cr, animation, priv->effect, progress, page_area); @@ -609,7 +596,7 @@ ev_transition_animation_paint (EvTransitionAnimation *animation, enum_value->value_nick); /* just paint the destination slide */ - paint_surface (cr, priv->dest_surface, 0, 0, 0, page_area); + paint_surface (cr, priv->dest_surface, 0, 0, 1., page_area); } } }