Displaying 6 results from an estimated 6 matches for "masked_by".
2008 Jan 02
0
3 commits - libswfdec/swfdec_movie.c test/trace
...diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 400ca2e..547155b 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -950,12 +950,20 @@ swfdec_movie_render (SwfdecMovie *movie, cairo_t *cr,
cairo_pattern_t *mask;
if (movie->parent == movie->masked_by->parent) {
cairo_transform (cr, &movie->inverse_matrix);
+ rect = *inval;
} else {
- cairo_matrix_t mat;
+ cairo_matrix_t mat, mat2;
swfdec_movie_local_to_global_matrix (movie, &mat);
+ swfdec_movie_global_to_local_matrix (movie->masked_by, &a...
2007 Nov 20
0
4 commits - libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_resource.c test/image test/trace
...ie->matrix);
+ movie = movie->parent;
+ }
+}
+
+void
swfdec_movie_global_to_local (SwfdecMovie *movie, double *x, double *y)
{
g_return_if_fail (SWFDEC_IS_MOVIE (movie));
@@ -876,7 +902,11 @@ swfdec_movie_render (SwfdecMovie *movie, cairo_t *cr,
if (movie->parent == movie->masked_by->parent) {
cairo_transform (cr, &movie->inverse_matrix);
} else {
- SWFDEC_FIXME ("implement different parents when masking");
+ cairo_matrix_t mat;
+ swfdec_movie_local_to_global_matrix (movie, &mat);
+ cairo_transform (cr, &mat);
+...
2007 Dec 10
0
6 commits - libswfdec/Makefile.am libswfdec/swfdec_as_interpret.c libswfdec/swfdec_color_as.c libswfdec/swfdec_graphic_movie.c libswfdec/swfdec_image_decoder.c libswfdec/swfdec_morph_movie.c libswfdec/swfdec_movie_as_drawing.c
...g_assert (movie->parent);
- swfdec_movie_invalidate (movie->parent);
+ swfdec_movie_invalidate_last (movie->parent);
movie->clip_depth = 0;
} else {
- swfdec_movie_invalidate (movie);
+ swfdec_movie_invalidate_last (movie);
}
if (mask) {
if (mask->masked_by)
@@ -811,13 +811,13 @@ swfdec_sprite_movie_setMask (SwfdecAsContext *cx, SwfdecAsObject *object,
mask->mask_of->masked_by = NULL;
mask->masked_by = NULL;
mask->mask_of = movie;
- swfdec_movie_invalidate (mask);
+ swfdec_movie_invalidate_last (mask);
if (mask-...
2007 Nov 20
0
19 commits - libswfdec/swfdec_audio_event.c libswfdec/swfdec_bits.c libswfdec/swfdec_color.c libswfdec/swfdec_color.h libswfdec/swfdec_flv_decoder.c libswfdec/swfdec_image.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h
...ie, *mask;
+
+ /* yes, this works with regular movies */
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_MOVIE, &movie, "O", &mask);
+
+ if (mask != NULL && !SWFDEC_IS_MOVIE (mask)) {
+ SWFDEC_FIXME ("mask is not a movie, what now?");
+ mask = NULL;
+ }
+ if (movie->masked_by)
+ movie->masked_by->mask_of = NULL;
+ if (movie->mask_of)
+ movie->mask_of->masked_by = NULL;
+ movie->masked_by = mask;
+ movie->mask_of = NULL;
+ if (movie->clip_depth) {
+ g_assert (movie->parent);
+ swfdec_movie_invalidate (movie->parent);
+ mov...
2007 Nov 20
0
7 commits - libswfdec/swfdec_movie.c libswfdec/swfdec_sprite_movie_as.c test/image
...-git a/libswfdec/swfdec_sprite_movie_as.c b/libswfdec/swfdec_sprite_movie_as.c
index 49cc39f..549661c 100644
--- a/libswfdec/swfdec_sprite_movie_as.c
+++ b/libswfdec/swfdec_sprite_movie_as.c
@@ -564,6 +564,13 @@ swfdec_sprite_movie_setMask (SwfdecAsContext *cx, SwfdecAsObject *object,
mask->masked_by = NULL;
mask->mask_of = movie;
swfdec_movie_invalidate (mask);
+ if (mask->clip_depth) {
+ g_assert (mask->parent);
+ swfdec_movie_invalidate (mask->parent);
+ mask->clip_depth = 0;
+ } else {
+ swfdec_movie_invalidate (mask);
+ }
}
}
comm...
2007 Dec 13
0
libswfdec-gtk/swfdec_gtk_player.c libswfdec/swfdec_as_date.c libswfdec/swfdec_audio.c libswfdec/swfdec_audio_event.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_interval.c libswfdec/swfdec_key_as.c libswfdec/swfdec_mouse_as.c libswfdec/swfdec_movie.c
...>parent) {
movie->parent->list = g_list_remove (movie->parent->list, movie);
} else {
- player->roots = g_list_remove (player->roots, movie);
+ player->priv->roots = g_list_remove (player->priv->roots, movie);
}
/* unset masks */
if (movie->masked_by)
@@ -394,7 +396,7 @@ swfdec_movie_destroy (SwfdecMovie *movie)
swfdec_player_remove_all_actions (player, movie);
if (klass->finish_movie)
klass->finish_movie (movie);
- player->movies = g_list_remove (player->movies, movie);
+ player->priv->movies = g_list_remove (pla...