Displaying 20 results from an estimated 30 matches for "cairo_matrix_t".
2007 Apr 13
0
5 commits - libswfdec/Makefile.am libswfdec/swfdec_color.c libswfdec/swfdec_color.h libswfdec/swfdec_font.c libswfdec/swfdec_loadertarget.c libswfdec/swfdec_movie.h libswfdec/swfdec_pattern.c libswfdec/swfdec_pattern.h libswfdec/swfdec_player.c
...libswfdec/swfdec_color.c b/libswfdec/swfdec_color.c
index 23fda5a..83be167 100644
--- a/libswfdec/swfdec_color.c
+++ b/libswfdec/swfdec_color.c
@@ -250,3 +250,26 @@ swfdec_matrix_get_rotation (const cairo_
   return atan2 (matrix->yx, matrix->xx) * 180 / G_PI;
 }
 
+void
+swfdec_matrix_morph (cairo_matrix_t *dest, const cairo_matrix_t *start,
+    const cairo_matrix_t *end, guint ratio)
+{
+  guint inv_ratio = 65535 - ratio;
+  g_assert (ratio < 65536);
+
+  if (ratio == 0) {
+    *dest = *start;
+    return;
+  }
+  if (ratio == 65535) {
+    *dest = *end;
+    return;
+  }
+  dest->xx = (start...
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
..._DEFINE_TYPE (SwfdecGraphicMovie, swfdec_graphic_movie, SWFDEC_TYPE_MOVIE)
 
@@ -49,6 +50,15 @@ swfdec_graphic_movie_render (SwfdecMovie *movie, cairo_t *cr,
   swfdec_graphic_render (movie->graphic, cr, trans, inval);
 }
 
+static void
+swfdec_graphic_movie_invalidate (SwfdecMovie *movie, const cairo_matrix_t *matrix, gboolean last)
+{
+  SwfdecRect rect;
+
+  swfdec_rect_transform (&rect, &movie->graphic->extents, matrix);
+  swfdec_player_invalidate (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (movie)->context), &rect);
+}
+
 static SwfdecMovie *
 swfdec_graphic_movie_contains (SwfdecMovie *m...
2007 Nov 20
0
4 commits - libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_resource.c test/image test/trace
...ec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 2325138..a3772c8 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -564,6 +564,32 @@ swfdec_movie_rect_local_to_global (SwfdecMovie *movie, SwfdecRect *rect)
 }
 
 void
+swfdec_movie_global_to_local_matrix (SwfdecMovie *movie, cairo_matrix_t *matrix)
+{
+  g_return_if_fail (SWFDEC_IS_MOVIE (movie));
+  g_return_if_fail (matrix != NULL);
+
+  cairo_matrix_init_identity (matrix);
+  while (movie) {
+    cairo_matrix_multiply (matrix, &movie->inverse_matrix, matrix);
+    movie = movie->parent;
+  }
+}
+
+void
+swfdec_movie_loca...
2008 Jan 02
0
3 commits - libswfdec/swfdec_movie.c test/trace
...++ 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, &mat2);
+      cairo_matrix_multiply (&mat, &mat2, &mat);
       cairo_transform (cr, &mat);
-      swfdec_movie_g...
2007 Jun 28
0
Branch 'as' - 4 commits - libswfdec/swfdec_debugger.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_sprite_movie.c test/image
...API)
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index e157437..d7403c5 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -943,10 +943,11 @@ swfdec_movie_new (SwfdecPlayer *player, 
  */
 void
 swfdec_movie_set_static_properties (SwfdecMovie *movie, const cairo_matrix_t *transform,
-    const SwfdecColorTransform *ctrans, guint ratio, int clip_depth, SwfdecEventList *events)
+    const SwfdecColorTransform *ctrans, int ratio, int clip_depth, SwfdecEventList *events)
 {
   g_return_if_fail (SWFDEC_IS_MOVIE (movie));
   g_return_if_fail (clip_depth >= -16384 || c...
2007 Feb 13
0
9 commits - libswfdec/js libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_codec_screen.c libswfdec/swfdec_image.c libswfdec/swfdec_script.c test/Makefile.am test/swfdec_out.c test/swfdec_out.h test/swfedit.c test/swfedit_file.c
...dit_matrix_write (SwfeditToken *token, gpointer data, SwfdecOut *out, gconstpointer hint)
 {
   swfdec_out_put_matrix (out, data);
 }
 
 static gpointer
-swfedit_matrix_read (SwfdecBits *bits, gconstpointer hint)
+swfedit_matrix_read (SwfeditToken *token, SwfdecBits *bits, gconstpointer hint)
 {
   cairo_matrix_t *matrix = g_new (cairo_matrix_t, 1);
 
@@ -186,13 +187,13 @@ swfedit_matrix_read (SwfdecBits *bits, g
 }
 
 static void
-swfedit_ctrans_write (gpointer data, SwfdecOut *out, gconstpointer hint)
+swfedit_ctrans_write (SwfeditToken *token, gpointer data, SwfdecOut *out, gconstpointer hint)
 {
   swfd...
2007 Dec 03
0
12 commits - libswfdec/Makefile.am libswfdec/swfdec_as_strings.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h libswfdec/swfdec_gradient_pattern.c libswfdec/swfdec_gradient_pattern.h libswfdec/swfdec_movie_as_drawing.c libswfdec/swfdec_pattern.c
...sprite_movie_gradient_fill_get_length (colors);
+  a = swfdec_sprite_movie_gradient_fill_get_length (alphas);
+  r = swfdec_sprite_movie_gradient_fill_get_length (ratios);
+  if (c != a || a != r)
+    return -1;
+  return c;
+}
+
+static void
+swfdec_sprite_movie_extract_matrix (SwfdecAsObject *o, cairo_matrix_t *mat)
+{
+  SwfdecAsContext *cx = o->context;
+  SwfdecAsValue val;
+
+  /* FIXME: This function does not call valueOf in the right order */
+  if (swfdec_as_object_get_variable (o, SWFDEC_AS_STR_matrixType, &val)) {
+    const char *s = swfdec_as_value_to_string (cx, &val);
+    cairo_m...
2007 Feb 06
0
Branch 'interpreter' - 15 commits - configure.ac libswfdec/swfdec_audio_event.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_color.c libswfdec/swfdec_color.h libswfdec/swfdec_compiler.c libswfdec/swfdec_image.c libswfdec/swfdec_sprite_movie.c
...st, const SwfdecColorTransform *first);
 unsigned int swfdec_color_apply_transform (unsigned int in,
     const SwfdecColorTransform * trans);
+SwfdecColor swfdec_color_apply_transform_premultiplied (SwfdecColor in, 
+    const SwfdecColorTransform * trans);
 
 void swfdec_matrix_ensure_invertible (cairo_matrix_t *matrix, cairo_matrix_t *inverse);
 double swfdec_matrix_get_xscale (const cairo_matrix_t *matrix);
diff-tree 4f17e493901cc45e47302c4fc74e1f685a32755e (from 469f29442894cdea2116ac801501057266f28727)
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Feb 6 09:50:11 2007 +0100
    Check action...
2007 Jan 26
0
libswfdec/swfdec_image.c libswfdec/swfdec_image.h libswfdec/swfdec_pattern.c
...wfDecoder * s);
 int tag_func_define_bits_jpeg (SwfdecSwfDecoder * s);
diff --git a/libswfdec/swfdec_pattern.c b/libswfdec/swfdec_pattern.c
index 312118f..f8902ef 100644
--- a/libswfdec/swfdec_pattern.c
+++ b/libswfdec/swfdec_pattern.c
@@ -267,7 +267,8 @@ swfdec_image_pattern_paint (SwfdecPatter
   cairo_matrix_t mat;
   cairo_surface_t *surface;
   
-  surface = swfdec_image_get_surface (image->image);
+  surface = swfdec_image_get_surface_for_target (image->image, 
+      cairo_get_target (cr));
   cairo_append_path (cr, (cairo_path_t *) path);
   color = swfdec_color_apply_transform (0xFFFFFFFF, tr...
2007 Feb 06
0
21 commits - configure.ac libswfdec/swfdec_audio_event.c libswfdec/swfdec_bits.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_color.c libswfdec/swfdec_color.h libswfdec/swfdec_compiler.c libswfdec/swfdec_edittext.c libswfdec/swfdec_image.c
...st, const SwfdecColorTransform *first);
 unsigned int swfdec_color_apply_transform (unsigned int in,
     const SwfdecColorTransform * trans);
+SwfdecColor swfdec_color_apply_transform_premultiplied (SwfdecColor in, 
+    const SwfdecColorTransform * trans);
 
 void swfdec_matrix_ensure_invertible (cairo_matrix_t *matrix, cairo_matrix_t *inverse);
 double swfdec_matrix_get_xscale (const cairo_matrix_t *matrix);
diff-tree 4f17e493901cc45e47302c4fc74e1f685a32755e (from 469f29442894cdea2116ac801501057266f28727)
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Feb 6 09:50:11 2007 +0100
    Check action...
2007 Nov 22
0
5 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_debugger.c libswfdec/swfdec_movie.c libswfdec/swfdec_script.c libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_tag.c libswfdec/swfdec_text_field.c
...* @bits: a #SwfdecBits
diff --git a/libswfdec/swfdec_bits.h b/libswfdec/swfdec_bits.h
index defa165..29e9cce 100644
--- a/libswfdec/swfdec_bits.h
+++ b/libswfdec/swfdec_bits.h
@@ -62,9 +62,8 @@ void swfdec_bits_get_color_transform (SwfdecBits * bits,
 void swfdec_bits_get_matrix (SwfdecBits * bits, cairo_matrix_t *matrix, 
     cairo_matrix_t *inverse);
 guint swfdec_bits_skip_bytes (SwfdecBits *bits, guint bytes);
-char *swfdec_bits_get_string (SwfdecBits * bits);
 char *swfdec_bits_get_string_length (SwfdecBits * bits, guint len);
-char *swfdec_bits_get_string_with_version (SwfdecBits *bits, guint version...
2007 Mar 29
0
libswfdec-gtk/swfdec_playback_alsa.c libswfdec/swfdec_audio_event.h libswfdec/swfdec_audio_flv.h libswfdec/swfdec_audio_stream.h libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_buffer.c libswfdec/swfdec_buffer.h libswfdec/swfdec_cache.c
...ec/swfdec_movie.h
+++ b/libswfdec/swfdec_movie.h
@@ -45,7 +45,7 @@ struct _SwfdecContent {
   SwfdecGraphic *	graphic;	/* object to display or NULL */
   int	         	depth;		/* at which depth to display */
   int			clip_depth;	/* clip depth of object */
-  unsigned int		ratio;
+  guint		ratio;
   cairo_matrix_t	transform;
   SwfdecColorTransform	color_transform;
   char *		name;
diff --git a/libswfdec/swfdec_pattern.c b/libswfdec/swfdec_pattern.c
index f2d665a..4e32436 100644
--- a/libswfdec/swfdec_pattern.c
+++ b/libswfdec/swfdec_pattern.c
@@ -15,9 +15,9 @@
 
 static void
 swfdec_matrix_morph (cairo_matr...
2007 Jun 14
0
Branch 'as' - 4 commits - libswfdec/swfdec_edittext_movie.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_sprite.c libswfdec/swfdec_sprite_movie.c player/swfdec_debug_movies.c
...nstruct_queue, movie);
   swfdec_movie_queue_script (movie, SWFDEC_EVENT_LOAD);
diff --git a/libswfdec/swfdec_movie.h b/libswfdec/swfdec_movie.h
index 0b89f52..418236a 100644
--- a/libswfdec/swfdec_movie.h
+++ b/libswfdec/swfdec_movie.h
@@ -54,6 +54,8 @@ struct _SwfdecContent {
   guint			ratio;
   cairo_matrix_t	transform;
   SwfdecColorTransform	color_transform;
+  gboolean		has_transform : 1;
+  gboolean		has_color_transform : 1;
   char *		name;
   SwfdecEventList *	events;
   cairo_operator_t	operator;	/* operator to use when painting (aka blend mode) */   
diff --git a/libswfdec/swfdec_sprite.c b/libs...
2007 Nov 28
0
59 commits - libswfdec-gtk/swfdec_gtk_widget.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_button.c libswfdec/swfdec_button.h libswfdec/swfdec_button_movie.c libswfdec/swfdec_button_movie.h libswfdec/swfdec_event.c
...xtents.y1);
   if (button->events)
     SWFDEC_MOVIE (movie)->events = swfdec_event_list_copy (button->events);
 
@@ -141,7 +143,7 @@ tag_func_define_button_2 (SwfdecSwfDecoder * s, guint tag)
   while (swfdec_bits_peek_u8 (&bits)) {
     SwfdecBits tmp;
     SwfdecBuffer *buffer;
-    cairo_matrix_t trans, inverse;
+    cairo_matrix_t trans;
     SwfdecColorTransform ctrans;
     guint states, gid;
     gboolean has_blend_mode, has_filters;
@@ -172,7 +174,7 @@ tag_func_define_button_2 (SwfdecSwfDecoder * s, guint tag)
         states & (1 << SWFDEC_BUTTON_OVER) ? "OVER " :...
2007 Mar 29
0
Branch 'as' - 9 commits - libswfdec-gtk/swfdec_playback_alsa.c libswfdec/js libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c
...ec/swfdec_movie.h
+++ b/libswfdec/swfdec_movie.h
@@ -45,7 +45,7 @@ struct _SwfdecContent {
   SwfdecGraphic *	graphic;	/* object to display or NULL */
   int	         	depth;		/* at which depth to display */
   int			clip_depth;	/* clip depth of object */
-  unsigned int		ratio;
+  guint		ratio;
   cairo_matrix_t	transform;
   SwfdecColorTransform	color_transform;
   char *		name;
diff --git a/libswfdec/swfdec_pattern.c b/libswfdec/swfdec_pattern.c
index f2d665a..4e32436 100644
--- a/libswfdec/swfdec_pattern.c
+++ b/libswfdec/swfdec_pattern.c
@@ -15,9 +15,9 @@
 
 static void
 swfdec_matrix_morph (cairo_matr...
2007 Dec 11
0
3 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_movie.c test/trace
...e Dec 11 09:53:30 2007 +0100
    add testcase for #13529
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index cf6786a..92a0edb 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -1604,8 +1604,8 @@ swfdec_movie_set_static_properties (SwfdecMovie *movie, const cairo_matrix_t *tr
     movie->rotation = swfdec_matrix_get_rotation (&movie->original_transform);
   }
   if (ctrans) {
-    movie->original_ctrans = *ctrans;
     swfdec_movie_invalidate_last (movie);
+    movie->original_ctrans = *ctrans;
   }
   if (ratio >= 0 && (guint) ratio != mo...
2008 Jan 07
0
12 commits - configure.ac doc/swfdec.types Makefile.am test/crashfinder.c test/dump.c test/Makefile.am test/swfdec-extract.c test/swfdec_out.c test/swfdec_out.h test/swfedit.c test/swfedit_file.c test/swfedit_file.h test/swfedit_list.c test/swfedit_list.h
...yncbits (out);
-  swfdec_out_put_bits (out, req, 5);
-  swfdec_out_put_sbits (out, x0, req);
-  swfdec_out_put_sbits (out, x1, req);
-  swfdec_out_put_sbits (out, y0, req);
-  swfdec_out_put_sbits (out, y1, req);
-  swfdec_out_syncbits (out);
-}
-
-void
-swfdec_out_put_matrix (SwfdecOut *out, const cairo_matrix_t *matrix)
-{
-  int x, y;
-  unsigned int xbits, ybits;
-
-  if (matrix->xx != 1.0 || matrix->yy != 1.0) {
-    swfdec_out_put_bit (out, 1);
-    x = SWFDEC_DOUBLE_TO_FIXED (matrix->xx);
-    y = SWFDEC_DOUBLE_TO_FIXED (matrix->yy);
-    xbits = swfdec_out_sbits_required (x);
-    ybits...
2007 Aug 29
0
15 commits - libswfdec/swfdec_as_strings.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_sprite.c libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_system_as.c
...able
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 02904d0..f6b8f55 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -1098,7 +1098,8 @@ swfdec_movie_new (SwfdecPlayer *player, 
  */
 void
 swfdec_movie_set_static_properties (SwfdecMovie *movie, const cairo_matrix_t *transform,
-    const SwfdecColorTransform *ctrans, int ratio, int clip_depth, SwfdecEventList *events)
+    const SwfdecColorTransform *ctrans, int ratio, int clip_depth, guint blend_mode,
+    SwfdecEventList *events)
 {
   g_return_if_fail (SWFDEC_IS_MOVIE (movie));
   g_return_if_fail (clip_de...
2007 Jun 13
0
Branch 'as' - 6 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_morph_movie.c libswfdec/swfdec_movie_asprops.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_player.c libswfdec/swfdec_sprite.c
...8 @@ swfdec_movie_get_movie_at (SwfdecMovie *
       clip_depth = 0;
       for (clip_walk = clip_walk->prev; clip_walk; clip_walk = clip_walk->prev) {
 	SwfdecMovie *clip = walk->data;
-	if (clip->content->clip_depth) {
+	if (clip->clip_depth) {
 	  double tmpx = x, tmpy = y;
 	  cairo_matrix_transform_point (&clip->inverse_matrix, &tmpx, &tmpy);
 	  if (!swfdec_movie_mouse_in (clip, tmpx, tmpy)) {
-	    SWFDEC_LOG ("skipping depth %d to %d due to clipping", clip->content->depth, clip->content->clip_depth);
-	    clip_depth = child->content->clip...
2007 Nov 20
0
7 commits - libswfdec/swfdec_movie.c libswfdec/swfdec_sprite_movie_as.c test/image
...he movie's matrix before computing the to/from-global matrix
diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index a3772c8..0fbf8a2 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -571,6 +571,8 @@ swfdec_movie_global_to_local_matrix (SwfdecMovie *movie, cairo_matrix_t *matrix)
 
   cairo_matrix_init_identity (matrix);
   while (movie) {
+    if (movie->cache_state >= SWFDEC_MOVIE_INVALID_MATRIX)
+      swfdec_movie_update (movie);
     cairo_matrix_multiply (matrix, &movie->inverse_matrix, matrix);
     movie = movie->parent;
   }
@@ -584,6 +586,...