62 files changed, 195 insertions, 0 deletions
diff --git a/test/image/Makefile.am b/test/image/Makefile.am index 3d0be09..65c9691 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 0000000..ab4e919 --- a/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 0000000..1a8b43d --- a/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 0000000..4980ad9 --- a/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 0000000..d100dd7 --- a/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 0000000..52fcc48 --- a/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 0000000..ec5d486 --- a/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 0000000..e4a05e6 --- a/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 0000000..49167eb --- a/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 0000000..ad33ae5 --- a/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 0000000..ec6e84b --- a/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 0000000..9432f60 --- a/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 0000000..c9520f0 --- a/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 0000000..a0c3c3d --- a/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 0000000..55f8abd --- a/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 0000000..9f7bdfc --- a/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 0000000..d64defd --- a/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 0000000..40f8ff0 --- a/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 0000000..9fda92e --- a/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 0000000..abab210 --- a/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 0000000..05a7cca --- a/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 0000000..fdceadb --- a/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 0000000..b5faa9e --- a/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 0000000..dda194e --- a/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 0000000..be4f9c2 --- a/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 0000000..631ee26 --- a/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 0000000..7a47373 --- a/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 0000000..d71bfd8 --- a/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 0000000..4e8d0be --- a/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 0000000..56ed34a --- a/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 0000000..4f27182 --- a/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 0000000..2d99358 --- a/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 0000000..f1d4c98 --- a/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 0000000..c3383f3 --- a/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 0000000..78faaa6 --- a/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 0000000..185daf3 --- a/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 0000000..0567aea --- a/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 0000000..57fcbcc --- a/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 0000000..1d533e3 --- a/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 0000000..97fe635 --- a/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 0000000..1dac444 --- a/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 0000000..2eab312 --- a/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 0000000..891460c --- a/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 0000000..542acf2 --- a/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 0000000..f9f4400 --- a/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 0000000..3476ad2 --- a/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 0000000..4cc2102 --- a/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 0000000..f451ede --- a/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 0000000..69fb02d --- a/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 0000000..87202ee --- a/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 0000000..d893ffe --- a/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 0000000..63666bd --- a/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 0000000..b12cb89 --- a/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 0000000..a6cf927 --- a/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 0000000..3d39a60 --- a/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 0000000..f86d0b2 --- a/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 0000000..f307268 --- a/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 0000000..c013c30 --- a/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 0000000..a05642f --- a/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 0000000..e57e099 --- a/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 0000000..b7169a9 --- a/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 0000000..c302cc4 --- a/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; +} |
