[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