[Swfdec-commits] 3 commits - swfdec/swfdec_image.c swfdec/swfdec_pattern.c

Benjamin Otte company at kemper.freedesktop.org
Fri Apr 11 07:07:52 PDT 2008


 swfdec/swfdec_image.c   |   39 ++++++++++++++++++---------------------
 swfdec/swfdec_pattern.c |   12 ------------
 2 files changed, 18 insertions(+), 33 deletions(-)

New commits:
commit 6d3e6f2eb20e69066a90b8234b1de52394b18879
Author: Benjamin Otte <otte at gnome.org>
Date:   Fri Apr 11 11:01:58 2008 +0200

    move merge_alpha function, so we don't require a declaration anymore
    
    style over substance \o/

diff --git a/swfdec/swfdec_image.c b/swfdec/swfdec_image.c
index 88865d3..32a7fa7 100644
--- a/swfdec/swfdec_image.c
+++ b/swfdec/swfdec_image.c
@@ -34,9 +34,6 @@
 #include "swfdec_renderer_internal.h"
 #include "swfdec_swf_decoder.h"
 
-static void merge_alpha (SwfdecImage * image, unsigned char *image_data,
-    unsigned char *alpha);
-
 G_DEFINE_TYPE (SwfdecImage, swfdec_image, SWFDEC_TYPE_CHARACTER)
 
 static void
@@ -251,6 +248,23 @@ tag_func_define_bits_jpeg_3 (SwfdecSwfDecoder * s, guint tag)
   return SWFDEC_STATUS_OK;
 }
 
+static void
+merge_alpha (SwfdecImage * image, unsigned char *image_data,
+    unsigned char *alpha)
+{
+  int x, y;
+  unsigned char *p;
+
+  for (y = 0; y < image->height; y++) {
+    p = image_data + y * image->width * 4;
+    for (x = 0; x < image->width; x++) {
+      p[SWFDEC_COLOR_INDEX_ALPHA] = *alpha;
+      p += 4;
+      alpha++;
+    }
+  }
+}
+
 static cairo_surface_t *
 swfdec_image_jpeg3_load (SwfdecImage *image, SwfdecRenderer *renderer)
 {
@@ -290,23 +304,6 @@ swfdec_image_jpeg3_load (SwfdecImage *image, SwfdecRenderer *renderer)
       CAIRO_FORMAT_ARGB32, image->width, image->height, 4 * image->width);
 }
 
-static void
-merge_alpha (SwfdecImage * image, unsigned char *image_data,
-    unsigned char *alpha)
-{
-  int x, y;
-  unsigned char *p;
-
-  for (y = 0; y < image->height; y++) {
-    p = image_data + y * image->width * 4;
-    for (x = 0; x < image->width; x++) {
-      p[SWFDEC_COLOR_INDEX_ALPHA] = *alpha;
-      p += 4;
-      alpha++;
-    }
-  }
-}
-
 static cairo_surface_t *
 swfdec_image_lossless_load (SwfdecImage *image, SwfdecRenderer *renderer)
 {
commit faf2a75c6b6f7ad053d16dd04734f6852faf4d83
Author: Benjamin Otte <otte at gnome.org>
Date:   Fri Apr 11 10:54:06 2008 +0200

    enable CAIRO_EXTEND_PAD on images
    
    CAIRO_EXTEND_PAD is only supported since Cairo 1.5.something, so anyone running
    Cairo 1.4 will not be happy by the visual output. I'll update the required
    Cairo version to 1.6 once it is released.

diff --git a/swfdec/swfdec_pattern.c b/swfdec/swfdec_pattern.c
index b642293..e0f5a1e 100644
--- a/swfdec/swfdec_pattern.c
+++ b/swfdec/swfdec_pattern.c
@@ -328,13 +328,7 @@ swfdec_pattern_do_parse (SwfdecBits *bits, SwfdecSwfDecoder *dec, gboolean rgba)
       if (paint_style_type == 0x40 || paint_style_type == 0x42) {
 	SWFDEC_IMAGE_PATTERN (pattern)->extend = CAIRO_EXTEND_REPEAT;
       } else {
-#if 0
-	/* not implemented yet in cairo */
 	SWFDEC_IMAGE_PATTERN (pattern)->extend = CAIRO_EXTEND_PAD;
-#else
-	SWFDEC_FIXME ("CAIRO_EXTEND_PAD is not yet implemented");
-	SWFDEC_IMAGE_PATTERN (pattern)->extend = CAIRO_EXTEND_NONE;
-#endif
       }
       if (paint_style_type == 0x40 || paint_style_type == 0x41) {
 	SWFDEC_IMAGE_PATTERN (pattern)->filter = CAIRO_FILTER_BILINEAR;
@@ -474,13 +468,7 @@ swfdec_pattern_parse_morph (SwfdecBits *bits, SwfdecSwfDecoder *dec)
       if (paint_style_type == 0x40 || paint_style_type == 0x42) {
 	SWFDEC_IMAGE_PATTERN (pattern)->extend = CAIRO_EXTEND_REPEAT;
       } else {
-#if 0
-	/* not implemented yet in cairo */
 	SWFDEC_IMAGE_PATTERN (pattern)->extend = CAIRO_EXTEND_PAD;
-#else
-	SWFDEC_FIXME ("CAIRO_EXTEND_PAD is not yet implemented");
-	SWFDEC_IMAGE_PATTERN (pattern)->extend = CAIRO_EXTEND_NONE;
-#endif
       }
       if (paint_style_type == 0x40 || paint_style_type == 0x41) {
 	SWFDEC_IMAGE_PATTERN (pattern)->filter = CAIRO_FILTER_BILINEAR;
commit a1489b6ba202631ca9d35de117a1067b5de5c673
Author: Benjamin Otte <otte at gnome.org>
Date:   Fri Apr 11 10:50:43 2008 +0200

    JPEG3 images are transparent

diff --git a/swfdec/swfdec_image.c b/swfdec/swfdec_image.c
index 47fd185..88865d3 100644
--- a/swfdec/swfdec_image.c
+++ b/swfdec/swfdec_image.c
@@ -287,7 +287,7 @@ swfdec_image_jpeg3_load (SwfdecImage *image, SwfdecRenderer *renderer)
   SWFDEC_LOG ("  height = %d", image->height);
 
   return swfdec_image_create_surface_for_data (renderer, data, 
-      CAIRO_FORMAT_RGB24, image->width, image->height, 4 * image->width);
+      CAIRO_FORMAT_ARGB32, image->width, image->height, 4 * image->width);
 }
 
 static void


More information about the Swfdec-commits mailing list