gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog testsuite/misc-ming.all/masks_t...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog testsuite/misc-ming.all/masks_t...
Date: Sat, 19 Jan 2008 16:03:56 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/01/19 16:03:56

Modified files:
        .              : ChangeLog 
        testsuite/misc-ming.all: masks_test.c masks_testrunner.cpp 

Log message:
        test hitTest effects on dynamic masks and maskees. See bug #21923.
        
        NOTE: unexpectedly, the test runner returns now failure which should NOT
              be introduced by the SWF. I suspect the reason for that is some
              uninitialized memory use by the AGG backend.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5433&r2=1.5434
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/masks_test.c?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/masks_testrunner.cpp?cvsroot=gnash&r1=1.10&r2=1.11

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5433
retrieving revision 1.5434
diff -u -b -r1.5433 -r1.5434
--- ChangeLog   18 Jan 2008 18:18:12 -0000      1.5433
+++ ChangeLog   19 Jan 2008 16:03:55 -0000      1.5434
@@ -1,3 +1,8 @@
+2008-01-19 Sandro Santilli <address@hidden>
+
+       * testsuite/misc-ming.all/masks_test.c: test hitTest effects
+         on dynamic masks and maskees. See bug #21923.
+
 2008-01-18 Sandro Santilli <address@hidden>
 
        * cygnal/testsuite/cygnal.all/Makefile.am: don't build http.o

Index: testsuite/misc-ming.all/masks_test.c
===================================================================
RCS file: /sources/gnash/gnash/testsuite/misc-ming.all/masks_test.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- testsuite/misc-ming.all/masks_test.c        29 Oct 2007 21:23:16 -0000      
1.4
+++ testsuite/misc-ming.all/masks_test.c        19 Jan 2008 16:03:56 -0000      
1.5
@@ -122,7 +122,7 @@
        Ming_init();
        mo = newSWFMovieWithVersion(OUTPUT_VERSION);
        SWFMovie_setDimension(mo, 800, 600);
-       SWFMovie_setRate (mo, 0.3);
+       SWFMovie_setRate (mo, 1);
 
        dejagnuclip = get_dejagnu_clip((SWFBlock)get_default_font(srcdir), 10, 
0, 0, 800, 600);
        it = SWFMovie_add(mo, (SWFBlock)dejagnuclip);
@@ -134,36 +134,149 @@
        // this one seems to confuse the MM player
        //add_static_mask(mo, "mask1", 1, 0, 150, 200, 100, 20);
 
+       // Red rect (staticmc2) is at 0,200-60,260
        add_static_mc(mo, "staticmc2", 2, 0, 200, 60, 60, 255, 0, 0); // red
+
+       // Yellow rect (staticmc3) is at 30,200-90,260
        add_static_mc(mo, "staticmc3", 3, 30, 200, 60, 60, 255, 255, 0); // 
yellow
+
+       // Green rect (staticmc4) is at 200,200-260,260
        add_static_mc(mo, "staticmc4", 4, 200, 200, 60, 60, 0, 255, 0); // green
+
+       // Cyan rect (staticmc5) is at 230,200-290,260
        add_static_mc(mo, "staticmc5", 5, 230, 200, 60, 60, 0, 255, 255); // 
cyan
+
+       // Blue rect (dynamicmc2) is at 0,300-60,360
        add_dynamic_mc(mo, "dynamicmc2", 12, 0, 300, 60, 60, 0, 0, 255); // blue
+
+       // Violet rect (dynamicmc3) is at 30,300-90,360
        add_dynamic_mc(mo, "dynamicmc3", 13, 30, 300, 60, 60, 255, 0, 255); // 
violet
+
+       // Dark green rect (dynamicmc4) is at 200,300-260,360
        add_dynamic_mc(mo, "dynamicmc4", 14, 200, 300, 60, 60, 0, 128, 0); // 
dark green
+
+       // Light blue rect (dynamicmc5) is at 230,300-290,360
        add_dynamic_mc(mo, "dynamicmc5", 15, 230, 300, 60, 60, 0, 128, 255); // 
light blue
 
 
+       // Red rect
        check_equals(mo, "staticmc2.getDepth()", "-16382");
+       check(mo, "staticmc2.hitTest(10, 210, true)");
+       check(mo, "staticmc2.hitTest(50, 250, true)");
+
+       // Yellow rect
        check_equals(mo, "staticmc3.getDepth()", "-16381");
+       check(mo, "staticmc3.hitTest(40, 210, true)");
+       check(mo, "staticmc3.hitTest(80, 250, true)");
+
+       // Green rect
        check_equals(mo, "staticmc4.getDepth()", "-16380"); 
+       check(mo, "staticmc4.hitTest(210, 210, true)");
+       check(mo, "staticmc4.hitTest(250, 250, true)");
+
+       // Cyan rect
        check_equals(mo, "staticmc5.getDepth()", "-16379"); 
+       check(mo, "staticmc5.hitTest(240, 210, true)");
+       check(mo, "staticmc5.hitTest(280, 250, true)");
+
+       // Blue rect
        check_equals(mo, "dynamicmc2.getDepth()", "12");
+       check(mo, "dynamicmc2.hitTest(10, 310, true)");
+       check(mo, "dynamicmc2.hitTest(50, 350, true)");
+
+       // Violet rect
        check_equals(mo, "dynamicmc3.getDepth()", "13");
+       check(mo, "dynamicmc3.hitTest(40, 310, true)");
+       check(mo, "dynamicmc3.hitTest(80, 350, true)");
+
+       // Dark green rect
        check_equals(mo, "dynamicmc4.getDepth()", "14"); 
+       check(mo, "dynamicmc4.hitTest(210, 310, true)");
+       check(mo, "dynamicmc4.hitTest(250, 350, true)");
+
+       // Light blue rect
        check_equals(mo, "dynamicmc5.getDepth()", "15"); 
+       check(mo, "dynamicmc5.hitTest(240, 310, true)");
+       check(mo, "dynamicmc5.hitTest(280, 350, true)");
 
        SWFMovie_nextFrame(mo);  // FRAME 3 starts here
 
-       add_actions(mo, "note('Using setMask on chars in the static depth range 
2.mask(3) and 5.mask(5)');");
+       add_actions(mo, "note('Using setMask on chars in the static depth range 
2.mask(3) and 5.mask(4)');");
 
        add_actions(mo, 
-               "staticmc2.setMask(staticmc3);" // red masked by yellow
-               "staticmc5.setMask(staticmc4);" // cyan masked by green
-               "dynamicmc2.setMask(dynamicmc3);" // blue masked by violet
-               "dynamicmc5.setMask(dynamicmc4);" // light blue masked by dark 
green 
+               "sm23 = staticmc2.setMask(staticmc3);" // red masked by yellow
+               "sm54 = staticmc5.setMask(staticmc4);" // cyan masked by green
+               "dm23 = dynamicmc2.setMask(dynamicmc3);" // blue masked by 
violet
+               "dm54 = dynamicmc5.setMask(dynamicmc4);" // light blue masked 
by dark green 
                );
 
+       xcheck_equals(mo, "typeof(sm23)", "'boolean'");
+       xcheck_equals(mo, "sm23", "true");
+       xcheck_equals(mo, "typeof(sm54)", "'boolean'");
+       xcheck_equals(mo, "sm54", "true");
+       xcheck_equals(mo, "typeof(dm23)", "'boolean'");
+       xcheck_equals(mo, "dm23", "true");
+       xcheck_equals(mo, "typeof(dm54)", "'boolean'");
+       xcheck_equals(mo, "dm54", "true");
+
+       // Red rect is now masked by yellow
+       // Red rect (staticmc2) is at 0,200-60,260
+       // Yellow rect (staticmc3) is at 30,200-90,260
+       xcheck(mo, "!staticmc2.hitTest(10, 210, true)"); 
+       check(mo, "staticmc2.hitTest(10, 210, false)"); // bounding box hitTest 
not affected by masks
+       check(mo, "staticmc2.hitTest(50, 250, true)"); 
+
+       // Yellow rect is now a mask
+       // hitTest() using 'shape' semantic won't see it,
+       // while hitTest() using 'bounding box' semantic will 
+       check(mo, "staticmc3.hitTest(40, 210, false)");
+       check(mo, "staticmc3.hitTest(80, 250, false)");
+       xcheck(mo, "!staticmc3.hitTest(40, 210, true)");
+       xcheck(mo, "!staticmc3.hitTest(80, 250, true)");
+
+       // Green rect is now a mask
+       // hitTest() using 'shape' semantic won't see it,
+       // while hitTest() using 'bounding box' semantic will 
+       xcheck(mo, "!staticmc4.hitTest(210, 210, true)");
+       xcheck(mo, "!staticmc4.hitTest(250, 250, true)"); 
+       check(mo, "staticmc4.hitTest(210, 210, false)");
+       check(mo, "staticmc4.hitTest(250, 250, false)");
+
+       // Cyan rect is now masked by green
+       // Green rect (staticmc4) is at 200,200-260,260
+       // Cyan rect (staticmc5) is at 230,200-290,260
+       check(mo, "staticmc5.hitTest(240, 210, true)");
+       xcheck(mo, "!staticmc5.hitTest(280, 250, true)");
+       check(mo, "staticmc5.hitTest(280, 250, false)");
+
+       // Blue rect now is masked by Violet rect 
+       // Violet rect (dynamicmc3) is at 30,300-90,360
+       // Blue rect (dynamicmc2) is at 0,300-60,360
+       xcheck(mo, "!dynamicmc2.hitTest(10, 310, true)");
+       check(mo, "dynamicmc2.hitTest(10, 310, false)");
+       check(mo, "dynamicmc2.hitTest(50, 350, true)");
+
+       // Violet rect is now a mask
+       // hitTest() using 'shape' semantic won't see it,
+       // while hitTest() using 'bounding box' semantic will 
+       xcheck(mo, "!dynamicmc3.hitTest(40, 310, true)");
+       xcheck(mo, "!dynamicmc3.hitTest(80, 350, true)");
+       check(mo, "dynamicmc3.hitTest(40, 310, false)");
+       check(mo, "dynamicmc3.hitTest(80, 350, false)");
+
+       // Dark green rect is now a mask
+       xcheck(mo, "!dynamicmc4.hitTest(210, 310, true)");
+       xcheck(mo, "!dynamicmc4.hitTest(250, 350, true)");
+       check(mo, "dynamicmc4.hitTest(210, 310, false)");
+       check(mo, "dynamicmc4.hitTest(250, 350, false)");
+
+       // Light blue now masked by Dark green 
+       // Light blue rect (dynamicmc5) is at 230,300-290,360
+       // Dark green rect (dynamicmc4) is at 200,300-260,360
+       check(mo, "dynamicmc5.hitTest(240, 310, true)");
+       xcheck(mo, "!dynamicmc5.hitTest(280, 350, true)");
+       check(mo, "dynamicmc5.hitTest(280, 350, false)");
+
        SWFMovie_nextFrame(mo);  // FRAME 4 starts here
 
        add_actions(mo, "note('Swapping chars 2/3 and 4/5 to see if masks are 
still in effect');");
@@ -184,7 +297,135 @@
        check_equals(mo, "dynamicmc4.getDepth()", "15"); 
        check_equals(mo, "dynamicmc5.getDepth()", "14"); 
 
-       add_actions(mo, "_root.totals(); stop();");
+       // Depth swapping didn't change hitTest effects
+
+       // Red rect is now masked by yellow
+       // Red rect (staticmc2) is at 0,200-60,260
+       // Yellow rect (staticmc3) is at 30,200-90,260
+       xcheck(mo, "!staticmc2.hitTest(10, 210, true)"); 
+       check(mo, "staticmc2.hitTest(10, 210, false)"); // bounding box hitTest 
not affected by masks
+       check(mo, "staticmc2.hitTest(50, 250, true)"); 
+
+       // Yellow rect is now a mask
+       // hitTest() using 'shape' semantic won't see it,
+       // while hitTest() using 'bounding box' semantic will 
+       check(mo, "staticmc3.hitTest(40, 210, false)");
+       check(mo, "staticmc3.hitTest(80, 250, false)");
+       xcheck(mo, "!staticmc3.hitTest(40, 210, true)");
+       xcheck(mo, "!staticmc3.hitTest(80, 250, true)");
+
+       // Green rect is now a mask
+       // hitTest() using 'shape' semantic won't see it,
+       // while hitTest() using 'bounding box' semantic will 
+       check(mo, "staticmc4.hitTest(210, 210, false)");
+       check(mo, "staticmc4.hitTest(250, 250, false)");
+       xcheck(mo, "!staticmc4.hitTest(210, 210, true)");
+       xcheck(mo, "!staticmc4.hitTest(250, 250, true)"); 
+
+       // Cyan rect is now masked by green
+       // Green rect (staticmc4) is at 200,200-260,260
+       // Cyan rect (staticmc5) is at 230,200-290,260
+       check(mo, "staticmc5.hitTest(240, 210, true)");
+       xcheck(mo, "!staticmc5.hitTest(280, 250, true)");
+       check(mo, "staticmc5.hitTest(280, 250, false)");
+
+       // Blue rect now is masked by Violet rect 
+       // Violet rect (dynamicmc3) is at 30,300-90,360
+       // Blue rect (dynamicmc2) is at 0,300-60,360
+       xcheck(mo, "!dynamicmc2.hitTest(10, 310, true)");
+       check(mo, "dynamicmc2.hitTest(10, 310, false)");
+       check(mo, "dynamicmc2.hitTest(50, 350, true)");
+
+       // Violet rect is now a mask
+       // hitTest() using 'shape' semantic won't see it,
+       // while hitTest() using 'bounding box' semantic will 
+       xcheck(mo, "!dynamicmc3.hitTest(40, 310, true)");
+       xcheck(mo, "!dynamicmc3.hitTest(80, 350, true)");
+       check(mo, "dynamicmc3.hitTest(40, 310, false)");
+       check(mo, "dynamicmc3.hitTest(80, 350, false)");
+
+       // Dark green rect is now a mask
+       xcheck(mo, "!dynamicmc4.hitTest(210, 310, true)");
+       xcheck(mo, "!dynamicmc4.hitTest(250, 350, true)");
+       check(mo, "dynamicmc4.hitTest(210, 310, false)");
+       check(mo, "dynamicmc4.hitTest(250, 350, false)");
+
+       // Light blue now masked by Dark green 
+       // Light blue rect (dynamicmc5) is at 230,300-290,360
+       // Dark green rect (dynamicmc4) is at 200,300-260,360
+       check(mo, "dynamicmc5.hitTest(240, 310, true)");
+       xcheck(mo, "!dynamicmc5.hitTest(280, 350, true)");
+       check(mo, "dynamicmc5.hitTest(280, 350, false)");
+
+       SWFMovie_nextFrame(mo);  // FRAME 5 starts here
+
+       add_actions(mo, "note('Making 3.mask(2) and 4.mask(5)');");
+
+       add_actions(mo,
+               "sm32 = staticmc3.setMask(staticmc2);" // yellow masked by red 
+               "sm45 = staticmc4.setMask(staticmc5);" // green masked by cyan
+               "dm32 = dynamicmc3.setMask(dynamicmc2);" // violet masked by 
blue
+               "dm45 = dynamicmc4.setMask(dynamicmc5);" // dark green masked 
light blue 
+               );
+
+       xcheck_equals(mo, "typeof(sm32)", "'boolean'");
+       xcheck_equals(mo, "sm32", "true");
+       xcheck_equals(mo, "typeof(sm45)", "'boolean'");
+       xcheck_equals(mo, "sm45", "true");
+       xcheck_equals(mo, "typeof(dm32)", "'boolean'");
+       xcheck_equals(mo, "dm32", "true");
+       xcheck_equals(mo, "typeof(dm45)", "'boolean'");
+       xcheck_equals(mo, "dm45", "true");
+
+       // Red rect is now a mask
+       xcheck(mo, "!staticmc2.hitTest(10, 210, true)"); 
+       xcheck(mo, "!staticmc2.hitTest(50, 250, true)"); 
+       check(mo, "staticmc2.hitTest(10, 210, false)"); 
+       check(mo, "staticmc2.hitTest(50, 250, false)"); 
+
+       // Yellow rect is now masked by Red rect
+       // TODO: why no hitTest ??
+       xcheck(mo, "!staticmc3.hitTest(40, 210, true)");
+       xcheck(mo, "!staticmc3.hitTest(80, 250, true)");
+       check(mo, "staticmc3.hitTest(80, 250, false)");
+       check(mo, "staticmc3.hitTest(40, 210, false)");
+
+       // Green rect is now masked by Cyan
+       // TODO: why no hitTest ??
+       xcheck(mo, "!staticmc4.hitTest(210, 210, true)");
+       xcheck(mo, "!staticmc4.hitTest(250, 250, true)"); 
+       check(mo, "staticmc4.hitTest(210, 210, false)");
+       check(mo, "staticmc4.hitTest(250, 250, false)");
+
+       // Cyan rect is now a mask
+       xcheck(mo, "!staticmc5.hitTest(240, 210, true)");
+       xcheck(mo, "!staticmc5.hitTest(280, 250, true)");
+       check(mo, "staticmc5.hitTest(240, 210, false)");
+       check(mo, "staticmc5.hitTest(280, 250, false)");
+
+       // Blue rect is now a mask
+       xcheck(mo, "!dynamicmc2.hitTest(10, 310, true)");
+       xcheck(mo, "!dynamicmc2.hitTest(50, 350, true)");
+       check(mo, "dynamicmc2.hitTest(10, 310, false)");
+       check(mo, "dynamicmc2.hitTest(50, 350, false)");
+
+       // Violet rect is now masked by Blue rect
+       check(mo, "dynamicmc3.hitTest(40, 310, true)");
+       xcheck(mo, "!dynamicmc3.hitTest(80, 350, true)");
+       check(mo, "dynamicmc3.hitTest(80, 350, false)");
+
+       // Dark green rect is masked by Light blue
+       xcheck(mo, "!dynamicmc4.hitTest(210, 310, true)");
+       check(mo, "dynamicmc4.hitTest(210, 310, false)");
+       check(mo, "dynamicmc4.hitTest(250, 350, true)");
+
+       // Light blue is now a mask
+       check(mo, "dynamicmc5.hitTest(240, 310, false)");
+       check(mo, "dynamicmc5.hitTest(280, 350, false)");
+       xcheck(mo, "!dynamicmc5.hitTest(240, 310, true)");
+       xcheck(mo, "!dynamicmc5.hitTest(280, 350, true)");
+
+       add_actions(mo, "_root.totals(134); stop();");
 
        SWFMovie_nextFrame(mo);        
 

Index: testsuite/misc-ming.all/masks_testrunner.cpp
===================================================================
RCS file: /sources/gnash/gnash/testsuite/misc-ming.all/masks_testrunner.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- testsuite/misc-ming.all/masks_testrunner.cpp        1 Dec 2007 00:15:02 
-0000       1.10
+++ testsuite/misc-ming.all/masks_testrunner.cpp        19 Jan 2008 16:03:56 
-0000      1.11
@@ -51,7 +51,7 @@
 
        // FRAME 1 (start)
 
-       check_equals(root->get_frame_count(), 4);
+       check_equals(root->get_frame_count(), 6);
        check_equals(root->get_play_state(), sprite_instance::PLAY);
        check_equals(root->get_current_frame(), 0);
        check_equals(root->getDisplayList().size(), 1);  // dejagnu clip
@@ -215,5 +215,10 @@
        check( invalidated.contains(276, 331) );
        check_pixel(276,331, 2, white, 2);
 
+       // FRAME 4
+       tester.advance();
+
+       // TODO: test setMask effects after swapping mask/maskee
+
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]