diff options
62 files changed, 195 insertions, 0 deletions
diff --git a/test/image/Makefile.am b/test/image/Makefile.am index 3d0be09f..65c96918 100644 --- a/test/image/Makefile.am +++ b/test/image/Makefile.am @@ -93,6 +93,67 @@ EXTRA_DIST = \ bitmapFill-update-8.swf \ bitmapFill-update-8.swf.png \ bitmapFill-update.as \ + blend-mode.c \ + blend-mode-0-7.swf \ + blend-mode-0-7.swf.png \ + blend-mode-0-8.swf \ + blend-mode-0-8.swf.png \ + blend-mode-15-7.swf \ + blend-mode-15-7.swf.png \ + blend-mode-15-8.swf \ + blend-mode-15-8.swf.png \ + blend-mode-add-7.swf \ + blend-mode-add-7.swf.png \ + blend-mode-add-8.swf \ + blend-mode-add-8.swf.png \ + blend-mode-alpha-7.swf \ + blend-mode-alpha-7.swf.png \ + blend-mode-alpha-8.swf \ + blend-mode-alpha-8.swf.png \ + blend-mode-darken-7.swf \ + blend-mode-darken-7.swf.png \ + blend-mode-darken-8.swf \ + blend-mode-darken-8.swf.png \ + blend-mode-difference-7.swf \ + blend-mode-difference-7.swf.png \ + blend-mode-difference-8.swf \ + blend-mode-difference-8.swf.png \ + blend-mode-erase-7.swf \ + blend-mode-erase-7.swf.png \ + blend-mode-erase-8.swf \ + blend-mode-erase-8.swf.png \ + blend-mode-hardlight-7.swf \ + blend-mode-hardlight-7.swf.png \ + blend-mode-hardlight-8.swf \ + blend-mode-hardlight-8.swf.png \ + blend-mode-inverse-7.swf \ + blend-mode-inverse-7.swf.png \ + blend-mode-inverse-8.swf \ + blend-mode-inverse-8.swf.png \ + blend-mode-layer-7.swf \ + blend-mode-layer-7.swf.png \ + blend-mode-layer-8.swf \ + blend-mode-layer-8.swf.png \ + blend-mode-lighten-7.swf \ + blend-mode-lighten-7.swf.png \ + blend-mode-lighten-8.swf \ + blend-mode-lighten-8.swf.png \ + blend-mode-multiply-7.swf \ + blend-mode-multiply-7.swf.png \ + blend-mode-multiply-8.swf \ + blend-mode-multiply-8.swf.png \ + blend-mode-normal-7.swf \ + blend-mode-normal-7.swf.png \ + blend-mode-normal-8.swf \ + blend-mode-normal-8.swf.png \ + blend-mode-overlay-7.swf \ + blend-mode-overlay-7.swf.png \ + blend-mode-overlay-8.swf \ + blend-mode-overlay-8.swf.png \ + blend-mode-screen-7.swf \ + blend-mode-screen-7.swf.png \ + blend-mode-screen-8.swf \ + blend-mode-screen-8.swf.png \ BlurFilter-rendering-5.swf \ BlurFilter-rendering-5.swf.png \ BlurFilter-rendering-6.swf \ diff --git a/test/image/blend-mode-0-7.swf b/test/image/blend-mode-0-7.swf Binary files differnew file mode 100644 index 00000000..ab4e919a --- /dev/null +++ b/test/image/blend-mode-0-7.swf diff --git a/test/image/blend-mode-0-7.swf.png b/test/image/blend-mode-0-7.swf.png Binary files differnew file mode 100644 index 00000000..1a8b43d6 --- /dev/null +++ b/test/image/blend-mode-0-7.swf.png diff --git a/test/image/blend-mode-0-8.swf b/test/image/blend-mode-0-8.swf Binary files differnew file mode 100644 index 00000000..4980ad95 --- /dev/null +++ b/test/image/blend-mode-0-8.swf diff --git a/test/image/blend-mode-0-8.swf.png b/test/image/blend-mode-0-8.swf.png Binary files differnew file mode 100644 index 00000000..d100dd7c --- /dev/null +++ b/test/image/blend-mode-0-8.swf.png diff --git a/test/image/blend-mode-15-7.swf b/test/image/blend-mode-15-7.swf Binary files differnew file mode 100644 index 00000000..52fcc48f --- /dev/null +++ b/test/image/blend-mode-15-7.swf diff --git a/test/image/blend-mode-15-7.swf.png b/test/image/blend-mode-15-7.swf.png Binary files differnew file mode 100644 index 00000000..ec5d4869 --- /dev/null +++ b/test/image/blend-mode-15-7.swf.png diff --git a/test/image/blend-mode-15-8.swf b/test/image/blend-mode-15-8.swf Binary files differnew file mode 100644 index 00000000..e4a05e6a --- /dev/null +++ b/test/image/blend-mode-15-8.swf diff --git a/test/image/blend-mode-15-8.swf.png b/test/image/blend-mode-15-8.swf.png Binary files differnew file mode 100644 index 00000000..49167eb4 --- /dev/null +++ b/test/image/blend-mode-15-8.swf.png diff --git a/test/image/blend-mode-add-7.swf b/test/image/blend-mode-add-7.swf Binary files differnew file mode 100644 index 00000000..ad33ae5c --- /dev/null +++ b/test/image/blend-mode-add-7.swf diff --git a/test/image/blend-mode-add-7.swf.png b/test/image/blend-mode-add-7.swf.png Binary files differnew file mode 100644 index 00000000..ec6e84b5 --- /dev/null +++ b/test/image/blend-mode-add-7.swf.png diff --git a/test/image/blend-mode-add-8.swf b/test/image/blend-mode-add-8.swf Binary files differnew file mode 100644 index 00000000..9432f604 --- /dev/null +++ b/test/image/blend-mode-add-8.swf diff --git a/test/image/blend-mode-add-8.swf.png b/test/image/blend-mode-add-8.swf.png Binary files differnew file mode 100644 index 00000000..c9520f09 --- /dev/null +++ b/test/image/blend-mode-add-8.swf.png diff --git a/test/image/blend-mode-alpha-7.swf b/test/image/blend-mode-alpha-7.swf Binary files differnew file mode 100644 index 00000000..a0c3c3d7 --- /dev/null +++ b/test/image/blend-mode-alpha-7.swf diff --git a/test/image/blend-mode-alpha-7.swf.png b/test/image/blend-mode-alpha-7.swf.png Binary files differnew file mode 100644 index 00000000..55f8abd9 --- /dev/null +++ b/test/image/blend-mode-alpha-7.swf.png diff --git a/test/image/blend-mode-alpha-8.swf b/test/image/blend-mode-alpha-8.swf Binary files differnew file mode 100644 index 00000000..9f7bdfc2 --- /dev/null +++ b/test/image/blend-mode-alpha-8.swf diff --git a/test/image/blend-mode-alpha-8.swf.png b/test/image/blend-mode-alpha-8.swf.png Binary files differnew file mode 100644 index 00000000..d64defd4 --- /dev/null +++ b/test/image/blend-mode-alpha-8.swf.png diff --git a/test/image/blend-mode-darken-7.swf b/test/image/blend-mode-darken-7.swf Binary files differnew file mode 100644 index 00000000..40f8ff06 --- /dev/null +++ b/test/image/blend-mode-darken-7.swf diff --git a/test/image/blend-mode-darken-7.swf.png b/test/image/blend-mode-darken-7.swf.png Binary files differnew file mode 100644 index 00000000..9fda92e3 --- /dev/null +++ b/test/image/blend-mode-darken-7.swf.png diff --git a/test/image/blend-mode-darken-8.swf b/test/image/blend-mode-darken-8.swf Binary files differnew file mode 100644 index 00000000..abab2107 --- /dev/null +++ b/test/image/blend-mode-darken-8.swf diff --git a/test/image/blend-mode-darken-8.swf.png b/test/image/blend-mode-darken-8.swf.png Binary files differnew file mode 100644 index 00000000..05a7ccad --- /dev/null +++ b/test/image/blend-mode-darken-8.swf.png diff --git a/test/image/blend-mode-difference-7.swf b/test/image/blend-mode-difference-7.swf Binary files differnew file mode 100644 index 00000000..fdceadb7 --- /dev/null +++ b/test/image/blend-mode-difference-7.swf diff --git a/test/image/blend-mode-difference-7.swf.png b/test/image/blend-mode-difference-7.swf.png Binary files differnew file mode 100644 index 00000000..b5faa9ee --- /dev/null +++ b/test/image/blend-mode-difference-7.swf.png diff --git a/test/image/blend-mode-difference-8.swf b/test/image/blend-mode-difference-8.swf Binary files differnew file mode 100644 index 00000000..dda194ef --- /dev/null +++ b/test/image/blend-mode-difference-8.swf diff --git a/test/image/blend-mode-difference-8.swf.png b/test/image/blend-mode-difference-8.swf.png Binary files differnew file mode 100644 index 00000000..be4f9c2f --- /dev/null +++ b/test/image/blend-mode-difference-8.swf.png diff --git a/test/image/blend-mode-erase-7.swf b/test/image/blend-mode-erase-7.swf Binary files differnew file mode 100644 index 00000000..631ee269 --- /dev/null +++ b/test/image/blend-mode-erase-7.swf diff --git a/test/image/blend-mode-erase-7.swf.png b/test/image/blend-mode-erase-7.swf.png Binary files differnew file mode 100644 index 00000000..7a47373d --- /dev/null +++ b/test/image/blend-mode-erase-7.swf.png diff --git a/test/image/blend-mode-erase-8.swf b/test/image/blend-mode-erase-8.swf Binary files differnew file mode 100644 index 00000000..d71bfd8e --- /dev/null +++ b/test/image/blend-mode-erase-8.swf diff --git a/test/image/blend-mode-erase-8.swf.png b/test/image/blend-mode-erase-8.swf.png Binary files differnew file mode 100644 index 00000000..4e8d0bed --- /dev/null +++ b/test/image/blend-mode-erase-8.swf.png diff --git a/test/image/blend-mode-hardlight-7.swf b/test/image/blend-mode-hardlight-7.swf Binary files differnew file mode 100644 index 00000000..56ed34a3 --- /dev/null +++ b/test/image/blend-mode-hardlight-7.swf diff --git a/test/image/blend-mode-hardlight-7.swf.png b/test/image/blend-mode-hardlight-7.swf.png Binary files differnew file mode 100644 index 00000000..4f271825 --- /dev/null +++ b/test/image/blend-mode-hardlight-7.swf.png diff --git a/test/image/blend-mode-hardlight-8.swf b/test/image/blend-mode-hardlight-8.swf Binary files differnew file mode 100644 index 00000000..2d99358c --- /dev/null +++ b/test/image/blend-mode-hardlight-8.swf diff --git a/test/image/blend-mode-hardlight-8.swf.png b/test/image/blend-mode-hardlight-8.swf.png Binary files differnew file mode 100644 index 00000000..f1d4c98a --- /dev/null +++ b/test/image/blend-mode-hardlight-8.swf.png diff --git a/test/image/blend-mode-inverse-7.swf b/test/image/blend-mode-inverse-7.swf Binary files differnew file mode 100644 index 00000000..c3383f3e --- /dev/null +++ b/test/image/blend-mode-inverse-7.swf diff --git a/test/image/blend-mode-inverse-7.swf.png b/test/image/blend-mode-inverse-7.swf.png Binary files differnew file mode 100644 index 00000000..78faaa66 --- /dev/null +++ b/test/image/blend-mode-inverse-7.swf.png diff --git a/test/image/blend-mode-inverse-8.swf b/test/image/blend-mode-inverse-8.swf Binary files differnew file mode 100644 index 00000000..185daf34 --- /dev/null +++ b/test/image/blend-mode-inverse-8.swf diff --git a/test/image/blend-mode-inverse-8.swf.png b/test/image/blend-mode-inverse-8.swf.png Binary files differnew file mode 100644 index 00000000..0567aeab --- /dev/null +++ b/test/image/blend-mode-inverse-8.swf.png diff --git a/test/image/blend-mode-layer-7.swf b/test/image/blend-mode-layer-7.swf Binary files differnew file mode 100644 index 00000000..57fcbccc --- /dev/null +++ b/test/image/blend-mode-layer-7.swf diff --git a/test/image/blend-mode-layer-7.swf.png b/test/image/blend-mode-layer-7.swf.png Binary files differnew file mode 100644 index 00000000..1d533e31 --- /dev/null +++ b/test/image/blend-mode-layer-7.swf.png diff --git a/test/image/blend-mode-layer-8.swf b/test/image/blend-mode-layer-8.swf Binary files differnew file mode 100644 index 00000000..97fe635b --- /dev/null +++ b/test/image/blend-mode-layer-8.swf diff --git a/test/image/blend-mode-layer-8.swf.png b/test/image/blend-mode-layer-8.swf.png Binary files differnew file mode 100644 index 00000000..1dac4449 --- /dev/null +++ b/test/image/blend-mode-layer-8.swf.png diff --git a/test/image/blend-mode-lighten-7.swf b/test/image/blend-mode-lighten-7.swf Binary files differnew file mode 100644 index 00000000..2eab3129 --- /dev/null +++ b/test/image/blend-mode-lighten-7.swf diff --git a/test/image/blend-mode-lighten-7.swf.png b/test/image/blend-mode-lighten-7.swf.png Binary files differnew file mode 100644 index 00000000..891460cd --- /dev/null +++ b/test/image/blend-mode-lighten-7.swf.png diff --git a/test/image/blend-mode-lighten-8.swf b/test/image/blend-mode-lighten-8.swf Binary files differnew file mode 100644 index 00000000..542acf2f --- /dev/null +++ b/test/image/blend-mode-lighten-8.swf diff --git a/test/image/blend-mode-lighten-8.swf.png b/test/image/blend-mode-lighten-8.swf.png Binary files differnew file mode 100644 index 00000000..f9f4400c --- /dev/null +++ b/test/image/blend-mode-lighten-8.swf.png diff --git a/test/image/blend-mode-multiply-7.swf b/test/image/blend-mode-multiply-7.swf Binary files differnew file mode 100644 index 00000000..3476ad2f --- /dev/null +++ b/test/image/blend-mode-multiply-7.swf diff --git a/test/image/blend-mode-multiply-7.swf.png b/test/image/blend-mode-multiply-7.swf.png Binary files differnew file mode 100644 index 00000000..4cc21020 --- /dev/null +++ b/test/image/blend-mode-multiply-7.swf.png diff --git a/test/image/blend-mode-multiply-8.swf b/test/image/blend-mode-multiply-8.swf Binary files differnew file mode 100644 index 00000000..f451edeb --- /dev/null +++ b/test/image/blend-mode-multiply-8.swf diff --git a/test/image/blend-mode-multiply-8.swf.png b/test/image/blend-mode-multiply-8.swf.png Binary files differnew file mode 100644 index 00000000..69fb02d0 --- /dev/null +++ b/test/image/blend-mode-multiply-8.swf.png diff --git a/test/image/blend-mode-normal-7.swf b/test/image/blend-mode-normal-7.swf Binary files differnew file mode 100644 index 00000000..87202ee5 --- /dev/null +++ b/test/image/blend-mode-normal-7.swf diff --git a/test/image/blend-mode-normal-7.swf.png b/test/image/blend-mode-normal-7.swf.png Binary files differnew file mode 100644 index 00000000..d893ffef --- /dev/null +++ b/test/image/blend-mode-normal-7.swf.png diff --git a/test/image/blend-mode-normal-8.swf b/test/image/blend-mode-normal-8.swf Binary files differnew file mode 100644 index 00000000..63666bdb --- /dev/null +++ b/test/image/blend-mode-normal-8.swf diff --git a/test/image/blend-mode-normal-8.swf.png b/test/image/blend-mode-normal-8.swf.png Binary files differnew file mode 100644 index 00000000..b12cb898 --- /dev/null +++ b/test/image/blend-mode-normal-8.swf.png diff --git a/test/image/blend-mode-overlay-7.swf b/test/image/blend-mode-overlay-7.swf Binary files differnew file mode 100644 index 00000000..a6cf9277 --- /dev/null +++ b/test/image/blend-mode-overlay-7.swf diff --git a/test/image/blend-mode-overlay-7.swf.png b/test/image/blend-mode-overlay-7.swf.png Binary files differnew file mode 100644 index 00000000..3d39a60b --- /dev/null +++ b/test/image/blend-mode-overlay-7.swf.png diff --git a/test/image/blend-mode-overlay-8.swf b/test/image/blend-mode-overlay-8.swf Binary files differnew file mode 100644 index 00000000..f86d0b26 --- /dev/null +++ b/test/image/blend-mode-overlay-8.swf diff --git a/test/image/blend-mode-overlay-8.swf.png b/test/image/blend-mode-overlay-8.swf.png Binary files differnew file mode 100644 index 00000000..f307268e --- /dev/null +++ b/test/image/blend-mode-overlay-8.swf.png diff --git a/test/image/blend-mode-screen-7.swf b/test/image/blend-mode-screen-7.swf Binary files differnew file mode 100644 index 00000000..c013c30c --- /dev/null +++ b/test/image/blend-mode-screen-7.swf diff --git a/test/image/blend-mode-screen-7.swf.png b/test/image/blend-mode-screen-7.swf.png Binary files differnew file mode 100644 index 00000000..a05642f9 --- /dev/null +++ b/test/image/blend-mode-screen-7.swf.png diff --git a/test/image/blend-mode-screen-8.swf b/test/image/blend-mode-screen-8.swf Binary files differnew file mode 100644 index 00000000..e57e0993 --- /dev/null +++ b/test/image/blend-mode-screen-8.swf diff --git a/test/image/blend-mode-screen-8.swf.png b/test/image/blend-mode-screen-8.swf.png Binary files differnew file mode 100644 index 00000000..b7169a99 --- /dev/null +++ b/test/image/blend-mode-screen-8.swf.png diff --git a/test/image/blend-mode.c b/test/image/blend-mode.c new file mode 100644 index 00000000..c302cc48 --- /dev/null +++ b/test/image/blend-mode.c @@ -0,0 +1,134 @@ +/* gcc -Wall `pkg-config --libs --cflags libming glib-2.0` blend-mode.c -o blend-mode && ./blend-mode + */ + +#include <ming.h> +#include <glib.h> + +#define SIZE 240 + +const char *modes[] = { + "0", + "normal", + "layer", + "multiply", + "screen", + "lighten", + "darken", + "difference", + "add", + "subtract", + "inverse", + "alpha", + "erase", + "overlay", + "hardlight", + "15" +}; + +SWFBitmap +create_yellow_image (guint w, guint h) +{ + guint32 *data; + guint x, y; + SWFBitmap ret; + + data = g_malloc (w * h * 4); + for (y = 0; y < h; y++) { + /* get 15 steps of 10 pixel high lines fading in yellow */ + guint32 pixel = 255 / 15 * (y * 16 / h); + pixel *= 0x01010100; + for (x = 0; x < w; x++) { + data[y * w + x] = pixel; + } + } + ret = newSWFBitmap_fromData ((guint8 *) data, w, h, TRUE); + g_free (data); + return ret; +} + +SWFBitmap +create_teal_image (guint w, guint h) +{ + guint32 *data; + guint x, y; + SWFBitmap ret; + + data = g_malloc (w * h * 4); + for (y = 0; y < h; y++) { + /* get 15 steps of 10 pixel high lines fading in yellow */ + for (x = 0; x < w; x++) { + guint32 pixel = 255 / 15 * (x * 16 / w); + pixel *= 0x01000101; + data[y * w + x] = pixel; + } + } + ret = newSWFBitmap_fromData ((guint8 *) data, w, h, TRUE); + g_free (data); + return ret; +} + +static SWFDisplayItem +add_images (SWFMovie movie, int blend_mode) +{ + SWFBitmap bitmap; + SWFShape shape; + SWFMovieClip clip; + SWFDisplayItem item; + + clip = newSWFMovieClip (); + + bitmap = create_yellow_image (SIZE, SIZE); + shape = newSWFShapeFromBitmap (bitmap, SWFFILL_CLIPPED_BITMAP); + item = SWFMovieClip_add (clip, (SWFBlock) shape); + SWFDisplayItem_setDepth (item, 1); + + bitmap = create_teal_image (SIZE, SIZE); + shape = newSWFShapeFromBitmap (bitmap, SWFFILL_CLIPPED_BITMAP); + item = SWFMovieClip_add (clip, (SWFBlock) shape); + SWFDisplayItem_setDepth (item, 2); + SWFDisplayItem_setBlendMode (item, blend_mode); + + SWFMovieClip_nextFrame (clip); + + item = SWFMovie_add (movie, (SWFBlock) clip); + SWFDisplayItem_setBlendMode (item, SWFBLEND_MODE_LAYER); + + return item; +} + +static void +do_movie (int version) +{ + SWFMovie movie; + char *real_name; + int mode; + + for (mode = 0; mode < G_N_ELEMENTS (modes); mode++) { + movie = newSWFMovieWithVersion (version); + movie = newSWFMovie(); + SWFMovie_setRate (movie, 1); + SWFMovie_setDimension (movie, SIZE, SIZE); + SWFMovie_setBackground (movie, 0, 0, 0); + + add_images (movie, mode); + SWFMovie_nextFrame (movie); + + real_name = g_strdup_printf ("blend-mode-%s-%d.swf", modes[mode], version); + SWFMovie_save (movie, real_name); + g_free (real_name); + } +} + +int +main (int argc, char **argv) +{ + int i; + + if (Ming_init ()) + return 1; + + for (i = 7; i < 9; i++) + do_movie (i); + + return 0; +} |